问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 00:59

我来回答

2个回答

热心网友 时间:2022-04-18 14:31

ASP.NET目前有三个成熟稳定的版本。
mvc1 模式:

view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,会通知view需要update
view更新后向用户显示

mvc2 模式:

由于mvc1中,model可以通知view,然后view就可以被更新,这在windows程序中很常见,像MFC的frame-document-view架构,如果document改变了,他会主动通知view进行update

但是在web中,作为model的java bean更新后,无法调用作为view的jsp(而且view通常很多,需要选一个),因此改为mvc2模式:

view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,controller会选一个view并forward到这个jsp,附带把model放到request参数
这个view获得model然后显示

ASP.NET MVC 3 新特性全解析

ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展。这篇文章提供包含在此次发布中的许多新特性的说明.
Razor 视图引擎
ASP.NET MVC3 带来了一种新的名为 Razor 的视图引擎,提供了下列优点:
Razor 现在提供了一些新的特征:
Razor 还包含新的 HTML Helper,例如:
支持多视图引擎
在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.
控制器的改进
全局的 Action 过滤器
有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器的 Action 方法进行处理,实际上,有时候你希望对所有的 Action 都进行类似的处理,MVC3 允许你将过滤器加入到 GlobalFilters 集合中来创建全局的过滤器.
新的 ViewBag 属性
MVC2 中的控制器支持 ViewData 属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。例如,对于 ViewData["Message"] = "text",你可以通过 ViewBag.Message = "text" 来完成。你不需要通过类来定义任何强类型的属性,因为这是动态属性,在内部,ViewBag 属性以名-值对的形式保存在 ViewData 字典中。注意,在许多预发布版本中,这个属性被称为 ViewModel。
新的 ActionResult 类型
下面的 ActionResult 类型在 MVC3 中是新增的或者被扩展的。
JavaScript 和 Ajax 改进
默认情况下,在 MVC3 中,Ajax 和验证使用不引人注目的 unobtrusive 的 JavaScript 方式。unobtrusive 不会在 HTML 中插入行内的 JavaScript ,这使得 HTML 更加精简和更少干扰,也使得更加容易被替换和定制 JavaScript 库,在 MVC3 中,验证助手默认使用 jQuery.Validate 插件完成,如果你希望使用 MVC2 的行为,你可以在 web.config 中通过配置来关闭 unobtrusive .
默认启用了客户端验证
在早先版本的 MVC 中,你需要在视图中显式调用 Html.EnableClientValidation 方法来启用客户端验证。在 MVC3 中,已经不再需要了,因为默认就会启用客户端验证。可以在 web.config 中关闭。
为了使得客户端验证工作,你仍然需要在网站中加入对 jQuery 和 jQuery.Validation 库的引用,你可以在自己的网站中提供,或者使用 Microsoft 或者 Google 的 CDN 服务器。
远程验证
ASP.NET 3 通过一个新的标签 RemoteAttribute 对 jQuery Validation 插件的远程验证提供支持。这允许客户端的验证库自动调用一个你定义在服务器上的自定义的方法来完成只能在服务器上完成的验证逻辑。
在下面的例子中,Remote 标签指定了通过一个定义在 UsersController 中名为 UserNameAvailable 的方法来验证用户名字段。

Razor 的语法简单且清晰,只需要最小化的输入

Razor 容易学习,语法类似于 C# 和 VB

Visual Studio 对于 Razor 提供了智能提示和语法着色

Razor 视图不需要允许程序或者启动 Web 服务器就可以进行测试

@model 用来指定传到视图的 Model 类型

@* * 注释语法

对于整个站点可以一次性设定默认项目,例如布局。

Html.Raw 方法提供了没有进行 HTML 编码的输出

支持在多个视图之间共享代码 ( _viewstart.cshtml 或者 _viewstart.vbhtml )

Chart. 生成图表

WebGrid, 生成数据表格,支持完整的分页和排序

Crypto,使用 Hash 算法来创建 Hash 和加盐的口令

WebImage, 生成图片

WebMail, 发送电子邮件

HttpNotFoundResult. 向客户端返回 404 HTTP 状态.

RedirectResult. 基于一个布尔型的参数,返回一个临时的重定向 (HTTP 302 status code) 或者持久的重定向 (HTTP 301 status code), 结合这个改进,, Controller 提供了三个方法来支持持久的重定向: RedirectPermanent, RedirectToRoutePermanent
, 和 RedirectToActionPermanen
t. 这些方法返回一个 Permanent 属性为真的 RedirectResult 对象实例。

HttpStatusCodeResult. 返回用户指定的 HTTP 状态码。

public class User

{

[Remote("UserNameAvailable", "Users")]

public string UserName { get; set; }

}
下面的代码定义在控制器中

public class UsersController

{

public bool UserNameAvailable(string username)

{

if(MyRepository.UserNameExists(username))

{

return "false";

}

return "true";

}

}
关于 Remote 属性的更多资源,参考 How to: Implement Remote Validation in ASP.NET MVC http://msdn.microsoft.com/en-us/library/gg508808(VS.98).aspx
JSON 绑定支持
ASP.NET MVC3 包含内置的 JSON 绑定支持,允许 Action 方法接收 JSON 编码的数据并且模型化为 Action 的参数。这个能力经常被用于客户端的模板和数据绑定中。客户端模板允许你通过客户端的模板来格式化和显示一个或者多个数据,MVC3 允许你简单的连接客户端模板和服务器端的 Action 方法,通过 JSON 来发送和接收数据,更多的信息参考:Scott Guthrie's MVC 3 Preview blog post.
ValidationAttribute 类
在 .NET Framework4 中被改进 的ValidationAttribute 类支持新的 IsValid 重载,提供关于当前验证上下文的更多信息,例如什么对象被验证了。这允许你基于 Model 的其他属性来验证当前值,例如,新的 CompareAttribute 就允许你比较 Model 的两个属性的值,在下面的例子中,ComparePassword 属性必须匹配 Password 字段来同通过验证。
Model 验证的改进
DataAnnotations 元数据标签
ASP.NET MVC3 支持 DataAnnotations 元数据标签,例如:DisplayAttribute。

public class User

{

[Required]

public string Password { get; set; }

[Required, Compare("Password")]

public string ComparePassword { get; set; }

}
验证接口
IValidatableObject 接口允许执行 Model 水平的验证,并且允许你提供整个模型状态的验证错误信息,或者基于 Model 的两个属性。当 Model 绑定的时候,MVC3 从 IValidatableObject 接收错误信息,在视图中使用内建的 HTML 助手时,将会自动标识或者高亮受影响的字段。
IClientValidatable 接口允许 ASP.NET MVC 在运行时发现支持的客户端验证器,这个接口被用来支持集成不同的验证框架。
更加关于验证接口的内容,参考 Scott Guthrie's MVC 3 Preview blog post 中 Model Validation Improvements 一节。
依赖注入Dependency Injection 的改进
ASP.NET MVC3 提供了更好的 DI 和 IoC 支持,在下面的地方支持 DI:
MVC3 支持 Common Service Locator 库和任何支持这个库的 IServiceLocator 接口的 DI 容器。也支持新的容易集成到 DI 框架的 IDependencyResolver 接口。
更多关于 DI 的信息,参考:
其他新特性
NuGet 集成
ASP.NET MVC3 自动安装和启用 NuGet ,NUGet 是免费开源的一个包管理器,使得在你的项目中容易发现,安装,和使用 .NET 库。它可以和所有的 Visual Studio 项目类型一起工作,包括 ASP.NET WebForm 和 MVC。
NuGet 允许开发者维护开源项目,例如,像 Moq 项目,NHibernate 等等,可以注册它们到一个在线的网站中。
更多信息参考:NuGet documentation on the CodePlex site.
部分页的输出缓存
ASP.NET MVC 从版本1 开始支持整页缓存,MVC3 还提供了部分页缓存。这可以允许你容易地缓存输出的一个区域或者片断,更多地内容参考 Scott Guthrie's blog post on the MVC 3 release candidate 中 Partial Page Output Caching 段落,还有 MVC 3 Release Notes 中 Child Action Output Caching 段落。
在请求验证中的粒度控制
ASP.NET MVC 内建了请求验证机制来自动帮助处理类似跨站攻击和 HTML 注入等等。实际上,有时你希望能够显式关闭请求的验证,例如你希望允许用户提交 HTML 内容,例如在内容管理系统中,现在你可以通过增加 AllowHtml 标签到 Model 或者视图的 Model 来支持在绑定的时候基于一个属性关闭请求验证。更多地资料参考:
可扩展的新建项目对话框
在 MVC3 中,你可以增加项目模板,视图引擎,单元测试项目框架到新建项目对话框中。
脚手架的改进
MVC3 中的脚手架对于主键提供了更好的支持,例如,脚手架的模板不会将主键加入的编辑表单中了。
默认情况下,创建和编辑的脚手架现在使用 Html.EditorFor 助手来替代 Html.TextBoxFor 助手,这个改进在增加视图对话框生成一个视图的时候,支持模型中的元数据标签。
对于 Html.LabelFor 和 Html.LabelForModel的新重载
对于 LabelFor 和 LabelForModel 增加了新的方法重载,允许指定或者重写 Label 文本。
无 Session 的控制器支持
MVC3 中可以指定控制器是否使用 Session 状态,进而,Session 是否是读写还是只读。
新的 AdditionalMetadataAttribute类
可以通过 AdditionalMetadataAttribute 标签对 Model 的一个属性访问 ModelMetadata.AdditionalValues 字典,例如,如果模型的某个属性仅仅支持管理员显示,你可以如下设置:

Scott Guthrie's blog post on the MVC 3 release candidate 中 Unobtrusive JavaScript and Validation 一节.

MVC 3 Release Notes

Brad Wilson's series of blog posts on Service Location

MVC 3 Release Notes

控制器 (registering and injecting controller factories, injecting controllers).

视图 (registering and injecting view engines, injecting dependencies into view pages).

Action 过滤器 (locating and injecting filters).

Model 绑定器 (registering and injecting).

Model 验证提供器 (registering and injecting).

Model 元数据提供器 (registering and injecting).

Value 提供器 (registering and injecting).

热心网友 时间:2022-04-18 15:49

Asp.net两个版本,即Asp.net1.0与Asp.net2.0; 首先重要的区别是质量提升了,如2.0版本比1.0多增加了服务器控件三十多个。还有就是这两个版本只是目前,据说即将推出一个与Ajax完全结合版。
ASP.NET的版本现在有哪几个,之间有什么区别?

Asp.net两个版本,即Asp.net1.0与Asp.net2.0; 首先重要的区别是质量提升了,如2.0版本比1.0多增加了服务器控件三十多个。还有就是这两个版本只是目前,据说即将推出一个与Ajax完全结合版。 本回答被提问者采纳 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题2013-09-16 目前asp.net的最新版本...

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

区别:asp.net mvc5只能运行在Windows,一般通过IIS发布。asp.net core开源,可跨平台,能够发布到Linux等系统上。asp.net core做了很多的整合工作,目前来说完成了最基本的一部分类库的迁移。前景:asp.net core肯定是以后的一种潮流,随着docker等技术的普及,跨平台的重要性凸显,必须要使用asp.net ...

Asp.net mvc和asp.net有什么区别?

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

asp.net是什么?

ASP.NET就是属于WebForm,也就是平时说的B/S模式的开发。而WinForm就是属于C/S模式。.NET有很多种语言组成,比如C#、 VB.NET、J#、Jsript、Managed C++,但是都是运行在.NET FrameWork Run Time底下的。Asp.NET可以用C#或VB.NET来开发。编译后形成CLR,通过服务器的IIS+.NET FrameWork再次编译来运...

asp和asp.net之间的区别

请问asp和asp.net的有什么区别呢?我在使用的时候发现asp不需要安装,而asp.net需要安装,早知道选asp的了程序了,但是asp的程序又不带商城!ASP是ActiveServerPage的缩写,文件扩展名是asp,可使用VBSCRIPT、JAVASCRIPT、HTML语言,并可以嵌套在HTML标记里面的。要开发ASP,需要安装5.0及以上版本的IIS(...

ASP、ASP.NET、PHP、JSP四种语言的特点及区别是什么?

目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其...

asp跟asp.net的区别是什么?

ASP.net提供的这三个特性是ASP.net的精华所在,当然后面的许多特性也是ASP.net区别于已往ASP或者有较大革新的地方。总之,Microsoft®开发的ASP.net是.net战略的强大武器,也是Microsoft®向网络分布式运算进军的最有力的证明。如果读者想进一步了解ASP.net可以购买A Preview of Active Server Pages+...

谁能告诉我ASP ASP.NET之类语言竟有哪些,它们之间有什么区别~

ASP与ASP.NET的区别 1.开发语言不同 ASP仅局限于使用脚本语言来开发,用户给WEB页中添加ASP代码的方法与客户端脚本中添加代码的方法相同,导致代码杂乱。ASP.NET允许用户选择并使用功能完善的编程语言,也允许使用潜加巨大的.NET Framework。2.运行机制不同 ASP是解释运行的编程框架,所以执行效率加较低...

asp和asp.net 有什么区别,对做网站有什么帮助,谢谢大家,我是小白

asp点net是在asp之后出现的技术,和一般的asp和php脚本语言开发模式有天壤之别,它采用的是服务器控制的开发模式,先后发展了1、2、3、3.5、4、4.5等版本。为了和JAVA对抗又在其基础上推出了MVC开发模式,全称是asp点net MVC,勉强算是代替asp点net的。mvc也开展了1、2、3、4、5等版本,统称点...

asp.net是哪一年出来的?

化,直到现在的ASP.NET。1996年ASP1.0诞生,它的诞生给Web开发界带来了福音。早期的Web程序开发是十分 繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对 于普通的程序员来说有点太难了。而ASP却允许使用VBScript这种的简单脚本语 言,编写嵌入在HTML网页中的代码。在进行程序...

苹果有几个版本 微信7.0.9版本官方版 ASP.NET ASPNET程序开发招聘 ASP和JSP ADO.NET .NET 版本 安卓版本
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
双组份混胶机 常州市盛信建设监理有限公司怎么样? 辞职信最后祝福公司的句子 ...designer列表选择功能为什么不能显示输入的字符串 word遇到错误急急急!!! 盐水能泡脚吗 word错误报告怎么处理 ...只能看见血丝和心跳,有什么办法让它能继续活下去? ...十大人物之一的洪战辉,是什么支撑着他身活下去的? 向佐活动中被掌掴 向佐哈哈大笑化解尴尬场面 linux怎么看.net版本 如何查看本机的.net framework版本 如何判断服务器.net的版本 .net最新版本是多少 开发人员应该用.net什么版本最好? vivo手机的照相机,怎么调出网格线? 老赖曝光还是老赖暴光? 有什么平台或者软件可以进行法律咨询的吗?还有举报老赖的 怎么举报老赖? .如何让老赖的信息发到网上,让大家都看到 欠账不还的人可以在抖音上曝光他吗? 香甜泡打粉和干酵母可以一起使用吗 微信朋友圈里那个老赖查询可靠吗,是不是官方的平台?注册信息时有没有被泄漏个人隐私?曝光老赖合法吗? 是不是所有老赖都会曝光照片? 酵母和泡打粉有何区别?两个可以同时使用吗? 可以在抖音上曝光老赖吗 做油条泡打粉和酵母可以同时使用吗? 怎样曝光平台 怎么把老赖身份证号发怎么发布布到网上? 泡打粉和酵母粉的作用是一样的吗? 怎样查看.net framework的版本? .net framework 最新版本是多少? 选择什么版本的.NET框架框架比较合适 现在写.net程序,.net framework版本选什么好? · .NET Framework 每个版本的特点 怎么设置 默认的 .net版本 win 10的内置.net版本是多少?向后兼容的情况如何 怎么设置手机QQ主题皮肤? microsoft net framework 怎么看版本 手机QQ怎么换肤 苹果11怎么设置自动旋转 怎么做标准的卷腹? 华为手机如何连接车载导航? 卷腹机可以练腹肌吗 手机导航如何连接车载导航显示屏上? 怎么卷腹才是正确的呢? 健腹轮的标准使用方法 苹果11的旋转怎么设置 手机蓝牙网络共享如何跟汽车车导航连上? 腹部不会发力怎么办