클라이언트 용 ASP.NET WebForms 포털을 작성했습니다. 이 프로젝트는 처음부터 올바르게 계획되고 구조화되는 것이 아니라 진화되었습니다. 결과적으로 모든 코드는 동일한 프로젝트 내에서 계층없이 뭉쳐집니다. 클라이언트는 이제 기능에 만족하기 때문에 프로젝트 릴리스에 대해 확신 할 수 있도록 코드를 리팩터링하려고합니다. 아키텍처를 디자인하는 방법은 여러 가지가 있으므로 최선의 접근 방식에 대한 의견을 갖고 싶습니다.
기능성
관리자는 포털을 통해 HTML 템플릿을 구성 할 수 있습니다. 다른 관련 "파트너"는 사이트에 IFrame 코드를 추가하여 이러한 템플릿을 표시 할 수 있습니다. 이러한 템플릿 내에서 고객은 제품을 등록하고 구입할 수 있습니다. 외부 회사가 시스템과 인터페이스 할 수 있도록 WCF를 사용하여 API가 구현되었습니다. 관리자 섹션에서는 관리자가 다양한 기능을 구성하고 각 파트너에 대한 보고서를 볼 수 있습니다. 시스템은 고객에게 송장 및 이메일 알림을 보냅니다.
현재 건축
현재 데이터베이스를 읽고 쓰는 데 EF4를 사용하고 있습니다. EF 개체는 aspx 파일 내에서 직접 사용됩니다. 이것은 사이트를 작성하는 동안 빠른 개발을 촉진했지만 DB와 UI를 밀접하게 연결하므로 사이트를 유지하는 것은 용납되지 않을 것입니다. EF 객체의 일부 클래스에 특정 비즈니스 로직이 추가되었습니다.
질문
리팩토링의 목표는 사이트를 확장 가능하고 쉽게 유지 관리하고 안전하게 만드는 것입니다.
어떤 아키텍처가 가장 좋을까요? DTO / POCO / Active Record 패턴 등을 사용해야하는지 각 계층에 무엇이 있어야하는지 설명하십시오.
추가 계층에도 불구하고 향후 개선 사항을 쉽게 구현할 수 있도록 DTO / BO를 자동 생성하는 강력한 방법이 있습니까?
프로젝트를 WebForms에서 MVC로 변환하는 것이 유리합니까?