ฉันมีความเห็นว่าแอปพลิเคชันต่างกันมากและความเข้าใจของเราเกี่ยวกับวิธีการเขียนแอปพลิเคชันยังมีข้อ จำกัด อยู่มาก แอปพลิเคชัน Windows Forms ในอดีตที่ฉันเคยใช้งานนั้นแตกต่างกันมาก ความแตกต่างของการออกแบบบางส่วนที่ฉันเห็น ได้แก่ (รวมถึงชุดค่าผสมส่วนใหญ่):
- พูดคุยโดยตรงกับฐานข้อมูล (ชั้น 2)
- ใช้แบ็กเอนด์ที่เขียนขึ้นสำหรับแอปพลิเคชันที่กำหนด (ระดับ 3)
- ใช้ชุดบริการบนเว็บที่เขียนขึ้นเพื่อใช้งานโดยแอปพลิเคชันจำนวนมากและไม่สามารถเปลี่ยนแปลงสำหรับแอปพลิเคชันของคุณได้ (สถาปัตยกรรมเชิงบริการ)
- การอัปเดตที่ดำเนินการโดยการดำเนินการCRUD
- กำลังอัปเดตด้วยรูปแบบคำสั่ง (ส่งคำสั่งไปยังเซิร์ฟเวอร์แบ็กเอนด์)
- การใช้งานการผูกข้อมูลจำนวนมาก/ ไม่มีการผูกข้อมูล
- ข้อมูลส่วนใหญ่เป็น "ตารางเหมือน" (เช่นใบแจ้งหนี้) ที่ทำงานได้ดีในการควบคุมกริดมาตรฐาน / ต้องการการควบคุมแบบกำหนดเองสำหรับข้อมูล UI ส่วนใหญ่
- ผู้พัฒนาหนึ่งคน / ทีมจากนักพัฒนา 10 หรือ 20 คน (เฉพาะบน UI)
- การทดสอบหน่วยจำนวนมากโดยใช้ mocks ฯลฯ / ไม่มีการทดสอบหน่วย
ดังนั้นฉันไม่คิดว่าจะเป็นไปได้ที่จะสร้างการนำ MVC (หรือ MVP) มาใช้งานที่เข้ากันได้ดีเสมอไป
โพสต์ที่ดีที่สุดที่ฉันได้เห็นจริงๆอธิบาย MVC และทำไมระบบ MVC ถูกสร้างขึ้นวิธีที่มันเป็นเป็นชุด "สร้าง CAB ตัวคุณเอง" โดยเจเรมี D มิลเลอร์ หลังจากทำงานเสร็จแล้วคุณควรจะเข้าใจตัวเลือกของคุณได้ดีขึ้นมาก
คำแนะนำสำหรับไคลเอ็นต์อัจฉริยะของ Microsoft (CAB / Microsoft Composite Application Block)ควรได้รับการพิจารณาด้วย ค่อนข้างซับซ้อน แต่ก็ใช้ได้ดีกับแอปพลิเคชันที่มีขนาดพอดี
การเลือกใช้MVC / MVP สำหรับโครงการ Winformsให้ภาพรวมที่น่าอ่าน ผู้คนจำนวนมากเช่นPureMVC ฉันไม่เคยใช้มัน แต่ฉันจะดูในครั้งต่อไปที่ฉันต้องการเฟรมเวิร์ก MVC
" พรีเซนเตอร์ครั้งแรก " เป็นแนวทางการพัฒนาซอฟแวร์ที่รวมความคิดของดูรุ่นพรีเซนเตอร์ (MVP) รูปแบบการออกแบบและทดสอบขับเคลื่อนการพัฒนา ช่วยให้คุณเริ่มต้นด้วยการเขียนแบบทดสอบในภาษาของลูกค้า ตัวอย่างเช่น:
"เมื่อฉันคลิกปุ่ม" บันทึก "ไฟล์ควรได้รับการบันทึกและคำเตือนไฟล์ที่ไม่ได้บันทึกจะหายไป"
ฉันไม่มีประสบการณ์ในการใช้ "Presenter First" แต่ฉันจะลองใช้เมื่อมีโอกาสเพราะมันดูมีแนวโน้มมาก
คำถามกองมากเกินอื่น ๆ ที่คุณอาจอาจต้องการที่จะมองไปที่มีที่นี่และที่นี่
หากคุณกำลังคิดของการใช้WPFที่จุดใด ๆ จะดูที่การ(MVVM) รุ่น-View ViewModelรูปแบบ นี่เป็นวิดีโอที่ดีมากที่คุณควรจะดูที่: เจสัน Dolinger บน Model-View-ViewModel
รูปแบบการออกแบบ MVVM (Model View View Model) สำหรับ Winformsให้ตัวเลือกอื่นที่อาจทำให้การแปลงเป็น WPF ง่ายขึ้นหากจำเป็น Magical.Trevorเป็นอีกตัวอย่าง MVVM สำหรับ Windows Forms ซึ่งรวมถึงการผูกอัตโนมัติตามชื่อคุณสมบัติ
ถามตัวเองด้วยว่าทำไมคุณถึงใช้ MVC
- คุณต้องการที่จะทดสอบหน่วยรหัสให้ได้มากที่สุดหรือไม่?
- คุณพยายามอนุญาตให้นำโค้ดกลับมาใช้ได้มากที่สุดหรือไม่?
- คุณกำลังพยายามทำให้ฐานรหัสของคุณเข้าใจง่ายหรือไม่?
- เหตุผลอื่น ๆ 101 ประการที่สามารถใช้ได้กับโครงการที่กำหนด
เมื่อคุณชัดเจนในจุดมุ่งหมายของคุณแล้วการเลือกใช้งานอย่างใดอย่างหนึ่งจะง่ายขึ้น