博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三成架构 与 Mvc
阅读量:4958 次
发布时间:2019-06-12

本文共 1741 字,大约阅读时间需要 5 分钟。

三成架构 与 Mvc:

三成结构:
N层结构是一种软件抽象的层次结构,是对复杂软件的一种纵向切分,每一层次中完成同一类型的操作,以便将各种代码 以其完成的使命作为依据来分割,
以降低软件的复杂度,提高其可维护性。层次之间是向下依赖的,下层代码未确定其接口前,上层代码无法开发的,下层 代码接口(契约)的变化多端
将使上层代码 一起变化。三层结构是N层结构的一种。
MVC:
mvc模式是一种复合设计模式,一种在特定场合用于解决某种问题来得出的可以反复实践的解决方案。巧合的是他也有三个事物组成,View,Model,control.
三个事物之间并不存在明显的层次结构,没有明显的向下依赖关系,相反的,View,Model往往是比较独立的,Control是连接两者的桥梁,他们更像横向的切分 ,mvc每个块是可以独立测试的。mvc相比三层复杂的多,但是结构更清晰,耦合性低。
mvc内部是的Mode内部经常被设计为多层的。在我认为的一个良好的mvc模式构建的结构中,Controller小且稳定,可以作为一个核心框架来提供,有扩展点。View是一个多角度可选择的视图引擎。Model是业务提供者,决定了软件提供的功能,其内部 可以是一些普通类或者实现某些接口的类。对于 复杂的软件可能会分成很多层,如:业务逻辑层、业务提供层、系统提供层、数据提供层、数据访问层。
if Controler给Mode提供接口。会提高耦合度,但会提高入侵。为了完善,可以不用接口提供契约,可以配置信息(元数据信息)+反射来提供契约,那么这个类接口可以退化到只符合CLS就可以了。也就是普通的类。
mvc可以看成是三层中的UI层(控制器完成页面逻辑,通过实体来与界面层完成通话,Controller与BLL进行对话。)
普通的网站为了解决可移植,可维护,可扩展等问题,会把网站设计成三个独立的模块,
Model负责数据库部分,View负责网页的界面,而Controller负责界面与数据的交互及业务逻辑,这样设计的网站如果想设计或者重新开发某一个模块对其他的模块是没有影响的。
但是Asp.NET的页面后台代码与每个页面代码都是一一对应的,业务逻辑在某些情况下不可避免的被写到了与View关联的后台代码中。这样就不能保证
View与Controller的分离,也就很难实现网站的重写和升级。而在MVC中页面代码并不是与后台代码一一对应,而是分别被存放成Controller和View两个部分,彻底的解决了Vie和
Controller不能独立的问题。从而改善网站的重写和升级过 程。
 但是MVC也有其缺点,由于在页面代码中不再可以使用服务器控件,因此给某些Asp.NET服务器端控件的使用带来了麻烦,而且
MVC也给页面的设计工作带来了很多障碍。ASP.NET MVC 是微软在2009年4月份发布的一种新的网站开发架构,http://msdn.microsoft.com/en-us/library/dd394709.aspx
,它是把传统意义上的MVC开发思想融合到了ASP.NET的开发当中。
Entity Framework:
EntityFrameworkEF是微软一个开源的ORM(对象关系映射)框架,是微软主推的数据存
储技术,常用于构建数据存储层,使应用程序以对象模型的方式访问关系数据库的内容。
EF的架构和原理EF的核心内容是EDM(Entity Data Model)。可以理解为它是一个ADO.NET
的增强版,它的底层是ADO.NET provider,上层则是应用程序,它提供了更灵活,更简单方
便的数据存取方式。
EF的优点
它是一个开源框架,支持多种数据库(目前看来最稳定的是SQL Server,而Oracle的支持一直不太完美)
,将应用程序和数据库结构很好的分隔开,支持多种开发模式。
EF的缺点
它是在ADO.NET的基础上做的扩展,性能比ADO.NET有所损失,但是只要合理的利用EF
,避免一些劣质查询语句带来的损耗,还是能有效提高EF性能。

转载于:https://www.cnblogs.com/zhubenxi/articles/5151158.html

你可能感兴趣的文章
AutoMapper中的Map和DynamicMap——高手注重细节,思考和总结
查看>>
html5离线应用application cache
查看>>
sqlserver 获取实例上用户数据库的数据字典
查看>>
【伯乐在线】每个程序员都该知道的编码准则
查看>>
Priority_queue详解
查看>>
痛苦的版本对齐
查看>>
C++内存分配
查看>>
programming review (c++): (2)binary tree, BFS, DFS, recursive, non-recursive
查看>>
windows 查看端口占用情况
查看>>
php基础-字符串处理
查看>>
Java中的注解以及应用 @Deprecated @SupressWarning @Override
查看>>
oracle自治事务(PRAGMA AUTONOMOUS_TRANSACTION)
查看>>
6.5.4稀疏表示与基筛选
查看>>
Codeforces Round #310 (Div. 2)简洁题解
查看>>
.Net Sokcet 异步编程
查看>>
tp js结合时间戳
查看>>
复杂网络
查看>>
http协议讲解
查看>>
随笔第一页
查看>>
Python 如何用列表实现栈和队列?
查看>>