2009-05-04 21 views
16

Tôi đang đọc về mẫu ASP.net MVP vào cuối tuần này và có vẻ như ngay cả nhiệm vụ đơn giản nhất cũng tốn quá nhiều công sức nếu thực hiện trong mẫu MVP trả tiền có vẻ là dự án lớn hơn nhưng tôi nghĩ sẽ theo MVP. Tại sao không chỉ thực hiện dự án trong ASP.net MVC?Trình xem mô hình ASP.net có đáng giá thời gian không?

Lý do tôi đang xem mẫu MVP là vì tôi đã nhận thấy trong tất cả các dự án Web.net ASP.net của tôi có rất nhiều mã trong mã phía sau chỉ để xử lý sự kiện cùng nếu tôi có rất nhiều máy chủ kiểm soát trên mẫu web vì vậy tôi đã nhìn vào cách để giảm điều đó và đi qua mô hình MVP.

Có đáng để nỗ lực theo dõi mẫu MVP hay chỉ chuyển sang ASP.net MVC?

+2

Câu trả lời ngắn: yes nỗ lực đáng của nó bởi vì bạn có thể nhận được rất nhiều mã của bạn ra khỏi code-behind file. Điều này tạo điều kiện cho khả năng kiểm tra, duy trì khả năng, khả năng đọc và khả năng thiết kế. –

+0

Hầu hết các đội và dự án (bao gồm tôi) chỉ đơn giản là không thể biện minh cho một MVC viết lại hoàn toàn hoặc tất cả hoặc không có gì "chuyển đổi" để MVC. –

Trả lời

16

Nếu bạn bắt đầu một dự án mới, thì ASP.net MVC là lựa chọn tốt hơn. Nhưng nếu bạn chỉ muốn cấu trúc lại dự án hiện tại như bạn vừa nói, thì MVP là tùy chọn vì không có cách nào dễ dàng để chuyển đổi các mã dạng biểu mẫu web đó thành MVC.

+0

tại sao ASP.NET MVC lại là lựa chọn tốt hơn? – cruizer

+1

Đối với một, MVC cung cấp rất nhiều giàn giáo ra khỏi hộp để bắt đầu. Điều này làm cho nó rất dễ dàng để làm định tuyến, giàn giáo, thử nghiệm và như vậy. – aleemb

+0

@ aleemb, ở phía bên kia "truyền thống" asp.net "webforms" cung cấp bộ phong phú của xây dựng trong và bên thứ 3 kiểm soát UI tái sử dụng như trái ngược với asp.net MVC nơi bạn có thể kiểm soát mỗi bit đi lên/xuống để dây nhưng sẽ phải viết nhiều html hơn so với webforms .. luôn có công cụ tốt nhất cho công việc và mvc không phải lúc nào cũng là lựa chọn tốt nhất. – Jack0fshad0ws

2

ý kiến ​​cá nhân của tôi là nếu có nhiều mã trong mã phía sau, vẫn còn nhiều cách khác ngoài việc áp dụng M-V-P để làm mỏng nó xuống, tái cấu trúc và làm cho nó có thể kiểm chứng.

nếu trang của bạn có tương tác người dùng rộng rãi (như kích hoạt/vô hiệu hóa các nút/liên kết, bảng điều khiển xuất hiện/biến mất) M-V-P sẽ đáng giá.

3

Theo tôi, cách lý tưởng để đi cho các ứng dụng mới là MVC. Tuy nhiên, nếu bạn có rất nhiều mã đã sử dụng WebForms, thì mô hình MVP là cách để đi.

+0

tại sao nó lại lý tưởng? – cruizer

+1

ASP.NET MVC cho phép bạn kiểm soát tốt hơn HTML của mình, làm cho mã của bạn dễ kiểm tra hơn. Nó cho phép bạn thực hiện theo các phương pháp hay nhất, như "tách mối quan tâm". – ichiban

19

tôi sẽ khuyên bạn nên đọc hai liên kết sau đây để giúp bạn có được tốc độ trên MVP và MVC:

bạn nên chuyển sang?
Dựa trên những gì bạn đã nói với tôi, tôi khuyên bạn nên sử dụng mô hình MVP thụ động được đề cập trong bài viết ở trên.

giả chính của tôi là:

  1. của bạn đối phó với một codebase hiện có của WebForms ứng dụng
  2. Bạn cần phải sử dụng điều khiển Bên thứ ba Net cho các chức năng hiện có
  3. làm việc của bạn trên các ứng dụng hiện có và không có thời gian để thiết kế lại chúng
  4. Bất kỳ ASP nào.Web Apps Net bạn làm việc trên trong tương lai, bạn từng bước có thể áp dụng MVP thụ động và nhận được những lợi ích của TDD ngay lập tức

Xem của bạn (codebehind + aspx) về cơ bản trở thành câm và chỉ thực hiện nhiệm vụ đơn giản:

  • lấy thông tin được đưa ra bởi người dẫn chương trình
  • phản ứng với các sự kiện và cung cấp thông tin về người dẫn chương trình

tôi đã sử dụng mô hình này rộng rãi cho sự phát triển Web Forms và Tôi không thể tưởng tượng là không thể Unit Test Model và Presenter của tôi. Một khi bạn thiết lập mô hình cơ bản của bạn mà không mất rất nhiều thời gian và nhìn thấy sức mạnh của Unit Testing, làm việc với Web Forms trở nên thú vị.

Một số liên kết đến các MVP thứ mà mô hình tôi đã sử dụng dựa trên:

Tôi cũng sẽ khuyên bạn nên học MVC đến.
Khi thời gian cho phép, hãy lấy một Ứng dụng hiện có và chuyển nó đến MVC. Bằng cách này, trọng tâm duy nhất của bạn là tìm hiểu MVC và khi bạn di chuyển logic vào mẫu MVC, bạn sẽ khám phá những thứ mà bạn đã triển khai trong WebForms và không bao giờ suy nghĩ nhiều nhưng bây giờ cần phải giải quyết theo cách khác. Cách tuyệt vời để so sánh các mẫu và xem những gì phù hợp với bạn.

Hy vọng điều này sẽ giúp, vui lòng đặt bất kỳ câu hỏi nào.

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