服务层和ASP.NET MVC的目的2
为了了解MVC 2并试图让我的公司将其作为未来发展的可行平台,最近我一直在做很多阅读。在过去几年中,ASP.NET完全与ASP.NET合作过,我有一些追赶。
目前,我了解存储库模式,模型,控制器,数据注释等。但是有一件事让我完全不了解开始工作的参考应用程序。 第一个是服务层模式。我在Stack Overflow上看过很多博客文章和问题,但是我仍然不能完全理解这种模式的目的。我在MVCentral上观看了高尔夫跟踪应用程序的整个视频系列,并且还查看了他发布的演示代码,并且看起来像我的服务层只是一个完全没有任何工作的存储库模式的另一个包装。 我也读了这篇文章:http://www.asp.net/Learn/mvc/tutorial-38-cs.aspx,似乎有些回答我的问题,但是,如果你使用数据注释来执行验证,这似乎是不必要的。 我已经寻找示威,帖子等等,但是我似乎找不到任何简单解释模式的东西,并给出了令人信服的证据来使用它。 有人可以给我一个二年级(好的,也许是5年级)的理由来使用这种模式,如果没有,我会失去什么,如果我做的话我会得到什么? 解决方法
在MVC模式中,您有责任在3个玩家之间分离:模型,视图和控制器。
该模型负责做业务,View提供了业务的结果(也为用户提供了业务的输入),而控制器就像模型和视图之间的粘合一样,将每个对象的内部工作另一个。 该模型通常由数据库备份,因此您可以访问一些DAO。您的业??务有一些…好的…在数据库中进行业务和存储或检索数据。 但谁协调DAO?控制器?没有!模型应该。 进入服务层。服务层将为控制器提供高服务,并在幕后管理其他(较低级别)的玩家(DAO,其他服务等)。它包含您的应用程序的业务逻辑。 如果不使用它会怎么样? 你必须将业务逻辑放在某个地方,受害者通常是控制器。 如果控制器是以Web为中心的,则必须接收其输入并提供响应作为HTTP请求,响应。但是,如果我想从与RPC或其他一些事情进行通信的Windows应用程序中调用我的应用程序(并访问其提供的业务)呢?然后怎样呢? 那么你将不得不重写控制器,使逻辑客户端不可知。但是服务层已经有了。 Yyou不需要重写东西。 服务层提供与DTOS的通信,这些DTO与特定的控制器实现无关。如果控制器(无论什么类型的控制器)提供适当的数据(没有源),您的服务层将为其提供服务,并将呼叫者隐藏所涉及的业务逻辑的所有责任。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC可以生成具有小写名称和id属性的
- asp.net-mvc-3 – MemoryCache对象和负载均衡
- ASP.NET MVC – 使用Reflection查找控制器是否存在
- asp.net-core – MVC 6 OpenIdConnect
- asp.net-mvc – 为什么我们使用ViewModels?
- 如何使用ASP.NET Core创建多部分HTTP响应
- asp.net – 如何保护存储在web.config中的密码?
- asp.net – K运行时使用的.Net完整框架和.Net Core Framewo
- 如何在ASP.NET中创建一个简单的是/否弹出窗口,将结果返回给
- asp.net-core – 哪些.NET框架版本支持.NET Framework(CLR)
- asp.net – Internet Explorer 9中的URL查询字符
- asp.net-mvc – ASP.NET MVC Javascript ActionR
- Aspect-Oriented Programming : Aspect-Oriented
- asp.net – 为什么javascript onchange事件不触发
- ASP 服务器超时 Timeout 处理
- asp.net – Google协议缓冲区或.net / javascrip
- asp.net – 错误消息401.2:未授权:由于服务器配
- asp.net – 在成功登录时添加声明并在应用程序的
- asp.net-mvc-3 – 在Asp.Net MVC中,我对身份验证
- asp.net-mvc-4 – 使用knockout.js我需要从服务器