2008-12-03 40 views
5

Số lượng dự án tối ưu trong giải pháp Visual Studio 2008 là bao nhiêu?Số lượng dự án tối ưu trong giải pháp Visual Studio 2008 là bao nhiêu?

Chúng tôi có một giải pháp Visual Studio 2008 hiện có khoảng 50 dự án. Nó sẽ có khả năng tiếp tục phát triển khi phần lớn các dự án trong giải pháp bao gồm các hội đồng plugin cho ứng dụng chính.

Nếu có vẻ như "quá nhiều dự án" trong một giải pháp thì bạn sẽ xác định dự án nào nên được nhóm lại với nhau trong một giải pháp? Với ví dụ của chúng tôi về khoảng 50 dự án trong một giải pháp với phần lớn các dự án đang được bổ sung và với số lượng plugin có khả năng phát triển, các giải pháp nên được cấu trúc như thế nào? Tất cả các plugin có nên được đặt trong giải pháp của riêng họ không? Tổ chức nên thay đổi như thế nào khi số lượng plugin trong giải pháp plugin đạt đến số lượng ma thuật "quá nhiều"?

Chúng tôi không có bất kỳ vấn đề nào với nhiều dự án này trong giải pháp ... nó tải nhanh, nó xây dựng nhanh chóng, sử dụng một lượng bộ nhớ hợp lý và không gây VS2008 gặp sự cố hoặc chống lại bất kỳ Lỗi VS2008.

Tôi đã tìm tài liệu từ Microsoft (dường như không có) và tìm kiếm trên Google các đề xuất từ ​​"mọi dự án nhận giải pháp riêng" để "đặt tất cả dự án vào một giải pháp." Cả hai thái cực dường như vô lý. Tôi đang tìm một số hướng dẫn hợp lý ở giữa.

Đã có các câu hỏi khác về Stackoverflow liên quan đến số maximum mà bạn đã xem. Điều đó không hoàn toàn giống với mức tối ưu.

Trả lời

3

Điều này giống như các cuộc thảo luận như thế nào? và "nên mỗi enum được định nghĩa trong tập tin .cs riêng của nó?".

Tôi muốn biết mỗi lớp của bạn có bao nhiêu lớp học. Bạn có thể nghĩ về các lớp học, dự án và giải pháp của bạn như là các đơn vị tổ chức. Họ có mặt để giúp cuộc sống của bạn dễ dàng hơn và cho phép bạn (và nhóm của bạn) phá vỡ dự án tổng thể thành các khối khái niệm có thể quản lý được.

Nếu VS2008 không phàn nàn, và bạn và nhà phát triển của bạn không có vấn đề với 50 dự án trong một giải pháp thì tôi sẽ không lo lắng về nó.

Điều đó nói rằng, nó có vẻ giống như một số lượng khá lớn - nhưng sau đó chúng tôi không biết gì về kích thước của codebase tổng thể của bạn vì vậy thật khó để bình luận thêm.

+0

Stack Overflow có [nói rằng họ] (http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html): _Have chỉ có 9 dự án, các hệ thống khác có 100. Lý do có quá ít dự án là việc biên dịch nhanh như chớp, đòi hỏi lập kế hoạch ngay từ đầu. Biên dịch mất 10 giây trên một máy tính duy nhất._ Với ý nghĩ này, 50 dự án là lý tưởng hơn, từ góc độ biên dịch tốc độ. –

4

Tôi muốn nói rằng bạn cần ít nhất 1 dự án cho mỗi lớp trên hệ thống của bạn. Nếu bạn cần nhiều dự án hơn, có thể đó là vấn đề về thiết kế. Có nghĩa là bạn có thể "Over" - thiết kế hoặc "Under" - thiết kế ứng dụng.

Tôi hiện đang sử dụng các lớp sau:

DataLayer - Chịu trách nhiệm về cấu trúc dữ liệu cơ bản (cơ sở dữ liệu). Trong những trường hợp mới nhất có LINQ và một phần các lớp học trong dự án này.

Giao diện - Có một lớp cho tất cả các giao diện, điều này để giúp mở rộng và không phải dựa vào một số lớp khác để sử dụng các giao diện này.

Logic - Điều này xác định bản thân, logic kinh doanh

GUI/Mặt trận - Giao diện người dùng đồ họa (Code)

Những lớp là lớp khác tối thiểu có thể được có thể sẽ là các địa phương và dự án khác có thể phát triển.

Nhưng rahter đơn giản hóa các thư mục và không gian tên hơn là sử dụng cho nhiều dự án!

+0

Nó không phải là đơn giản. Lớp có thể (và thường xuyên nhất nên) được chia thành các thành phần, tức là lớp dữ liệu có thể có phần trừu tượng (chung) và một hoặc nhiều triển khai cụ thể hơn. Có một giao diện lắp ráp cũng có thể dẫn đến việc thêm phụ thuộc vào các phần không sử dụng của hệ thống. – user3285954

0

Rõ ràng khi bạn đạt đến 500 thì bạn bắt đầu xem xét "quá nhiều", điều đó trở nên không thực tế ngay cả khi quản lý nó.

Tôi có thể đề nghị bạn phân tích "những gì thực sự cấu thành ứng dụng của tôi" và gói đó như một giải pháp duy nhất. Plugins hiếm khi được coi là một phần của ứng dụng cơ sở nhưng các add-on cho chức năng cơ bản.

Nếu ứng dụng sẽ hết hiệu lực nếu không có một số plugin nhất định, hãy bao gồm các plugin đó trong giải pháp cơ bản.

Các plugin khác có thể được nhóm lại trên Thể loại ... giống như danh sách phát trên iPod của bạn. Mỗi plugin đạt được mức tổng quát hơn thì sao? (Đây là những câu hỏi rõ ràng hùng biện) Tôi sẽ nhóm các plugin lại với nhau trong các nhóm tự nhiên - giống như plugin PhotoShop khi họ nhóm trên menu. tức là chúng ảnh hưởng đến 3D, chúng có ảnh hưởng đến màu sắc hay không, chúng có ảnh hưởng đến hiệu ứng hình học hay không, chúng ảnh hưởng đến biến dạng, v.v ...

0

Khi thấy tốc độ chậm, tôi có xu hướng tạo một giải pháp có tham chiếu đến các phiên bản được xây dựng (các hội đồng) của các dự án phụ thuộc hơn là tệp dự án (cho bất kỳ dự án nào mà tôi không cần xem mã nguồn) . Tôi chỉ mở nguồn cho các dự án mà tôi đang làm việc - chắc chắn không ai cần làm việc với 50 dự án cùng một lúc.

Nếu bạn đã tham khảo các hội đồng phụ thuộc chứ không phải là nguồn, thì tôi nghĩ đó chỉ là vấn đề hoặc sở thích của tổ chức (sắp xếp theo cách dễ nhất để bạn hiểu và duy trì).

Các vấn đề liên quan