Asp.net mvc和asp.net有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.net mvc和asp.net有啥区别?相关的知识,希望对你有一定的参考价值。

区别:

一、ASP.NET是一个网站开发的技术,是.NET框架中的一个应用模型。(历史挺长远的)使用ASP.NET开发Web应用程序并维持其运行,比其他开发语言更加简单。与Java、PHP和Perl等高级技术相比,ASP.NET具有方便性、灵活性、生产效率高、安全性高及面向对象等优点,是目前主流的网络编程技术之一。 

MVC与ASP.NET完全没有关系,是一个全新的Web开发,事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC。可将原来的ASP.NET称为 ASP.NET Webforms,新的MVC 称为ASP.NET MVC。

MVC是软件架构的一种模式,可以说就相当于常说的设计模式。其中主要包括三个模块,顾名思义。就如MVC名字所显示的那样:模型(Model),视图(View),控制器(Controller)。mvc中的模型(Model)和视图(View )是完全区别于三层架构中的模型(Model)和视图(View)的。

二、Asp.net微软提供web开发框架或者技术。分Web Form和ASP.NET MVC。下面简单说明各自优缺点。

Web Form

优点:

WebForm优点

1、支持丰富的服务器控件。

2、支持视图状态,每个控件状态以“隐藏域”的形式存在当前表单页面来达到“有状态”,这就是ViewState

3、基于事件驱动编程,如:click事件等,aspx页面与cs文件分离,即显示逻辑与处理逻辑分离,便于分工,美工、编程。

4、学习成本低。

缺点:

1、站在项目架构的角度,web form不是很理想架构模式,尽管可以使用经典的三层架构或者mvp,但不是最优秀的。

2、性能viewstate成功解决了asp问题,但同样引入新的问题,viewstate页面存储势必增加页面大小、降低程序性能。

3、代码可重用性不好;缺少对并行开发支持,因为aspx页面与cs紧密耦合太高;Seo不友好,因为url指定具体aspx页面;不利于单元测试,因为使用大量事件处理函数。

ASP.NET MVC

Asp.net Mvc架构模式是一种低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP.NET MVC不支持ViewState和服务器控件。

优点:

1、有对数据直接访问的权利,如:对数据库的访问;

2、模型(Model)“不依赖”视图(View)和控制器(Controller),即模型(Model)不关心它会被如何显示或者如何被操作;

3、模型(Model)中数据的变化一般会通过一种刷新机制被“公布”;

4、为了实现3中的“机制”用于监视此模型的视图必须事先在此模型上注册。从而,视图可以了解在数据模型上发生的改变。

缺点:

没有viewstate和基于事件的编程,上手慢,学习成本高。

三、使用场景:

1、快速开发------>web form

2、单元测试、性能-------->mvc

3、大量使用js、jquery------>mvc

4.、代码重用性------->mvc

四、WebForm的开发方式

服务器端控件

一般处理程序+Html静态页+Ajax

一般处理程序+Html模板

五、模型不同

WebForm模型

MVC请求模型

DomainModel–领域模型:不仅仅是一个实体类,而是整个业务才处理流程的一个规则。

六、ViewState处理

ASP.Net MVC的开发方式。

2009年第一个开源项目版本发布。

更加简洁,更加接近原始的“请求-处理-响应”。

更加开发、更多的新的特点、社区活跃。

不会取代WebForm。

底层跟WebForm都是一样的。管道上不同的处理而已。

MVC只是表示层的一种新的方式。

MVC是微软2009对外公布的第一个开源的表示层框架,这是微软的第一个开源项目。

MVC目的不是取代WebFrom开发,只是web开发的另外一种选择。

参考技术A

ASP.NET MVC是一种开发模式,ASP.NET MVC框架是MVC的实现,M模型,V视图,C控制器,即视图与业务逻辑分离。ASP.NET MVC适合开发大型的项目。asp.net mvc只能运行在Windows,一般通过IIS发布;

asp.net 开源,可跨平台,能够发布到Linux等系统上。asp.net core做了很多的整合工作,目前来说完成了最基本的一部分类库的迁移。

从前景上来说,asp.net 肯定是以后的一种潮流,随着docker等技术的普及,跨平台的重要性凸显,必须要使用asp.net 编写的接口才能发布到linux中,也就是asp.net 编写的接口可以做成docker的镜像发布,而asp.net mvc不能。所以最终肯定是会慢慢都转移到asp.net上来。

ASP.NET MVC 是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRail而来,日前最新版本是ASP.NET MVC 5.1。

参考技术B mvc是model+view+控制器(英文全拼忘了~)

mvc的运行机制和asp.net是不同的。

mvc是通过控制器进行操作,通过model带数据到view(显示)

asp.net是一个页面管一个页面(通过后台)

开发到某种程度上,mvc的速度是要快于asp.net的,不过现在有cms,asp.net已经进入了急速开发时代,并且因为mvc还算是新技术,不太成熟,所以很多程序猿还是使用asp.net多一点(主要是没那么多时间专门研究mvc,而且研究过了不一定用的好)

语法上两者有差别(因为我两个都会用)mvc如果你不是系统学习的话,很容易被搞乱,mvc使用模版的规则和asp.net完全不同,但是更便捷(简单说mvc模版可以应用在标签而不仅仅限于页面,比如你一个input通过js变成日期框,在mvc中可以定义一个专属于input的模版并且可以作为属性直接赋予,赋值之后就会自动使用这个模版)。

mvc在数据验证上提供了一整套解决方案,并且开放更多基类以便实现更复杂的操作,总之灵活度上有提升,但因为它还比较新,流传还是不如asp.net这么广泛而已。
就先这么多把,记得给分哦
参考技术C .net可以看作(其实不只是)一个大的执行环境,用于执行il,当然还有更多功能。
ASP.NET作为.NET看作一个小的执行环境,用来执行web程序

详细的可以参考:
.net精髓
.net框架程序设计

这两本书上阐述得比较透彻
参考技术D Asp.net Mvc架构模式是一种 低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP.NET MVC不支持ViewState和服务器控件。
优点:
1.架构降低了程序间的耦合性,M V C,分层,目标明确
2.性能 不支持viewstate,完成html,已于结合jquery使用,提供程序性能
3.支持并行开发,可扩展性好,继承asp.net 特性:表单验证、缓存、会话等。
缺点:
没有viewstate和基于事件的编程,上手慢,学习成本高。
asp.net Web Form
优点:
1.支持丰富的服务器控件。如:GridView和ListView可以绑定数据,从而减少了大量的代码编写
2.支持视图状态,每个控件状态以“隐藏域”的形式存在当前表单页面来达到“有状态”,这就是ViewState
3.基于事件驱动编程, 如:click事件等,aspx页面与cs文件分离,即显示逻辑与处理逻辑分离,便于分工,美工 、编程。不像asp代码混乱
4.学习成本低
缺点:
1.站在项目架构的角度,web form 不是很理想架构模式,尽管可以使用经典的三层架构或者mvp,,但不是最优秀的。
2.性能 viewstate成功解决了asp问题,但同样引入新的问题,viewstate页面存储势必增加页面大小、降低程序性能
3.代码可重用性不好;缺少对并行开发支持,因为aspx页面与cs紧密耦合太高; Seo不友好,因为 url指定具体aspx页面;不利于单元测试,因为使用大量事件处理函数

以上是关于Asp.net mvc和asp.net有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 5、ASP.NET Core MVC 5 有啥区别?

请问:ASP.net mvc5和asp.net.core有啥区别呢?在今后的发展中这个前景怎么样?

ASP.NET的版本现在有哪几个,之间有啥区别?

在asp.net mvc中实现页面跳转的方式都有哪些?有啥区别?

asp.net mvc用sql server数据库和用sql server compact数据库有啥区别

.NET MVC 和 三层(DLL+DAL+Model)有啥区别?