2009-12-09 34 views
6

Tìm cách thu thập một số quan điểm về cách ứng dụng web (Hoặc có thể thiết lập các ứng dụng web) nên được chia nhỏ (Dự án khôn ngoan) ... về cơ bản, toàn bộ điều sẽ là một trang web lớn, nhưng vấn đề phát sinh bởi vì nó có một loạt các mô-đun mà mỗi mô-đun có chu kỳ phát hành/phát hành riêng của họ.Chia nhỏ ứng dụng web asp.net

Vấn đề nảy sinh là tách chúng trở thành đau đầu khi cố gắng chia sẻ các phiên giữa các trang và nhúng tài nguyên được chia sẻ trong DLL nhưng giữ chúng như một dự án lớn là một cơn ác mộng từ góc độ kiểm soát nguồn.

Các cách có thể để làm điều này mà tôi có thể nghĩ đến là:

  1. Có một ứng dụng và chi nhánh như điên cho công tác trên từng module: Trên cơ sở phong cách cơ bản này có vẻ đúng, nhưng nó sẽ có rất nhiều chi nhánh và các chi nhánh hợp nhất trở lại trong mọi thời gian sẽ là một cơn ác mộng ...
  2. Làm cho tất cả các ứng dụng riêng biệt: Hạn chế là tất cả đều chia sẻ trang chính và nhiều điều khiển tùy chỉnh (được triển khai trong ascx). Tôi biết làm thế nào để đặt chúng trong một DLL (Sử dụng các nhà cung cấp đường dẫn ảo), nhưng nó là một giải pháp khá lộn xộn. Ngày đầu này là đi qua phiên trở lại và ra giữa các ứng dụng về cơ bản xây dựng một giải pháp phiên homebrew ...

Một điều khác tôi đã cố gắng để tìm hiểu xem tôi có thể làm nhưng thất bại là bằng cách nào đó có một " thư mục ảo "của các loại trong csproj sao cho thư mục" ModuleA "thực sự được ánh xạ tới" ../../../ModuleA/Trunk/ ". Tôi khá thuyết phục rằng điều này không thể được thực hiện mà không sử dụng một số loại kịch bản dựng sẵn nhưng tôi đã hy vọng một thứ gì đó thực sự tải một cách thích hợp trong Visual Studio, vì vậy tôi nghĩ ý tưởng này là không ...

Có ai có lời khuyên nào về cách thức mà tôi nên đi với điều này (Cho dù đó là một trong những điều trên hoặc một cái gì đó tôi đã không xem xét)? Muốn chắc chắn rằng tôi không tự bắn mình vào chân ở đây vì nó có thể là một dự án dài hạn với rất nhiều cải tiến/bảo dưỡng trong tương lai ...

Trả lời

3

Tôi đã làm điều đó trong một trong các dự án của chúng tôi. Có một số vấn đề chắc chắn chúng tôi phải đối mặt trong quá trình phát triển nhưng chắc chắn là có giá trị để tách riêng dự án trong dll riêng biệt để bảo trì

Vì bạn cũng đã đề xuất cho nhà cung cấp đường dẫn ảo mà tôi có liên kết nhất định cho cùng có thể giúp bạn. Ngoài ra để truyền dữ liệu giữa hai mô-đun, chúng tôi đã tạo các thuộc tính trong giao diện và tạo ra dự án riêng biệt cho giao diện và tất cả các mô-đun thực hiện giao diện đó, vì vậy chúng tôi có thể chuyển các giá trị từ một mô-đun sang mô-đun khác.

Ngoài ra, nó luôn luôn khuyến khích nếu bạn đang xây dựng ứng dụng mô-đun thì nó phải độc lập với nhau nhưng cuối cùng nó phụ thuộc vào yêu cầu của bạn.

Link1

UC From Database

Một số liên kết để chia sẻ phiên giữa ứng dụng (tôi sẽ không đề nghị chia sẻ phiên nhưng vẫn còn nếu bạn muốn, bạn có thể đi qua bài viết này)

ASP .Net Forum

Using State Server

StackOverflow

+0

Quan điểm của bạn có vẻ khá phù hợp với những kết luận mà tôi đã đưa ra khi tôi cố gắng tìm ra cách để đưa ra tất cả. Tôi đồng ý rằng việc chia sẻ trực tiếp phiên như được mô tả trong một số liên kết đó là một hack bẩn - rất nhiều để tôi viết trình điều khiển phiên của riêng mình trước khi triển khai các giải pháp đó. Theo mô đun mô-đun đủ để không chia sẻ dữ liệu, mỗi mô-đun tách biệt 100% với bất kỳ mô-đun nào khác nhưng chúng thực chất gắn liền với một ứng dụng trung tâm sẽ chạy trong webroot (Về cơ bản chỉ là một khung công tác các mô-đun buộc vào). – fyjham

+0

PS: Chưa chấp nhận điều này - muốn dành thêm chút thời gian để xem liệu có ai có ý kiến ​​/ cách tiếp cận khác không. Nếu không ai khác trong vòng một hoặc hai ngày, tôi sẽ chấp nhận điều này. – fyjham

0

Nếu bạn đang xây dựng dự án tôi không chắc chắn nếu đó là một ý tưởng tốt để sử dụng asp.net 2.0, vì những vấn đề bạn đã có. Ở một số giai đoạn trong dự án của tôi, tôi đã di chuyển các điều khiển ascx này để tách biệt 'điều khiển dự án thư viện' mà chỉ cần cho tôi chuỗi html mà sau đó tôi đặt ở đâu đó trong trang web. Giống như sử dụng <% = fControl%> cú pháp bên trong các trang aspx mà tôi điền bằng mã đó. Không phải là giải pháp thanh lịch, nhưng mọi thứ trở nên dễ dàng hơn nhiều. Dù sao, chúng tôi quyết định thực hiện lại dự án trong php, vì nó rẻ hơn và không tạo ra các vấn đề như vậy.

+0

Hey, tôi đã có ascx làm việc từ dll chạy như bình thường (Chỉ có điều kỳ lạ là đường dẫn nguồn cho ascx, nhưng thậm chí là tốt). Ngoài ra chúng tôi đang sử dụng asp.net 3.5, đó là khá nhiều set-in-stone vì là một công ty đó là những gì mọi người biết và đào tạo lại toàn bộ công ty cho dự án này là không chính xác khả thi. – fyjham

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