我即将使用带有Telerik Kendo UI的MVC5创建一个新的ASP.NET Web应用程序,我希望它能够正确地构建。我在GitHub上发现了这个Telerik sample project,但结构让我感到困惑
共有3层:
客户层
核心层
数据层
我不明白为什么在数据层有一个存储库文件夹,然后在Core层有一个包含所有相关接口的另一个存储库文件夹。不应该在数据层中存储任何相关的存储库吗?任何业务逻辑都与Core层相关?
我也在我的数据层中使用EF6 DBFirst和.edmx文件,所以我仍然希望我的存储库文件夹与示例项目的结构方式相同吗?
我的总体目标是做类似于他们在这里做的事情,但使用EF6 Db First。我仍然想要类似的图层,我想最终使用ViewModels和Dependency Injection将数据传递给我的视图。
我已经尝试了几周,想出了一个很好的MVC5 EF6 DBFirst Ninject(用于IoC)项目结构,包括数据层,业务逻辑层和UI层。那里有没有好的例子,或者有人可以解释一下应该怎么做?
答案 0 :(得分:1)
我所做的就是为N层架构创建三个项目,另外一个叫做Common:
Web MVC项目
视图作为普通MVC项目工作 每个Controller都有一个构造函数,其中使用Ninject传入了Business Provider Parameters。
BusinessProviders项目
此项目包含多个处理我所有业务规则的类,例如如果我有一个网站,我有工作和用户,我将有两个提供商UsersProvider,JobsProvider等。
数据层(DAL)
此项目包含edmx文件本身。以及与实体互动的类。
<强>公用强>
这包含整个解决方案中使用的所有其他类,枚举,助手
所以我的数据流通过应用程序基本上是:
查看 - &gt;控制器 - &gt; BusinessProvider - &gt;数据访问类 - &gt;实体(数据库)
查看&lt; - Controller&lt; - BusinessProvider&lt; - 数据访问类&lt; - 实体(数据库)
我使用这种方法的原因是我发现编写代码并重用它会更加干净。它也有助于IoC(在我的案例中为Ninject)。
我在这里写了一篇简短的博客文章(我将在接下来的几天内写一篇关于Ninject整合的博客文章):http://myseesharp.blogspot.co.uk/
编辑: Ninject与N-Tier的链接:
http://myseesharp.blogspot.co.uk/2015/01/ninject-with-n-tier-mvc-application.html
http://myseesharp.blogspot.co.uk/2015/01/ninject-with-n-tier-mvc-application_1.html