ฉันกำลังพยายามตั้งค่าโครงสร้างแอปพลิเคชันของฉันใน VS และฉันต้องการ "ลอง" และพิสูจน์ในอนาคตให้อยู่ในระดับที่เหมาะสม แอปพลิเคชั่นนี้จะเป็น WPF เขียนใหม่ของแอป Winform เก่าที่ไม่ได้ทำตามอนุสัญญา ไม่มีเลเยอร์เทียร์คำย่อ ฯลฯ ...
มันเป็นแอพพลิเคชั่นสำหรับองค์กรขนาดใหญ่พอสมควร ฉันวางแผนที่จะใช้ Linq To SQL เป็นฐานข้อมูลของฉันและมักจะเป็น MS SQL นอกจากนี้ฉันมีชุดทักษะที่มีอยู่กับมัน
ฉันต้องการติดตาม MVVM และ DDD ที่ดีที่สุดที่ฉันสามารถทำได้ แต่ฉันสับสนในโครงสร้างของแอปพลิเคชันของฉันเมื่อรวมสิ่งเหล่านี้ ให้ฉันลองและอธิบายด้วยตัวอย่างบางส่วน
เมื่อฉันติดตาม MVVM โครงสร้างโฟลเดอร์ของฉันอาจมีลักษณะเช่นนี้:
Views
Models
ViewModels
Helpers
แต่วิธีที่เหมาะกับ DDD แบบเลเยอร์เรียบง่ายที่โครงสร้างโครงการของฉันอาจมีลักษณะเช่นนี้:
MyApp.UI
MyApp.Domain
MyApp.Data
ฉันจะใส่Models
ใน Domain layer หรือฉันมี 3 รุ่นว่าPerson
? สิ่งนี้นำไปสู่คำถามอื่นที่ฉันจะวางที่เก็บและการแมปของวัตถุ DB กับวัตถุโดเมนหรือไม่ ฉันจะถือว่าข้อมูล ...
Views
ฉันจะได้รับใน UI แต่จะViewModels
ยัง
ในที่สุดฉันจะฝังตรรกะทางธุรกิจของฉันไว้ที่ไหน
ฉันพบสิ่งต่อไปนี้ใน CodePlex, DDD ตัวอย่างและมันมีความช่วยเหลือบางอย่าง แต่ดูเหมือนว่าจะเป็นสำหรับเว็บแอปแม้ว่ามันอาจไม่สำคัญและความไม่รู้ของฉันก็ส่องผ่าน
อย่าเข้าใจฉันผิดฉันรู้ว่าฉันสามารถมีโฟลเดอร์ได้มากและเรียกมันตามที่ฉันต้องการ ฉันพยายามหาที่ที่จะวางสิ่งต่าง ๆ เพื่อที่จะได้ขนาดไม่ได้เรียกว่าสถานที่เหล่านั้น
หัวใจของคำถามของฉันอาจปรากฏเช่นนี้
ฉันได้วัตถุที่สร้างขึ้นโดยtblPerson
*.dbml
สิ่งนี้ชัดเจนและจะอยู่ในเลเยอร์ "ข้อมูล" ของฉัน
ตอนนี้ฉันจะมีรุ่น DTO โดเมนรุ่นหรือสิ่งที่เรียกว่าในแยก Layer (โครงการ?) Person
เรียกว่า ฉันจะต้องมีMapper
สำหรับPerson
การtblPerson
ที่ผมไม่แน่ใจว่าการที่จะนำ
แล้วฉันจะมี ViewModel สำหรับการพูดEditPerson
ที่จะมีมันเป็นคุณสมบัติของตัวเองที่จะดึงจากPerson
แต่อาจเป็นไปได้มากขึ้นเช่นกัน
ในที่สุดฉันก็มีมุมมองที่ถูกผูกไว้กับ ViewModel นั้น ....
เพื่อให้ชัดเจนว่าวรรคนั้นเต็มไปด้วยสมมติฐานและการคาดเดาของฉันและฉันหวังว่าจะมีคนช่วยให้ฉันโล่งใจหรือเสนอข้อมูลเชิงลึกเพื่อให้ 6 เดือนถึงหนึ่งปีนับจากนี้ฉันไม่ได้เตะตัวเองมากกว่าที่ฉันต้องการ