กลับไปที่ ASP.Net Webforms จาก ASP.Net MVC แนะนำรูปแบบ / สถาปัตยกรรม?


12

สำหรับคุณหลายคนสิ่งนี้จะดูเหมือนคำถามที่ไร้สาระ แต่ฉันถามเพราะฉันไม่มีประสบการณ์กับ ASP.Net Webforms เพียงเล็กน้อย - ฉันไปที่ ASP.Net MVC โดยตรง

ตอนนี้ฉันกำลังทำงานในโครงการที่เรา จำกัด . Net 2.0 และ Visual Studio 2005

ฉันชอบการแยกข้อกังวลอย่างชัดเจนเมื่อทำงานกับ ASP.Net MVC และฉันกำลังมองหาบางอย่างที่จะทำให้เว็บฟอร์มทนไม่ได้ มีรูปแบบหรือแนวทางปฏิบัติที่แนะนำสำหรับผู้ที่ชื่นชอบ asp.net MVC แต่ติดอยู่ใน. net 2.0 และ visual studio 2005 หรือไม่?


ขอบคุณสำหรับคำแนะนำทั้งหมดพวก - หวังว่าฉันจะเลือกได้มากกว่าหนึ่งคำตอบ
jlnorsworthy

1
ฉันหวังว่าการมอบหมายใหม่ของคุณจะใช้สำหรับโครงการที่มีอยู่แทนที่จะเป็นสิ่งที่เริ่มต้นจากศูนย์ มีหลายสิ่งพื้นฐานที่คุณจะต้องพึ่งพาซึ่งจะหายไปเช่นการใช้ Linq สำหรับการสืบค้นง่าย ๆ เกี่ยวกับการรวบรวม ความยุ่งยากที่สำคัญจะมาจากการดู HTML ที่สร้างขึ้นและเห็นว่าไม่มีอะไรเหมือนที่คุณคาดหวัง ขอให้โชคดีและฉันหวังว่าคุณจะประสบความสำเร็จ
Chris

คำตอบ:


7

ฉันจะแนะนำ Model View Presenter (MVP) เราใช้สิ่งนี้กับแอป WebForms เมื่อเร็ว ๆ นี้และเพิ่มความสามารถในการทดสอบของเราและทำให้เราสามารถแยกข้อกังวลออกได้

http://msdn.microsoft.com/en-us/magazine/cc188690.aspxเป็นบทความที่ยอดเยี่ยมโดย Jean Paul Boodhoo ในรูปแบบนี้ การดาวน์โหลดรหัสก็ดีเช่นกัน คุณอาจพบว่าคุณไม่ต้องการ DTO และอินเทอร์เฟซสำหรับ DTO

อีกบทความที่ดีคือหนึ่งใน codeproject.com นี้: http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx

แก้ไข: มีเฟรมเวิร์กที่เรียกว่า WebForms MVP แต่ฉันไม่รู้อะไรเกี่ยวกับมันมากนัก


Webvorms MVP ดูเจ๋งจริงๆ แต่โครงการดูเหมือนจะหยุดชะงัก ไม่มีเอกสารหรือบทช่วยสอนจำนวนมาก
jlnorsworthy

ดูเหมือนว่าจะต้องใช้. NET 3.5 SP1 ดังนั้นอาจไม่มีประโยชน์กับคุณมากเกินไป อย่างไรก็ตามตัวอย่างและแหล่งข้อมูลอาจช่วยคุณประเมินรูปแบบ MVP
Ciaran

จุดดีฉันไม่ได้สังเกตว่า ฉันจะเก็บตาของฉันในโครงการที่ในกรณีที่ฉันต้องทำ webforms กับ บริษัท ที่มีเทคโนโลยีในปัจจุบัน :)
jlnorsworthy

4

ฉันอยากจะแนะนำให้คุณเข้าใจวงจรชีวิตของหน้า. net 2.0

วิดีโอเหล่านี้อาจมีค่าสำหรับการดูแม้ว่าจะไม่ใช่ทั้งหมดฟรี แต่อย่างน้อยนี่จะเป็นการเริ่มต้นที่ดีสำหรับคุณ


3

อย่างที่คุณอาจค้นพบในตอนนี้คุณจะต้องเรียนรู้สิ่งต่าง ๆ ที่คุณได้เรียนรู้ด้วย ASP.NET MVC (btw - สิ่งเดียวกันนี้เกิดขึ้นเมื่อคน ASP.NET นั้นเริ่มเรียนรู้ ASP.NET MVC) คุณยังสามารถใช้รูปแบบ MVC ใน ASP.NET ได้ แต่การแยกมุมมองและแบบจำลองนั้นเบลอมากใน ASP.NET เนื่องจากสถาปัตยกรรมโพสต์แบ็คเอนเดอร์ / เหตุการณ์

ในความคิดของฉันการเรียนรู้ใหม่ของคุณส่วนใหญ่จะเกี่ยวข้องกับวงจรชีวิตของหน้าและการจัดกิจกรรมและการควบคุม การโต้ตอบระหว่างเซสชันแคชแคช ViewState และ DB ยังคงเหมือนเดิม

HTH ...


2

รูปแบบCheckout Front Controllerและการใช้ Front Controllerใน Asp.Net ทำสิ่งเหล่านี้เฉพาะเมื่อโครงการของคุณมีขนาดพอเหมาะ การทำเช่นนี้สำหรับโครงการขนาดเล็กจะไม่ปรับ ROI ให้เหมาะสม

ในโครงการขนาดเล็กคุณสามารถลองกำหนดแนวทางบางอย่างได้ ตัวอย่างเช่น - ไม่มีตรรกะทางธุรกิจไม่มีการใช้เซสชันและอื่น ๆ ในโค้ดด้านหลัง

ดูว่าอะไรที่เหมาะกับคุณที่สุด ไม่ว่าในกรณีใด ๆ ถือเป็นสิ่งล่อใจที่จะทำมากกว่าวิศวกรรม


0

ย้อนกลับไปในยุคมืดของ. NET 1.1 ฉันสร้างขึ้น (ฉันคิดว่าเหมือนทุกคน) ระบบ MVC ประเภทหนึ่งสำหรับแอปพลิเคชันที่เป็นแบบนี้

หน้าเว็บถูกสร้างขึ้นเพื่อเป็นเจ้านายของ 'ปลอม' นี่เป็นระบบประปาเพื่อแสดงเมนูสคริปต์สไตล์ ฯลฯ

'มุมมอง' เป็นการควบคุมผู้ใช้แต่ละราย

มีตารางพร้อมข้อมูลเกี่ยวกับแต่ละมุมมอง ตัวอย่างเช่น 'ผลิตภัณฑ์' จะโหลด~/Controls/Product.ascxลงในพื้นที่ที่สำรองไว้ ตารางยังมีฟิลด์ที่มีชื่อประเภทของคลาสโมเดล (เช่นถ้า) แต่ละรุ่นใช้อินเทอร์เฟซที่รู้จักกันดี คลาสนี้มีการใช้อินสแตนซ์Activator.CreateInstance()และถูกเรียกให้เริ่มต้นจากนั้นถูกส่งผ่านไปยังตัวควบคุม (กลับด้านการควบคุม?) การควบคุมนั้นเรียกว่าวิธีการต่าง ๆ เพื่อรับชุดข้อมูลหรือ whatnot อินเทอร์เฟซนั้นถูกทำให้เป็นมาตรฐานเพื่อให้มีวิธี CRUD ตามปกติ (อ่าน / เขียน / รายการ / ลบ) นอกจากนี้ยังมีชั้น DAL / ORM ด้านล่างนี้

มันไม่ได้สวย แต่ทำงานได้ดี มันง่ายในการทดสอบและพัฒนาต่อและนักพัฒนาส่วนใหญ่ที่มาบนกระดานจะจับได้อย่างรวดเร็ว ที่สำคัญที่สุดมันค่อนข้างง่ายในการสร้าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.