2009-06-02 26 views
10

Chúng tôi đang có kế hoạch sử dụng ASP.NET MVC trên một dự án tương đối quan trọng (đối với doanh nghiệp). Nhóm phát triển bao gồm 4 nhà phát triển và Trưởng nhóm kỹ thuật. 2 trong số các nhà phát triển và Trưởng nhóm công nghệ đã làm việc cùng nhau trước khi dự án ASP.NET WebForms và tự tin bằng cách sử dụng công nghệ đó.Những rủi ro chính khi sử dụng ASP.NET MVC lần đầu tiên

Chúng ta sẽ xem xét một số phương pháp được sử dụng trên một số dự án WebForms đầu tiên của chúng tôi (ví dụ: sử dụng quá nhiều UpdatePanels, thiếu kiến ​​thức về điều khiển như ListView, ViewState cồng kềnh, v.v.).

Điều quan trọng là chúng tôi không xem xét lại dự án này trong một năm và xoay quanh một số phương pháp tiếp cận ASP.NET MVC của chúng tôi!

Dựa trên kinh nghiệm, có ai có bất kỳ rủi ro chính nào mà họ có thể trích dẫn khi sử dụng ASP.NET MVC lần đầu tiên không?

Tôi đang nghĩ về gotchas, bóng đèn mất một lúc để tiếp tục, các phần của khung mà bạn cảm thấy bạn đang chiến đấu cho đến khi bạn học được một vật phẩm cụ thể, điều đó.

+4

Không phải là hoàn toàn bình thường khi nhìn lại mã của bạn một năm kể từ bây giờ và xoay quanh những gì bạn đã viết? Đặc biệt là một khuôn khổ mới? Trừ khi người cao niên của bạn quen thuộc với mẫu MVC, không ai sẽ ở đó để nắm tay bạn và giúp bạn viết mã tuyệt vời lần đầu tiên. –

+0

@Chad - bạn có lẽ đúng, tôi chỉ cố gắng giảm thiểu yếu tố rạn nứt mà chúng tôi có thể phải đối mặt! –

Trả lời

2

Rủi ro lớn nhất mà tôi đã thấy xuất phát từ việc trở lại phương tiện không quốc tịch.

Đã hết bài đăng. Hầu hết các điều khiển máy chủ đều biến mất. Viewstate đã biến mất. Mô hình theo hướng sự kiện đã biến mất.

Nếu nhà phát triển của bạn CHỈ sử dụng biểu mẫu web asp.net để xây dựng trang web và không bao giờ có công nghệ web khác, họ đang học rất nhiều.

+2

Tôi đồng ý rằng nó có thể là rất nhiều học tập, nhưng nó là tốt học tập ;-) May mắn thay rất nhiều hình thức phát triển web biết rất ít về web, trong nhiều trường hợp ít hơn so với một nhà phát triển ASP điển hình cổ điển, người ít nhất đã phải suy nghĩ abuot HTTP POST và GET mặc dù hầu hết mã kết thúc bằng spaghetti. Tôi tin rằng các trang web có thể tìm hiểu về MVC sẽ giúp bạn hiểu được điều gì thực sự xảy ra trong ứng dụng web. Tôi không đồng ý rằng nó là một _return_ đến một phương tiện không quốc tịch. Web luôn luôn là một phương tiện không quốc tịch, nó chỉ là các biểu mẫu web ẩn thực tế theo một cách khá vụng về. –

+0

Ồ, hoàn toàn. Nó rất tốt, và cái gì đó rất có lợi cho bất kỳ nhà phát triển nào, nếu không có gì nhiều hơn nó thực sự chỉ cho họ cách sử dụng các loại hạt và bu lông của HTTP. Khi tôi nói trở lại, cho quá nhiều webforms folks, nó * là * stateful. ViewState là vụng về và xấu xí với những người trong biết, nhưng để phát triển asp.net quá nhiều cách của nó 'làm việc' web. –

0

Điều quan trọng nhất đối với tôi là hiểu Mô hình ràng buộc và bạn có thể có chế độ xem được nhập.

Cũng bảo vệ đúng cách tuyến đường của bạn.

+0

Bạn có thể thêm chi tiết hơn không? Mô hình Binding - bạn đang nói về quan điểm mạnh mẽ đánh máy? Ý bạn là gì về việc bảo vệ tuyến đường của bạn? –

7

Sử dụng mạnh Typed xem và tạo ra một mô hình mới cho mỗi view

lý do đơn giản: Đó là để đảm bảo mẫu của bạn được separted từ Xem của bạn. Nếu bạn cần phải tái cấu trúc, bạn chỉ phá vỡ một phần. Vì vậy, nếu bạn có một cái gọi là "Tin mới nhất", bạn nên có một "LatestNewsViewModel". Sau đó, nó là công việc của bộ điều khiển để lấy dữ liệu từ Mô hình/Cơ sở dữ liệu thực tế và tạo một Mô hình Xem mà nó được chuyển vào các khung nhìn của bạn. Ngoài ra, nếu bạn quyết định rằng bạn cần thêm các công cụ trong View của bạn, bạn không cần phải cấu trúc lại toàn bộ Lớp truy cập dữ liệu, vì bạn chỉ phải thay đổi ViewModel và hành động Controller điều chỉnh nó.

Performance

tôi khuyên bạn nên kiểm tra ra this slideshow về mối quan tâm thực hiện và tối ưu hóa có thể làm cho một tác động rất lớn.

+1

Trình chiếu thú vị trong liên kết, cảm ơn :) –

+1

Tôi đã ấn tượng rằng các mô hình của bạn không nên "quan tâm" về các chế độ xem mà chúng được sử dụng (tách mối quan tâm). Bạn có đề xuất hai loại mô hình: các mô hình đại diện cho dữ liệu "chỉ" và các mô hình được thiết kế riêng để sử dụng trong chế độ xem không? –

+0

Có. Về cơ bản, bạn có các lớp Mô hình thông thường để xử lý việc đọc và ghi dữ liệu vào cơ sở dữ liệu, nhưng bạn cũng có các lớp Mô hình riêng biệt cho mỗi chế độ xem - được gọi là Xem mô hình. Những Mô hình xem đó không thực sự làm bất kỳ điều gì, chúng chỉ là một tập hợp các thuộc tính và giữ chính xác dữ liệu mà Chế độ xem cần. Bộ điều khiển sau đó nói chuyện với mô hình "bình thường" của bạn để có được chính xác dữ liệu cần thiết, tạo ra một thể hiện của ViewModel thích hợp và điền nó vào và sau đó gửi nó đến (xem mạnh). Dường như quá mức cần thiết lúc đầu, nhưng tiết kiệm được tái cấu trúc-nhức đầu sau này. –

2

Bạn có thể tải xuống miễn phí eBook từ blog của Scotts Guthrie mang đến cho bạn hướng dẫn đầy đủ về cách xây dựng trang web ASP.NET MVC từ đầu.

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