2009-08-04 36 views
7

Tôi là một fan hâm mộ lớn của những gì ASP.NET MVC đang làm, trên nhiều cấp độ.ASP.NET MVC không tốt cho điều gì?

Tôi sắp tham gia xây dựng lại trang web được quản lý rất cao và tôi không phải là khung làm việc tốt nhất (nếu có).

Các trang web sẽ cần những điều sau đây:

  • Để hỗ trợ javascript nặng, các trang tương tác cao
  • Nhưng đồng thời, cung cấp HTML ngữ nghĩa tiềm ẩn cho công cụ tìm kiếm
  • Hỗ trợ nhiều ngôn ngữ
  • Be skinnable
  • Hiển thị API dịch vụ web RESTful cho đối tác

Theo như tôi có thể nói, không có lý do gì để không sử dụng ASP.NET MVC cho việc này.

  • Tôi có thể trình bày ngữ nghĩa HTML và lớp Javascript trên đầu trang bằng cách sử dụng jQuery.
  • Nhiều ngôn ngữ có thể được cung cấp để sử dụng các tệp tài nguyên (giống như hiện tại).
  • Skinning có thể được thực hiện bằng CSS (nó sẽ không liên quan đến những thay đổi đối với đánh dấu).
  • Tôi có thể tập trung hóa logic nghiệp vụ để Bộ điều khiển và dịch vụ web WCF sử dụng cùng một mã.

Nhưng có những hạn chế tiềm năng nào khi sử dụng MVC mà tôi chưa xem xét?

Tôi không muốn trở thành chàng trai chọn công nghệ bởi vì nó rất hay nhưng sau đó lại tìm ra bài hát không phù hợp với công việc.

Trả lời

11

ASP.NET MVC không tốt khi tất cả việc bạn làm là tạo một trang web cần mã phía máy chủ (nhưng điều đó cũng đúng về ASP.NET).

Trong trường hợp của bạn, tôi nghĩ MVC sẽ là một cách tuyệt vời để thực hiện. MVC đã tự chứng minh trên các trang web lưu lượng truy cập cao (ví dụ: trang web này). Tuy nhiên bạn phải nhớ rằng MVC là mới và thay đổi. Một thư viện có thể không tồn tại để thực hiện một công việc cụ thể có nghĩa là bạn sẽ phải tự viết mã đó.

Chúc bạn may mắn khi xây dựng lại!

+0

cộng một cái cho cái này! :); –

6

Bạn nên tham gia MVC với những gì bạn đã nói về dự án của mình. Theo như tôi đang quan tâm, ASP.NET MVC thực sự chỉ KHÔNG tốt cho các tình huống mà bạn có một codebase lớn trong WebForms (có nghĩa là bạn có rất nhiều điều khiển người dùng ASP.NET, điều khiển tùy chỉnh, v.v.). Nó cũng không tốt nếu bạn sẽ có những người làm việc trên nó, những người không biết những gì nó là tất cả về. Ngoài ra, đó là một công nghệ khá đẹp.

0

tôi không thích ASP.NET MVC vì lý do sau:

1. Ugly API định tuyến, có http://ayende.com/Blog/archive/2008/11/05/a-case-study-of-bad-api-design-asp.net-mvc-routing.aspx là mô tả về những gì là sai. Nhân tiện, các url thân thiện có thể dễ dàng được triển khai mà không có mvc http://demo.liveui.net/bugtracker/Tasks/7

2. Mô hình đối tượng nghèo. Nó được chứng minh rằng phần mềm tốt nên bao gồm các thành phần tái sử dụng. Không có gì có thể được tái sử dụng trong trang web dựa trên ASP.NET MVC. Ví dụ: nếu bạn triển khai danh sách thả xuống thông minh thì sẽ rất khó sử dụng lại danh sách đó (ngay cả trên cùng một trang web).

3. Thiếu kiểm soát. Một số tính năng (như TreeView hoặc Menu) đã được thực hiện dưới dạng Điều khiển và sẽ lãng phí thời gian để triển khai lại chúng bằng cách sử dụng mvc.

Nếu tôi là bạn tôi sẽ cố gắng tìm một số CMS và tùy chỉnh nó cho nhu cầu WebSite.

Để trả lời: CÓ. Tôi biết về ASP.NET kiểm soát nhược điểm, nhưng câu hỏi là về ASP.NET MVC. Người ta có thể viết một cuốn sách về những gì là tốt và những gì là xấu trong ASP.NET nhưng tôi không nghĩ rằng nó là thích hợp để thảo luận về nó ở đây.

+2

Tôi sẽ downvote này nếu nó là wiki cộng đồng như câu hỏi này và nó là câu trả lời nên được. Bạn đã không thực sự giải quyết các điểm của mình. Kiểm soát có xu hướng có đánh dấu kém. Bạn có thể dễ dàng thực hiện các thành phần có thể tái sử dụng (thử sử dụng Spark thay vì công cụ xem Webforms). Bạn có thể có một điểm trên API định tuyến. Nó có thể xấu xí, nhưng nó hoạt động đủ tốt. –

+1

Tôi đồng ý với quan điểm của mình rằng công cụ định tuyến có thể được cải thiện. Về khả năng sử dụng lại, đúng là bạn không thể sử dụng các điều khiển ASP.NET cổ điển, tuy nhiên bạn có thể * sử dụng các thành phần jQuery/javascript dễ dàng hơn trong ASP.NET MVC, đồng thời duy trì đánh dấu ngữ nghĩa, sạch sẽ. – Jonathan

+3

Tôi không thấy lý do tại sao các điều khiển phải có đánh dấu không tốt. Thậm chí cú pháp MVC giống như có thể được sử dụng trong bất kỳ điều khiển ASCX nào. Về mô hình đối tượng nghèo. Nó được chứng minh là hữu ích để có mô hình đối tượng có thể được sửa đổi hoặc tùy chỉnh sau khi tạo. Ví dụ, có mô hình đối tượng dựa trên điều khiển tôi có thể sửa đổi các thuộc tính của điều khiển lắng nghe các sự kiện và vv… Trong khi với ý thức hệ MVC, rất khó để thay đổi một cái gì đó khi khung nhìn được tạo ra. –

3

tôi hai xu:

ASP.NET MVC là một lựa chọn tuyệt vời nhưng có một đường cong học tập ít có liên quan, do đó hãy chắc chắn rằng dự án của bạn kế hoạch khung thời gian/đã xử lý này. Có thể có các nhà phát triển trong nhóm của bạn, những người có thể không thoải mái khi làm việc với ASP.NET MVC, và điều này có thể gây ra sự chậm trễ có thể xảy ra (rất nhiều nhà phát triển vẫn đang làm việc trong ASP.NET 1.1!).

@Alex: Thiếu kiểm soát. Một số tính năng (như TreeView hoặc Menu) đã được thực hiện dưới dạng Điều khiển và sẽ lãng phí thời gian để triển khai lại chúng bằng cách sử dụng mvc.

IMO ý tưởng sử dụng điều khiển trong ASP.NET MVC không có ý nghĩa nhiều. Bạn có thể tạo một điều khiển treeview bằng cách sử dụng jQuery một cách dễ dàng. Các điều khiển máy chủ ASP.NET cổ điển mang rất nhiều hành lý (ViewState vv) và do đó ASP.NET MVC không sử dụng bất kỳ điều khiển nào (mặc dù bạn có thể sử dụng những người trợ giúp).

Cuối cùng, ASP.NET MVC là một lựa chọn thay thế, không phải thay thế cho Biểu mẫu web. Tôi sẽ không sử dụng ASP.NET MVC vì nó vẫn đang phát triển, và nhóm của tôi không phải là rất thoải mái với nó, nhưng tôi đoán từ từ ngày càng nhiều lập trình viên sẽ chuyển sang tùy chọn này (tốt hơn).

0

Có những cách tốt hơn để triển khai MVC mà không cần sử dụng asp.net MVC. Tôi đã làm điều đó trong quá khứ, ngay cả trước khi asp.net MVC ra đời. MVC là một mô hình, không phải là một công nghệ, tôi không hiểu tại sao một số người gọi nó là một công nghệ. Bạn có thể tách tất cả các mối quan tâm bằng cách loại bỏ mã phía sau khỏi biểu mẫu web và tạo bộ điều khiển và bộ định tuyến của riêng bạn và bạn vẫn sẽ có lợi thế về điều khiển biểu mẫu, v.v ... mà hầu hết các nhà phát triển asp.net được sử dụng để sử dụng. asp.net mvc là tốt đẹp cho những người mà không thực sự có thời gian để đúng cách tạo ra một ứng dụng MVC trong một môi trường webforms và cũng cho những người không có thời gian để kiến ​​trúc sư một giải pháp tốt hơn. trong conlcusion, asp.net mvc là tốt nhưng có một cách tốt hơn để làm điều đó và cuối cùng, MVC KHÔNG phải là một công nghệ.

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