เรามีปัญหาคล้ายกันเนื่องจากเรามีโครงการที่ต้องจัดการ 109 โครงการ ในการตอบคำถามเดิมจากประสบการณ์ของเรา:
1. คุณจัดการการอ้างอิงระหว่างโครงการอย่างไรให้ดีที่สุด
เราใช้ตัวเลือกเมนูบริบท "เพิ่มการอ้างอิง" หากเลือก "โครงการ" การอ้างอิงจะถูกเพิ่มลงในไฟล์โซลูชันส่วนกลางเดียวของเราตามค่าเริ่มต้น
2. ควรเปิดหรือปิด "คัดลอกในเครื่อง"?
ออกจากประสบการณ์ของเรา การคัดลอกพิเศษจะเพิ่มเวลาในการสร้าง
3. ทุกโปรเจ็กต์ควรสร้างไปยังโฟลเดอร์ของตัวเองหรือควรสร้างไปยังโฟลเดอร์เอาต์พุตเดียวกัน (ทั้งหมดเป็นส่วนหนึ่งของแอปพลิเคชันเดียวกัน)
ผลลัพธ์ทั้งหมดของเราจะอยู่ในโฟลเดอร์เดียวที่เรียกว่า 'bin' แนวคิดที่ว่าโฟลเดอร์นี้จะเหมือนกับเมื่อมีการปรับใช้ซอฟต์แวร์ วิธีนี้ช่วยป้องกันปัญหาที่เกิดขึ้นเมื่อการตั้งค่าของนักพัฒนาแตกต่างจากการตั้งค่าการปรับใช้
4. โฟลเดอร์โซลูชันเป็นวิธีที่ดีในการจัดระเบียบสิ่งต่างๆหรือไม่?
ไม่มีในประสบการณ์ของเรา โครงสร้างโฟลเดอร์ของบุคคลหนึ่งเป็นฝันร้ายของอีกคน โฟลเดอร์ที่ซ้อนกันอย่างลึกล้ำจะช่วยเพิ่มเวลาในการค้นหาสิ่งต่างๆ เรามีโครงสร้างที่เรียบสนิท แต่ตั้งชื่อไฟล์โครงการแอสเซมบลีและเนมสเปซเหมือนกัน
วิธีการจัดโครงสร้างโครงการของเราอาศัยไฟล์โซลูชันเดียว การสร้างสิ่งนี้ใช้เวลานานแม้ว่าโครงการจะไม่เปลี่ยนแปลงก็ตาม เพื่อช่วยในเรื่องนี้เรามักจะสร้างไฟล์โซลูชัน 'ชุดการทำงานปัจจุบัน' อีกไฟล์หนึ่ง โครงการใด ๆ ที่เรากำลังดำเนินการอยู่จะถูกเพิ่มเข้าไปในสิ่งนี้ เวลาในการสร้างได้รับการปรับปรุงอย่างมากแม้ว่าปัญหาหนึ่งที่เราพบคือ Intellisense ล้มเหลวสำหรับประเภทที่กำหนดในโครงการที่ไม่ได้อยู่ในชุดปัจจุบัน
ตัวอย่างบางส่วนของเค้าโครงโซลูชันของเรา:
\bin
OurStuff.SLN
OurStuff.App.Administrator
OurStuff.App.Common
OurStuff.App.Installer.Database
OurStuff.App.MediaPlayer
OurStuff.App.Operator
OurStuff.App.Service.Gateway
OurStuff.App.Service.CollectionStation
OurStuff.App.ServiceLocalLauncher
OurStuff.App.StackTester
OurStuff.Auditing
OurStuff.Data
OurStuff.Database
OurStuff.Database.Constants
OurStuff.Database.ObjectModel
OurStuff.Device
OurStuff.Device.Messaging
OurStuff.Diagnostics
...
[etc]