我已经为客户端编写了一个ASP.NET WebForms门户。该项目是经过改进的,而不是从一开始就进行了适当的计划和组织。因此,所有代码都在同一项目中混在一起,没有任何层次。客户端现在对功能很满意,因此我想重构代码,以便对发布项目充满信心。由于似乎有许多不同的方法来设计体系结构,所以我想对最好的方法提出一些意见。
功能性
门户允许管理员配置HTML模板。其他关联的“合作伙伴”将可以通过向其网站添加IFrame代码来显示这些模板。在这些模板中,客户可以注册和购买产品。已经使用WCF实现了API,该API允许外部公司也可以与系统连接。管理员部分允许管理员配置各种功能并查看每个合作伙伴的报告。系统将发票和电子邮件通知发送给客户。
当前架构
它当前正在使用EF4读取/写入数据库。EF对象直接在aspx文件中使用。在我编写站点时,这促进了快速开发,但是像这样将它与UI紧密耦合在一起可能使它保持不可接受。特定的业务逻辑已添加到EF对象的部分类中。
问题
重构的目标是使站点可扩展,易于维护和安全。
哪种架构最适合此?请说明每层中应该包含的内容,是否应使用DTO的/ POCO / Active Record模式等。
是否有一种健壮的方法来自动生成DTO / BO,以便尽管有额外的层,也可以轻松实现将来的任何增强功能?
将项目从WebForms转换为MVC是否有益?