หลังจาก 2 ปีฉันยังคงดิ้นรนกับ MVVM เป็นวิธีปฏิบัติในการผลิตซอฟต์แวร์ที่ใช้งานได้ ในบางกรณีมันยอดเยี่ยมมาก ฉันทำแอพพลิเคชั่นแบบมัลติเธรดที่ควบคุมแอสเซมบลีไลน์เล็ก ๆ ซึ่งน่าจะเป็น nightmere โดยปราศจากแนวคิด MVVM สิ่งที่เป็นนามธรรมจากสายการประกอบกายภาพเกือบจะเป็นเกมง่ายๆ
อย่างไรก็ตามอาชีพของฉันส่วนใหญ่หมุนรอบแอปพลิเคชันทางธุรกิจภายใน - การทำให้เป็นทางการและการเพิ่มประสิทธิภาพการดำเนินงานของธุรกิจ ในแอพดังกล่าวโดยทั่วไปมักจะมีนักธุรกิจที่ทำงานเกี่ยวกับ CRUD และการดำเนินงานแบบผสม ใน LOBs โมเดลการดูของฉันจะเป็นคอลเล็กชั่นที่เรียบง่ายของฟังก์ชั่นห่อหุ้มบรรทัดเดียวของวิธีการเรียนธุรกิจและท้ายที่สุดก็จบลงด้วยการทำให้งานง่ายที่สุดเช่นแสดงกล่องข้อความหรือเปิดหน้าต่าง ไม่มีใครอื่นพบว่ามันแปลกหรือเปล่าเมื่อผู้คนเข้าสู่ "การฉีดของผู้พึ่งพา" และ "ผู้ให้บริการการส่งข้อความ" เป็นเวลานานสำหรับการแสดงหน้าต่าง มีคำถามอื่นอีกกี่คำถามในกองล้นที่ขอคำแนะนำสำหรับงานที่ง่ายมากใน winforms
อย่าเข้าใจฉันผิด - ฉันได้รับ MVVM และวิธีที่จะมีค่ามากสำหรับทีมขนาดใหญ่ที่พัฒนาแพคเกจซอฟต์แวร์แบบห่อหุ้มและวางตลาดในแนวนอน การทดสอบหน่วยการดูรุ่นสามารถบันทึกล้านโดยหลีกเลี่ยงข้อผิดพลาด RTM ที่ไม่ดีและนักพัฒนา UI เฉพาะสามารถให้ประสบการณ์มากมาย แต่เมื่อค่าใช้จ่ายในการปรับใช้ใหม่มีน้อยและธุรกิจทั้งหมดใส่ใจที่จะจ่ายเป็นซอฟต์แวร์ที่ใช้งานง่ายทำไมฉันจึงควรใช้หน่วยเวลาในการทดสอบ "wrapper" vm แบบง่าย ๆ เมื่อตรรกะทางธุรกิจของฉันถูกทดสอบแล้ว? เวลาเท่าไหร่ในธุรกิจที่จะทำให้ฉันได้ใช้เวลากับอนิเมชั่นน่ารักและโครงร่างสี? มีอะไรเหลือสำหรับผู้พัฒนารุ่นน้องที่ต้องทำ (ติดตามข้อบกพร่องในฟังก์ชันการบันทึกที่เคยดูที่ "Save_Click"
เป็นที่ยอมรับฉันชอบ databinding ของ WPF เพื่อใช้ประโยชน์จากมันฉันตั้งบริบทข้อมูลไปที่หน้าต่างตัวเองซึ่งมีการเข้าถึงชั้นธุรกิจเช่นเดียวกับคุณสมบัติที่สังเกตได้อื่น ๆ ใช่ฉันทำลาย "กฎ" ของ MVVM เกือบทุกครั้งด้วยการทำเช่นนั้น แต่อย่างน้อยฉันก็มีรหัสเหตุการณ์ที่ใช้งานง่ายซึ่งอ่านได้ง่ายและฉันก็จะได้รับประโยชน์จากการบันทึกและตรวจสอบความถูกต้องใหม่ ปัญหาเกิดขึ้นกับนักออกแบบ - ซึ่งฉันไม่ได้ใช้ทั้งหมด แต่หวังว่าจะได้รับการบูรณาการที่ดีขึ้นในปี 2012 - นักออกแบบแสดงคุณสมบัติหลายร้อยแห่งที่หน้าต่างและคลาสพื้นฐานมี
สำหรับผู้ที่สามารถเชื่อมโยงคุณสามารถชี้ให้ฉันเห็นถึงแหล่งข้อมูลหนังสือหรือแม้กระทั่งการเปลี่ยนแปลงในมุมมองที่ทำให้กลืนได้ง่ายขึ้น ฉันจะให้ MVVM อีกครั้ง แต่ครั้งสุดท้ายที่ฉันรู้สึกโง่ที่ต้องกังวลเกี่ยวกับการฉีดพึ่งพาเพื่อแสดงกล่องข้อความจาก VM ฉันไม่มีความตั้งใจในการทดสอบหน่วย แม้ว่าฉันจะทำการทดสอบหน่วยเราจะได้รับคุณภาพที่มากขึ้นจากการทดสอบการซื้อขายตามเวลาสำหรับข้อผิดพลาดในการรวบรวมเวลาของแอพพลิเคชั่น
ฉันรู้ว่าคำตอบเดียวคืออยู่ใน winforms แต่ในฐานะหนึ่งในผู้สนับสนุนคนสุดท้ายของ WebForms (ฉันมีคำวิจารณ์เกี่ยวกับแนวโน้มของการพัฒนาเว็บไซต์ที่เหมือนกัน) ฉันรู้สึกเหมือนไดโนเสาร์เล็กน้อยเหมือนตอนที่ฉันสืบเชื้อสายมาไม่มี WebForms เหลืออยู่ในแทร็คการรับรองของ Microsoft การก้าวไปข้างหน้าเป็นเพียงตัวเลือกเดียวแม้ว่าฉันจะไม่ชอบก็ตาม