2009-07-29 34 views
5

Tôi sẽ sớm thiết kế một vài ứng dụng web. Họ có thể sẽ được thực hiện trong asp.net MVC.Ứng dụng web mvc có nên là 3 tầng không?

Trong các ứng dụng web hiện tại của tôi, được thực hiện trong delphi, lớp truy cập dữ liệu được phân tách thành một ứng dụng hoàn toàn riêng biệt, đôi khi chạy trên một máy chủ khác. Điều này được thực hiện nhiều hơn để tái sử dụng mã hơn là vì lý do kiến ​​trúc. Đây sẽ không phải là một yếu tố trong ứng dụng tiếp theo vì nó sẽ hoàn toàn mới.

Có ứng dụng truy cập dữ liệu riêng biệt quá mức trong ứng dụng mvc không? Tôi đã được tách ra khỏi các lớp học kinh doanh nhờ sử dụng MVC, và tôi sẽ sử dụng một ORM để thực hiện db persistance.

Chỉnh sửa: Chỉ cần làm rõ; Tôi sử dụng thuật ngữ lớp để chỉ các ứng dụng vật lý riêng biệt, một cái gì đó nhiều hơn chỉ là một phân tách hoặc lớp logic.

+2

Nếu bạn tách riêng các lớp học kinh doanh và DB cho sự thừa kế, bạn đã có ít nhất 3 tầng. GUI/Logic/DB - đây là 3 tầng nên bạn sẽ không nhận được n <3. Giới thiệu một lớp bổ sung nếu bạn cần thêm mô-đun hóa - nhưng điều đó hoàn toàn phụ thuộc vào ứng dụng của bạn. –

Trả lời

6

Thuật ngữ "Tier" trong trải nghiệm của tôi thường đề cập đến các phần ứng dụng thực tế, ví dụ: Client Tier & Cấp máy chủ.

MVC - đề cập đến 3 "Lớp" với mối quan tâm bị tách xung quanh 3 mối quan tâm về chi tiết Mô hình (Dữ liệu), Chế độ xem (Giao diện người dùng), Bộ điều khiển (Logic ứng dụng).

Bây giờ mà tôi đã thực hiện mà phân biệt về ngữ tôi ..

Là có một quá mức cần thiết ứng dụng truy cập dữ liệu riêng biệt trong một ứng dụng MVC?

tôi sẽ nói Không (một lần nữa tùy theo những gì bạn có ý nghĩa bởi ứng dụng), nó không phải là quá mức cần thiết, vì nó có thể trong kết quả thực tế thực tế trong một hệ thống dễ bảo trì hơn. ORM của bạn sẽ có thể cho phép các tùy chọn truy cập dữ liệu mới được cắm vào, nhưng nếu bạn muốn thêm ORM mới thì sao? Việc có Lớp Truy cập Dữ liệu được tách riêng (DAL) rõ ràng sẽ cho phép sự linh hoạt trong tương lai lớn hơn nhiều trong khía cạnh này của ứng dụng của bạn. Mặt khác, tùy thuộc vào quy mô và tầm nhìn cho ứng dụng tạo ra một tùy chọn truy cập dữ liệu hoàn toàn độc lập có thể quá mức cần thiết, nhưng trong một sự chia tách hạt DAL thành các hội đồng khác nhau thì thực hành được đề xuất rất nhiều trong bố cục của ứng dụng đang triển khai mẫu MVC.

Hy vọng điều này sẽ hữu ích, Nếu bạn cần thêm chiều sâu, hãy bình luận.

0

Nhận xét tuyệt vời Tobias.

Tôi nói thêm đủ các lớp sao cho phù hợp với bạn và giúp bạn dễ bảo trì hơn. Cũng để giữ một mối quan tâm riêng biệt.

2

Vâng, tôi hiểu nó phụ thuộc một chút vào việc bạn đang nói về tầng (pysical) hoặc lớp (hợp lý/dự án).

Về phân lớp - bạn có thể xem một thứ gì đó giống như kiến ​​trúc s # arp (code.google.com/p/sharp-architecture/) để biết ví dụ về cách chúng thực hiện (chúng có cách tiếp cận tối đa để phân lớp).

Đối với một ví dụ về quan điểm tối giản hơn ở đây, hãy nhìn vào blog của Ayende của: ayende.com/Blog/

Về tầng - Tôi nghĩ không cần thiết thêm tầng thêm và đưa everthing qua dây sẽ chỉ cần nhấn hiệu suất của bạn , trừ khi bạn cần phải làm điều này vì lý do năng lực. Có được các lớp bên phải, và họ tách chúng thành teirs như bạn cần phải điều chỉnh cho năng lực (không nên dùng quá nhiều refactoring nếu bạn đã tách riêng mối quan tâm của bạn tốt).

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