Tôi đã viết một cổng thông tin ASP.NET WebForms cho một khách hàng. Dự án có loại phát triển hơn là được lên kế hoạch và cấu trúc đúng đắn ngay từ đầu. Do đó, tất cả các mã được trộn với nhau trong cùng một dự án và không có bất kỳ lớp nào. Hiện tại khách hàng hài lòng với chức năng, vì vậy tôi muốn cấu trúc lại mã sao cho tôi sẽ tự tin về việc phát hành dự án. Vì dường như có nhiều cách khác nhau để thiết kế kiến trúc, tôi muốn có một số ý kiến về cách tiếp cận tốt nhất để thực hiện.
CHỨC NĂNG
Cổng thông tin cho phép quản trị viên cấu hình các mẫu HTML. Các "đối tác" được liên kết khác sẽ có thể hiển thị các mẫu này bằng cách thêm mã IFrame vào trang web của họ. Trong các mẫu này, khách hàng có thể đăng ký và mua sản phẩm. Một API đã được triển khai bằng WCF cho phép các công ty bên ngoài cũng giao tiếp với hệ thống. Phần Quản trị viên cho phép Quản trị viên định cấu hình các chức năng khác nhau và xem báo cáo cho từng đối tác. Hệ thống gửi hóa đơn và thông báo qua email cho khách hàng.
KIẾN TRÚC HIỆN TẠI
Hiện tại nó đang sử dụng EF4 để đọc / ghi vào cơ sở dữ liệu. Các đối tượng EF được sử dụng trực tiếp trong các tệp aspx. Điều này đã tạo điều kiện cho sự phát triển nhanh chóng trong khi tôi đang viết trang web nhưng có lẽ không thể chấp nhận được việc giữ nguyên như vậy vì nó liên kết chặt chẽ db với UI. Logic nghiệp vụ cụ thể đã được thêm vào các lớp một phần của các đối tượng EF.
CÂU HỎI
Mục tiêu của tái cấu trúc sẽ là làm cho trang web có thể mở rộng, dễ bảo trì và bảo mật.
Những loại kiến trúc sẽ là tốt nhất cho điều này? Vui lòng mô tả những gì nên có trong mỗi lớp, liệu tôi có nên sử dụng mẫu DTO's / POCO / Active Record hay không, v.v.
Có cách nào mạnh mẽ để tự động tạo DTO's / BO để mọi cải tiến trong tương lai sẽ được thực hiện đơn giản mặc dù có thêm các lớp không?
Sẽ có lợi khi chuyển đổi dự án từ WebForms sang MVC?