Sản phẩm của chúng tôi là một ứng dụng web ASP.Net. Hiện tại, chúng tôi sử dụng các dự án trang web trong Visual Studio, nhưng đã xem xét việc sử dụng các dự án ứng dụng web trong một thời gian dài. Tôi hiện đang nghiên cứu chúng để chúng tôi hy vọng có thể cải thiện quy trình triển khai của mình.Cấu trúc và triển khai ứng dụng web
Chúng tôi có một trang web cơ sở được chia sẻ và phổ biến giữa các khách hàng khác nhau, và sau đó chúng tôi mở rộng với chức năng dành riêng cho khách hàng trong các dự án trang web của khách hàng. Các dự án khách hàng mở rộng cơ sở, và do đó dựa vào nội dung của nó. Để xây dựng sản phẩm đầy đủ, trước tiên chúng tôi triển khai trang web cơ sở và sau đó phủ nó với nội dung từ dự án khách hàng.
Khi xem xét chuyển đổi sang Dự án ứng dụng web trong Visual Studio, chúng tôi hy vọng có thể tạo dự án cơ sở, sau đó tạo dự án khách hàng và thiết lập tham chiếu đến cơ sở. Cấu trúc này dường như làm việc OK, nhưng khi chúng tôi đang cố gắng triển khai ứng dụng từ dự án khách hàng bằng cách sử dụng MSDeploy, chỉ có dll từ trang web cơ sở đang được xuất bản. Điều này là tốt cho một số điều, tham khảo các mã biên dịch là hữu ích, nhưng có các mặt hàng khác như hình ảnh, js trang, htm, vv mà vẫn là nguồn đó là cần thiết cho các ứng dụng khách hàng hoạt động. Chúng tôi cần nhiều hơn mã được biên dịch từ trang web cơ sở của chúng tôi.
Đó là tất cả đang được nói, tôi có thể nghĩ ra một vài lựa chọn ở đây:
- Tiếp tục triển khai trong 2 bước. Đầu tiên là trang web cơ bản, sau đó là trang web của khách hàng để xây dựng sản phẩm đầy đủ.
- Sửa đổi quy trình triển khai để sao chép các tệp nguồn được yêu cầu từ dự án cơ sở
- Kiến trúc sư lại mô hình của chúng tôi để hỗ trợ mối quan hệ cơ sở khách hàng này theo cách khác. Không hoàn toàn chắc chắn như thế nào điều này sẽ làm việc, và sẽ là lựa chọn ít nhất khả thi.
- ??
Có tùy chọn khác mà tôi bị thiếu không? Tôi có làm gì sai với cách tôi đang thiết lập dự án của mình không? Có nhiều hơn để làm cho một ứng dụng Web tham chiếu một ứng dụng web khác ngoài việc chia sẻ mã được biên dịch không? Nếu đó là trường hợp, tại sao bạn sẽ không chỉ sử dụng một thư viện lớp học chia sẻ? Hoặc có lẽ tôi đang thiếu một cái gì đó với quá trình MS Deploy?
Tôi mở cửa cho các đề xuất ở đây vì tôi cảm thấy như tôi đang thiếu điều gì đó. Tôi không nghĩ rằng mô hình của chúng tôi cho các ứng dụng web của chúng tôi là quá độc đáo.
Cập nhật: Quy trình triển khai kép không hoạt động nhưng cảm thấy một chút kludgey. Bất kỳ đầu vào nào khác?
BTW, vâng, mô hình của bạn không bình thường. Nhưng chạy trốn khỏi trang web "dự án" trong mọi trường hợp. Họ là duy nhất, và không phải là một cách tốt. –
Ya chúng tôi đã biết một thời gian rằng các dự án trang web là .. umm, "đặc biệt" theo một số cách. Nó chỉ khó khăn vào những thời điểm để sửa chữa một cái gì đó mà không bị hỏng. Điều gì làm cho cấu trúc của chúng tôi trở nên độc đáo? Một tùy chọn khác có thể hiểu là để mọi dự án chứa toàn bộ nguồn của ứng dụng và thiết lập một số loại phân nhánh nguồn. Tuy nhiên, chúng tôi đã thực hiện điều đó và rất khó để duy trì các thay đổi. – yourbuddypal
Tôi đã không nghĩ đến việc sử dụng phân nhánh trong kịch bản này trước đây, nhưng FYI, việc phân nhánh trong TFS 2010 dễ sử dụng hơn rất nhiều so với trước đây. Nó đáng xem. Tôi cũng khuyên bạn nên tách riêng và tách riêng các phần ứng dụng cụ thể của ứng dụng khỏi các phần phổ biến. Tạo điểm mở rộng và tùy chỉnh cụ thể trong ứng dụng. Điều đó sẽ làm cho nó dễ dàng hơn để xem cách tốt nhất để triển khai này. Ngoài ra còn có các thủ thuật thú vị mà bạn có thể chơi với MSDEPLOY. Xem http: //www.amazon.com/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248 –