2017-08-31 52 views
0

嗨,我学会了网页API 2最近,我工作的一个示例项目now.I是跟着我project.This分层架构的流Repository模式和Web API

控制器=>业务层=>数据层

现在我读到这听起来更好时下库模式的一些文章。

我看到像

控制器=>服务流程=>库

有两个流之间的任何显著区别? 作为一个初学者,我应该流哪些建筑风格? 有人可以帮助我理解这些模式吗?

+0

库仅仅是实现DataAccessLayer不同的方式。在您的数据访问层中,您可以使用由某些ORM(如Entity Framework或NHibernate)备份的存储库,而不是使用ADO.NET类。服务层可以被称为你的业务层,你有服务类而不是管理类。但他们都会有代表您的业务逻辑的代码,例如验证,并且它们与DAL或存储库集成以用于数据检索和存储。 –

+0

无论您选择哪种方法,一些基本原则适用于他们两个,如合同设计,控制反转,依赖注入等 –

+0

所以服务=业务层和库=数据层?我正在使用实体框架,所以如果我改变为第二流提到什么好处? –

回答

0

当您使用存储库的服务你应该让通用和使用有关的工作(UOW)的单位,所以你不要对每一个实体CRUD操作重复自己。然后添加一些对象关系映射器(ORM),如实体框架。您最好还使用域对象来存储您的逻辑,并使服务返回数据传输对象(DTO),因为最佳做法是让您的服务保持小而干净。然后你还需要包含一些映射工具/逻辑来将DTO映射到域对象。

你看到这一切会。突然间,你的复杂性和障碍物远远超出你的需求。因为客户关心的只有一件事是您的产品质量,而不是一些花哨的架构。

但由于项目增长是更重要要有正确的架构,自动测试等等,所以它是在大型项目有效。如果你想尝试和学习这是一个很好的机会,但如果你在生产中运行应用程序,我宁愿不做那么大的改变。

TLDR:它们都是有效的