Hiện tại chúng tôi có 12 dự án WCF trong giải pháp của chúng tôi. Mỗi dự án về cơ bản là điểm cuối của riêng nó. Ví dụ, dự án WCF "Đặt hàng" là điểm cuối Order.svc. 12 điểm cuối này được tiếp xúc bởi một dự án WebHost duy nhất. Dự án WebHost có 12 tệp .svc trỏ đến mỗi vùng/không gian tên tương ứng.Nhiều dự án WCF so với Dự án đơn lẻ trong giải pháp
Câu hỏi của tôi xoay quanh việc sử dụng MỘT dự án (một assembly ... một dll) so với nhiều dự án (nhiều hội đồng ... nhiều dll). Những lợi thế/bất lợi, nếu có? Kết quả cuối cùng là như nhau ... bạn có một dự án WebHost cho thấy các điểm cuối này trỏ đến một vùng/không gian tên. Ngoại trừ bạn chỉ cần quản lý một .dll vs 12 .dll trong thư mục bin.
Đối với tôi ưu điểm của một dự án: Tính bảo trì - thay vì 12 dự án, mỗi dự án có nhiều tham chiếu đến giao diện, datacontracts, tiện ích, v.v ... của chúng tôi. Sau đó chúng tôi có thể triển khai một dll và sử dụng cân bằng tải để phân phối đồng đều. Ngay cả khi chúng tôi lưu trữ 3 dịch vụ trên mỗi máy chủ một cách rõ ràng (vì vậy, 4 máy chủ), nếu máy chủ giảm cân bằng tải thì có thể điều chỉnh và 3 máy chủ khác sẽ có những thứ họ cần và tự động chăm sóc mọi thứ. (Tôi đoán như vậy là đúng với 12 .dll của ... chỉ cần có để đảm bảo tất cả 12 .dll là trên mỗi máy chủ).
Thời gian xây dựng - ít dự án hơn = thời gian xây dựng nhanh hơn. Visual studio không phải thực hiện nhiều liên kết và sao chép tất cả các .dll. Thời gian xây dựng nhanh hơn = nhà phát triển hiệu quả hơn và xây dựng và triển khai nhanh hơn.
Tôi hiện đang có một vài đồng nghiệp quan tâm đến "liên kết chặt chẽ" tất cả các dịch vụ WCF của chúng tôi vào một dự án. Đối với tôi, họ là tất cả các dịch vụ WCF tại sao không đặt chúng trong cùng một dự án? Các điểm cuối (tệp .svc) là những gì tách chúng ra. Tôi cũng đã nghe câu hỏi, "còn cái khóa chết thì sao?" Còn nó thì sao? Đó có phải là vấn đề/mối quan tâm hợp lệ không? (Tôi thực sự không biết)
Ngoài ra còn có các câu hỏi được nêu ra nếu .dll bị hỏng. NẾU nó là, sau đó tất cả các dịch vụ đang xuống. Một lần nữa ... đây có phải là một mối quan tâm hợp lệ?
Tất cả các ví dụ tôi đã thấy từ Microsoft và những người khác có các dịch vụ WCF trong một dự án được phân cách bởi các lớp khác nhau. Giao diện là trong dự án của riêng họ ... datacontracts trong dự án khác và như vậy.
Vì vậy, bạn phải làm gì? Làm thế nào để bạn tổ chức nhiều dịch vụ WCF trong Visual Studio Solution của bạn? Học theo tôi.