将ASP.Net MVC转换为N层

时间:2011-07-27 19:22:32

标签: c# asp.net-mvc entity-framework-4 poco n-tier-architecture

我最近开始学习ASP.Net MVC及其各种功能MVC_3_MUSIC_STORE + CODE
它看起来非常有条理,易于理解。

我正在阅读有关企业应用程序以及它们如何在不同部分进行分层/分层的内容 (逻辑/物理)

我想知道(学习)如何将上述MVC_3_MUSIC_STORE分离(转换)为n层或3层应用程序(因为我们已经有了一个工作示例)以便干净关注点分离。 我之前没有太多经验。

需要进行哪些更改?

需要哪些DTO(s)或POCO? 上面的示例使用从控制器到视图的POCO实体。 假设首先使用EF代码,它会保持不变吗。

此外,我想知道如果将WCF Webservice作为数据访问层引入,将需要进行哪些更改。即,客户端将从DAL检索数据,而不是从WCF Webservice请求数据。客户端可以是Web应用程序或WinForms或Sliverlight应用程序 ( [DAL < - > WCF WS] < - > N个客户

了解各种方法会很有趣。

示例代码将是有用的和/或相同的示例。

编辑1 - 添加
我注意到的一件事是当我将模型类从Model文件夹移动到新项目“MYMODEL”时,我将不得不再次在新模型项目中添加对“System.ComponentModel.DataAnnotations”和“System.Web.Mvc”的引用?

如何避免这种情况?如何将这些验证移至业务层?

References will be lost if moved to new project

编辑2
寻找类似的东西 Advice For A Newbie About N-Tier Applications

1 个答案:

答案 0 :(得分:2)

通常,唯一需要进行的更改是您将提供存储库(DAL层)的实现,该实现将调用WCF Web服务以从而直接与数据库对话的某些EF DataContext获取域模型。对控制器和视图完全透明的更改。