ASP.NET MVC 架构 - 通用存储库模式
我是 ASP.NET MVC 新手,我正在尝试找出正确的编码方式。
我正在尝试使用用于数据访问的通用存储库来实现多层架构。
以下是我过去在 Webforms 解决方案中所做的事情(每个项目都是一个单独的项目):
- MyProject.Data(实体框架 .Edmx + 通用存储库)
- MyProject.Business.Services(调用存储库、应用业务规则等)
- MyProject.Business。 DomainModel(实体)
- MyProject.UI(ASP.NET Webforms 应用程序)
现在采用 MVC 模式:
我认为我应该在 MyProject.Business.DomainModel 中定义我的 ViewModel,并在 MyProject.Business.Services 中定义我的模型。数据层保持不变。总之:
- MyProject.Data(实体框架.Edmx +通用存储库)
- MyProject.Business.Services(模型实现)
- MyProject.Business.DomainModel(POCO实体+ ViewModels)
- MyProject.UI(ASP.NET MVC应用程序)
我将不胜感激对这种方法的评论。
I'm new to ASP.NET MVC and I'm trying to figure out the right way of coding in it.
I'm trying to implement a multi-layer architecture with a generic repository for data access.
Here's what I was used to do in Webforms solutions (each item is a separate project):
- MyProject.Data (Entity Framework .Edmx + Generic Repository)
- MyProject.Business.Services (Calls repository, applies business rules, etc)
- MyProject.Business.DomainModel (Entities)
- MyProject.UI (ASP.NET Webforms app)
Now in an MVC pattern:
I think I should define my ViewModels in MyProject.Business.DomainModel and my Models in MyProject.Business.Services. And Data layer remains unchanged. In summary:
- MyProject.Data (Entity Framework .Edmx + Generic Repository)
- MyProject.Business.Services (Models implementation)
- MyProject.Business.DomainModel (POCO Entities + ViewModels)
- MyProject.UI (ASP.NET MVC app)
I'll appreciate your comments about this approach.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查看洋葱架构。 http://jeffreypalermo.com/blog/the-onion-architecture-part- 1/
Codecampserver 是一个实现示例。 http://codecampserver.codeplex.com/
SharpArchitecture 是另一个值得关注的示例。 http://code.google.com/p/sharp-architecture/
他们不做的事情完全相同,但他们关注的问题不同。
Check out the onion architecture. http://jeffreypalermo.com/blog/the-onion-architecture-part-1/
Codecampserver is an implementation example. http://codecampserver.codeplex.com/
SharpArchitecture is another example to look at. http://code.google.com/p/sharp-architecture/
They dont do things exactly the same but they do separate concerns.