2012-01-30 26 views
14

Trong một giải pháp dự án duy nhất giới thiệu các Vùng khi bạn có nhiều bộ điều khiển cải thiện sự tách biệt và cho phép các mô-đun dễ dàng được sao chép vào hoặc ra khỏi giải pháp. Tuy nhiên trong một giải pháp doanh nghiệp lớn, tôi sẽ ưu tiên tách logic thành các dự án riêng biệt thay thế.MVC Các khu vực dành cho doanh nghiệp - tốt hay xấu?

Do đó có các dự án giao diện người dùng, Bộ điều khiển, SOA, Mô hình và Kho lưu trữ riêng biệt. Trong trường hợp này, các khu vực không có ý nghĩa gì nữa, cộng thêm chúng thêm một cấp cao nhất vào Url thường không cần thiết, mặc dù tôi tin rằng bạn có thể bỏ qua khu vực trong Url nếu bạn giữ bộ điều khiển của mình độc đáo, nhưng không phải có một chút mùi?

Có lẽ Khu vực tốt cho các trang web phức tạp trung bình hoặc khi mã mô-đun được giữ ở một vị trí tốt hơn để có thể sao chép sang các trang web khác hoặc bị xóa.

+1

Có lẽ điều này có thể quan tâm: http://stackoverflow.com/questions/6656843/how-to-reuse-areas-controllers-views-models-routes-in-multiple-apps-or-websi. Nó sẽ cho phép bạn tách mã của bạn thành nhiều dự án. –

+0

Tôi nghĩ rằng những gì bạn đang tìm kiếm là khu vực di động, không phải khu vực bình thường. –

Trả lời

13

Tôi không chắc đó có phải là câu hỏi đúng hay không. Các khu vực có thể là quá mức cần thiết cho các dự án nhỏ, nhưng thật khó để tưởng tượng một dự án lớn không tầm thường không sử dụng các khu vực để giúp tổ chức các lớp học.

tôi sử dụng MVC khu vực cho các doanh nghiệp và yêu một vài điều về nó:

  1. Thông thường mọi người đang làm việc trên một tính năng trong một tên miền nhất định (ví dụ, tìm kiếm, Checkout, vv). Nếu tên khu vực tương ứng với tên miền doanh nghiệp của bạn, thì Khu vực MVC sẽ giúp giảm thời gian thực hiện đối tượng địa lý, vì các lớp học có liên quan dễ tìm.
  2. Định tuyến MVC cung cấp cho bạn rất nhiều tính linh hoạt về cách cấu trúc URL. Tôi đã từng sử dụng số Action Controller "pattern" nhưng đối với các URL không phải công khai, tôi đã hoàn toàn chấp nhận tuyến đường mặc định của Khu vực để dễ dàng thực hiện.
  3. Các khu vực cung cấp cho bạn lợi thế khác biệt về tạo kiểu và, quan trọng hơn, hành vi đóng gói ở cấp trang web. Mỗi khu vực có cấu hình web riêng của nó, nơi bạn có thể kiểm soát trang xem cơ sở hoặc thêm trình xử lý được quản lý.

Bạn hoàn toàn đúng rằng các dịch vụ phải ở trong các dự án riêng biệt/giải pháp hoàn toàn, mà trừu tượng truy cập dữ liệu thông qua kho, trong một môi trường mà nhiều khách hàng có thể truy cập chức năng kinh doanh thông thường.

Nhưng các khu vực MVC rất tuyệt khi cung cấp một số thứ tự cho giao diện người dùng/định tuyến khi một dự án web phát triển, mà đối với tôi, là vô giá, bất kể ngữ cảnh.

+0

+1, tổng quan tuyệt vời về lý do tại sao các khu vực lại hữu ích. – kprobst

1

Trước tiên, trước khi tôi trả lời lưu ý rằng đây chỉ là ý kiến ​​của tôi và chủ yếu là về các mô hình.

Cách tôi nhìn thấy nó, các khu vực có thể rất ác. Nếu bạn có nhiều khu vực, giải pháp thám hiểm của bạn trở thành mê cung, và nó có thể khó khăn như vậy để tìm một cái gì đó.

Tôi đề xuất tạo dự án thư viện mới bên trong giải pháp của bạn và đặt logic vào đó.

Lợi ích tốt nhất (và nó không phải là bạn có thể tìm thấy những gì bạn đang tìm kiếm dễ dàng hơn nhiều) là ứng dụng của bạn trở nên nhiều mô-đun hơn. Nếu bạn tạo một thư viện và chỉ định một tham chiếu cho nó trong ứng dụng ASP.NET MVC của bạn, bạn không thể dễ mắc lỗi và liên quan đến giao diện người dùng trong logic.

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