Quay trở lại với các dạng web của ASP.Net từ ASP.Net MVC. Đề xuất mô hình / kiến ​​trúc?


12

Đối với nhiều bạn điều này nghe có vẻ như là một câu hỏi lố bịch, nhưng tôi đang hỏi bởi vì tôi không có chút kinh nghiệm nào với các dạng web của ASP.Net - Tôi đã đi thẳng đến ASP.Net MVC.

Tôi hiện đang làm việc trên một dự án mà chúng tôi giới hạn ở .Net 2.0 và Visual Studio 2005.

Tôi thích sự phân tách rõ ràng các mối quan tâm khi làm việc với ASP.Net MVC và đang tìm kiếm một cái gì đó để làm cho các biểu mẫu web bớt khó chịu hơn. Có bất kỳ mô hình hoặc thực tiễn được đề xuất nào cho những người thích asp.net MVC, nhưng bị mắc kẹt trên .net 2.0 và visual studio 2005 không?


Cảm ơn tất cả những người gợi ý - ước gì tôi có thể chọn nhiều hơn một câu trả lời.
jlnorsworth

1
Tôi hy vọng rằng nhiệm vụ mới của bạn chỉ dành cho một dự án hiện tại chứ không phải là thứ gì đó bắt đầu từ đầu. Có nhiều điều cơ bản mà bạn sẽ trở nên phụ thuộc vào điều đó sẽ bị thiếu, chẳng hạn như sử dụng Linq cho các truy vấn đơn giản trên các bộ sưu tập. Một sự thất vọng lớn sẽ đến từ việc nhìn vào HTML được tạo và thấy rằng nó không giống như những gì bạn mong đợi. Chúc may mắn, và tôi hy vọng rằng bạn thành công.
Chris

Câu trả lời:


7

Tôi muốn giới thiệu Model View Presenter (MVP). Chúng tôi đã sử dụng điều này trên một ứng dụng WebForms gần đây và nó đã tăng khả năng kiểm tra của chúng tôi và cho phép chúng tôi thực thi việc phân tách các mối quan tâm.

http://msdn.microsoft.com/en-us/magazine/cc188690.aspx là một bài viết tuyệt vời của Jean Paul Boodhoo về mẫu này; mã tải về cũng tốt. Bạn có thể thấy rằng bạn không cần DTO và giao diện cho DTO.

Một bài viết hay khác là bài này trên codeproject.com: http://www.codeproject.com/KB/arch architecture / ModelViewPresenter.aspx

Chỉnh sửa: cũng có một khung gọi là WebForms MVP nhưng tôi không biết nhiều về nó.


Webvorms MVP trông thực sự tuyệt vời, nhưng dự án dường như đã bị đình trệ (phát hành lần cuối vào 07/10). Không có nhiều tài liệu hoặc hướng dẫn có sẵn
jlnorsworthy

Nó dường như cũng yêu cầu .NET 3.5 SP1 nên có thể không quá hữu ích cho bạn. Tuy nhiên, các mẫu và nguồn có thể giúp bạn đánh giá mẫu MVP.
Ciara

Điểm tốt, tôi thậm chí không nhận thấy điều đó. Tôi sẽ để mắt đến dự án đó trong trường hợp tôi phải làm webforms với một công ty có công nghệ hiện tại :)
jlnorsworthy

4

Tôi muốn giới thiệu cho bạn để hiểu vòng đời trang của .net 2.0

Những video này có thể đáng xem mặc dù không phải tất cả đều miễn phí nhưng ít nhất đây sẽ là một khởi đầu tốt cho bạn .... Điều này sẽ cho bạn ý tưởng về những gì cần nghiên cứu thêm sau này.


3

Như bây giờ bạn có thể đã phát hiện ra rằng bạn sẽ cần phải học một vài điều mà bạn đã học với ASP.NET MVC (btw - điều tương tự xảy ra khi một người ASP.NET nhảy vào tìm hiểu ASP.NET MVC). Bạn vẫn có thể triển khai mô hình MVC trong ASP.NET nhưng sự tách biệt của View và Model rất mờ trong ASP.NET do kiến ​​trúc đăng lại sự kiện / trang.

Theo tôi, hầu hết việc học mới của bạn sẽ liên quan đến Vòng đời của Trang và Sự kiện & Điều khiển. Các công cụ thông thường Các tương tác Phiên, Cache, ViewState và DB vẫn giữ nguyên.

HTH ...


2

Mẫu Bộ điều khiển Mặt trước Thanh toán và Bộ điều khiển Mặt trước Thực hiện trong Asp.Net. Làm những điều này chỉ khi dự án của bạn sẽ có kích thước tốt. Làm điều này cho một dự án nhỏ sẽ không biện minh cho ROI.

Trong một dự án nhỏ, bạn có thể cố gắng thiết lập một số hướng dẫn. Ví dụ: Không có logic nghiệp vụ, không sử dụng phiên, v.v. trong mã phía sau.

Xem những gì phù hợp nhất trong trường hợp của bạn. Trong mọi trường hợp giữ sự cám dỗ để làm hơn kỹ thuật.


0

Quay lại những ngày đen tối của .NET 1.1 tôi đã tạo (tôi đoán như mọi người) một loại hệ thống MVC cho một ứng dụng đã đi như thế này.

Một trang được tạo thành một loại chủ 'giả'. Điều này đã có một số hệ thống ống nước để hiển thị menu, kịch bản, phong cách, vv

'Lượt xem' là các điều khiển người dùng cá nhân.

Có một bảng với thông tin về mỗi chế độ xem. Ví dụ: 'Sản phẩm' sẽ tải ~/Controls/Product.ascxvào một trình giữ chỗ. Bảng cũng có một trường chứa tên loại của lớp mô hình (như thể). Mỗi mô hình thực hiện một giao diện nổi tiếng. Lớp này được khởi tạo bằng cách sử dụng Activator.CreateInstance()và được gọi để khởi tạo, và sau đó được chuyển đến chính điều khiển (đảo ngược điều khiển?). Kiểm soát sau đó đã gọi các phương thức khác nhau để có được bộ dữ liệu hoặc không có gì. Giao diện đã được chuẩn hóa để có các phương thức CRUD thông thường (Đọc / Ghi / Danh sách / Xóa). Ngoài ra còn có lớp DAL / ORM bên dưới này.

Nó không đẹp, nhưng nó hoạt động tốt. Thật dễ dàng để kiểm tra và phát triển, và hầu hết các nhà phát triển tham gia sẽ bắt kịp khá nhanh. Hầu hết tất cả, nó là tương đối đơn giản để tạo ra.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.