我想通过声明我是.NET Framework和ASP.NET的新手来开始我的问题。但是,我正在尝试学习ASP.NET 5 MVC6。我阅读了许多教程,以使自己快速入门。我从中学到的主要教程是“ 7天学习MVC ”
我认为我已经了解了整个MVC
体系结构,但是有些术语/层使我感到困惑,即模型,业务逻辑层,数据访问层和视图模型。
这是我对MVC架构的整体理解“如果错误,请纠正我”
id
,firstname
,lastname
和username
那么模型将被称为user
和“ ,和”是属性。id
firstname
lastname
username
UsersController
class有一个称为的方法,该方法Index()
要求user
模型提供一些数据,然后返回一个名为的视图ShowAllUsers
。但是,模型似乎在其下还有另外三层
另外,如果我想为我的控制器建立一个存储库,那么这里适合哪里呢?我确实知道这对于小型应用程序可能不是必需的,但是我只是想了解并学习正确的方法,然后我可以决定是否需要在我的应用程序中使用它。
我的问题是什么是业务逻辑层,什么是数据访问层?并且将在什么地方库适合在这里?
我将举例说明。
以下摘录摘自MSDN上的一些教程,您可能会发现有帮助:
处理数据时,一种选择是将特定于数据的逻辑直接嵌入到表示层中(在Web应用程序中,ASP.NET页构成表示层)。这可以采用在ASP.NET页的代码部分中编写ADO.NET代码的形式,也可以采用标记部分中的SqlDataSource控件的形式。无论哪种情况,这种方法都将数据访问逻辑与表示层紧密耦合。但是,推荐的方法是将数据访问逻辑与表示层分开。该单独的层称为数据访问层
在第一个教程中创建的数据访问层(DAL)将数据访问逻辑与表示逻辑完全分开。但是,尽管DAL干净地将数据访问详细信息与表示层分开,但它没有实施任何可能适用的业务规则。例如,对于我们的应用程序,当“停产”字段设置为1时,我们可能希望不允许修改“产品”表的CategoryID或SupplierID字段,或者我们可能希望强制执行工龄规则,以禁止员工由在他们之后被雇用的人。另一个常见的情况是授权-也许只有具有特定角色的用户才能删除产品或更改UnitPrice值。在本教程中,我们
从“代码项目”文章中,我发现对数据访问层目的的描述特别有用:
数据访问层为所有对数据库的调用提供了集中的位置,从而使将应用程序移植到其他数据库系统变得更加容易。
我还找到了这篇博文,它很好地说明了业务逻辑层如何与存储库集成:
最后,这是Microsoft对业务逻辑的定义:
业务逻辑定义为与应用程序数据的检索,处理,转换和管理有关的任何应用程序逻辑;业务规则和政策的应用;并确保数据的一致性和有效性。为了最大化重用机会,业务逻辑组件不应包含任何针对用例或用户故事的行为或应用程序逻辑。
我希望可以对这些层提供自己的专家描述,但是我也正在学习这个主题,所以我想与大家分享我发现的内容,希望我们都可以从中学习一些东西。有关与这些图层有关的示例问题,请参阅我上面链接的教程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句