มีแนวทางใดบ้างในการตัดสินใจว่าคลาสควรอยู่ในชุด / DLL ของตัวเองหรือไม่? ฉันมักจะเห็นโรงเรียนแห่งความคิดสองแห่ง:
1) "การจัดกลุ่ม" ของคลาสทุกคลาสนั้นอยู่ใน DLL ของตัวเองเช่นที่เก็บบริการ DTO โครงสร้างพื้นฐานเป็นต้น
2) ทุกอย่างควรอยู่ใน DLL เดียว แต่แยกออกจาก namespaces / folder เช่นมี "Core" DLL ที่มี namespaces เพิ่มเติมเช่น Core.Repositories, Core.Services, Core.DTO เป็นต้น
ที่ทำงานเราเพิ่งรวบรวมทุกอย่างในสภาเดียวที่เรียกว่า "ธุรกิจ" มีบางโฟลเดอร์ แต่ไม่มีการแยกที่แท้จริง - วัตถุทางธุรกิจ (ด้วยตรรกะซึ่งบางอันไม่ควรเป็นคลาส) จะถูกรวมเข้าในโฟลเดอร์ "BusinessObjects" โดยไม่สนใจ สิ่งที่ใช้ในคลาสมากกว่าหนึ่งอยู่ในโฟลเดอร์ "Core" ยูทิลิตี้อยู่ในโฟลเดอร์ "ยูทิลิตี้" โครงสร้างพื้นฐานการเข้าถึงข้อมูลคือโฟลเดอร์ "ข้อมูล" - คุณจะได้รับแนวคิด
สำหรับโมดูลใหม่ที่ฉันกำลังทำงานอยู่ฉันต้องการ / จำเป็นต้องมีชั้นการเข้าถึงข้อมูลแยกต่างหาก (คิดว่าเป็นการใช้งาน Repository Repository) แต่ฉันไม่ต้องการที่จะทิ้งมันไว้ในโฟลเดอร์ "BusinessObjects" กับอีก 160 (!) ชั้นเรียนที่นั่น ในเวลาเดียวกันฉันกังวลเกี่ยวกับการสร้าง Class Library ใหม่เนื่องจากทุกคนคุ้นเคยกับการบรรจุ Class ใน Library เดียว โฟลเดอร์ / namespace สามารถทำงานได้อย่างไรก็ตาม