2010年發行ASP.NET MVC 2.0版,2011年發行ASP.NET MVC 3.0版,2012年發行ASP.NET MVC 4.0版html
MVC3 须要.net framework 4.0 版本.mysql
支持多视图引擎
在 ASP.NET MVC3 中,增长视图的对话框中容许你选择你但愿的视图引擎,在新建项目对话框中,你能够指定项目默认的视图引擎,能够选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.web控制器的改进
全局的 Action 过滤器
有的时候你但愿可以在在一个 Action 方法执行以前或者执行以后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,容许对特定控制器的 Action 方法进行处理,实际上,有时候你但愿对全部的 Action 都进行相似的处理,MVC3 容许你将过滤器加入到 GlobalFilters 集合中来建立全局的过滤器.算法新的 ViewBag 属性
MVC2 中的控制器支持 ViewData 属性,容许经过后绑定的字典将数据传送给视图模板,在 MVC3 中,你能够经过 ViewBag 来更加简单的完成。例如,对于 ViewData["Message"] = "text",你能够经过 ViewBag.Message = "text" 来完成。你不须要经过类来定义任何强类型的属性,由于这是动态属性,在内部,ViewBag 属性以名-值对的形式保存在 ViewData 字典中。注意,在许多预发布版本中,这个属性被称为 ViewModel。sql新的 ActionResult 类型
下面的 ActionResult 类型在 MVC3 中是新增的或者被扩展的。数据库JavaScript 和 Ajax 改进
默认状况下,在 MVC3 中,Ajax 和验证使用不引人注目的 unobtrusive 的 JavaScript 方式。unobtrusive 不会在 HTML 中插入行内的 JavaScript ,这使得 HTML 更加精简和更少干扰,也使得更加容易被替换和定制 JavaScript 库,在 MVC3 中,验证助手默认使用 jQuery.Validate 插件完成,若是你但愿使用 MVC2 的行为,你能够在 web.config 中经过配置来关闭 unobtrusive .express默认启用了客户端验证
在早先版本的 MVC 中,你须要在视图中显式调用 Html.EnableClientValidation 方法来启用客户端验证。在 MVC3 中,已经再也不须要了,由于默认就会启用客户端验证。能够在 web.config 中关闭。编程为了使得客户端验证工做,你仍然须要在网站中加入对 jQuery 和 jQuery.Validation 库的引用,你能够在本身的网站中提供,或者使用 Microsoft 或者 Google 的 CDN 服务器。windows
远程验证
ASP.NET 3 经过一个新的标签 RemoteAttribute 对 jQuery Validation 插件的远程验证提供支持。这容许客户端的验证库自动调用一个你定义在服务器上的自定义的方法来完成只能在服务器上完成的验证逻辑。api在下面的例子中,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, 和 RedirectToActionPermanent. 这些方法返回一个 Permanent 属性为真的 RedirectResult 对象实例。
- HttpStatusCodeResult. 返回用户指定的 HTTP 状态码。
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; }
- }
MVC4 在vs2012以上版本中建立的时候,默认是 .net framework4.5 ,可是咱们是能够修改成 .net 4.0的 (也就是说在2003的服务器上,仍是能够上 mvc4的,安装过程请参考 windows2003 IIS6 部署MVC3和MVC4程序 Asp.net MVC4.0(从net4.5降级到4.0) 部署到window server 2003上的解决方案
可是Net Framework4.5是不支持安装在window server 2003上)
asp.net 4.5 MVC升级到 MVC4, 多了 webapi
vs2013里面 asp.net 4.5.1 MVC升级到了MVC5 ,webapi升级到了 webapi2.0
MVC5 (须要.net 4.5.1 )多了对 webapi 2.0的支持 (能够看看这个 http://www.cnblogs.com/artech/p/web-api-sample.html)
ASP.NET MVC 5带来全新的开发者体验,One ASP.NET的整合新范本系统,经由单一入口便可完成全部Web范本的选择,各类Web范本之间也能够灵活组合出新范本,例如,Web Forms + Web API等。MVC 5提供更有弹性的会员认证系统,透过Code First的方式开发人员不在受限於固定的Schema,可自由定义所需的资料Schema。採用Bootstrap设计的全新Web范本介面,Bootstrap提供高度弹性,让开发人员也能快速拥有架构页面介面及开发出支援响应式网页 (Responsive Web)的能力。
随著Visual Studio 2013的发行,开发工具又向前迈出大一步,它正在统一一致的体验,如今,你可以实现相同功能集,不管你如何开始建置ASP.NET应用程式。例如,开发人员能够在Web Forms专案中透过支架(Scaffold)加入Web API,开发人员能够自由混合选择你所想要的技术。One ASP.NET是為了让开发人员在所爱的ASP.NET裡更容易作想作的事,One ASP.NET应该给开发人员信心,不管他们选择什麼,他们仍然是在一个可信任基础框架-ASP.NET-下进行开发。
MVC专案范本无缝地整合成一个全新的One ASP.NET体验。透过One ASP.NET的专案创建精灵,开发人员能够客製化MVC专案和组态认证。MVC专案如今是标準Web应用程式的一部分且再也不使用它们本身的专案GUID。
vs2013里面 有 EF6
EF6 在 code first的模式下,codefrist不支持的数据库更多,好比access,sqlite,sql compact 3.5,mysql,oracle
关于LocalDB的介绍
相似于sqlite (可是sqlite是不支持存储过程的,而LocalDB则支持存储过程)
导读:LocalDB是SQL Server 2012带来的新特性,它是一个专门为开发人员量身定制的轻量级数据库。本文将为您讲解LocalDB的开发背景,展现其核心特性,并看看它与微软的其它轻量级数据库到底有何不一样。
什么是LocalDB
随着SQL Server 2012的发布,LocalDB跃入咱们的视线,它能够被看作是SQL Server Express的轻量级版本。
LocalDB专门为开发人员建立,它很是易于安装,几乎无需管理,兼容T-SQL语言,编程接口与SQL Server Express别无二致。
有了LocalDB,开发人员就不须要在本身的笔记本上安装和维护一个庞大的SQL Server实例了。另外,LocalDB也适用于小型应用环境,开发人员能够将其用于小型生产环境或者嵌入式环境。
为开发人员量身定制
咱们在关注LocalDB的技术细节以前,首先来了解一下构建LocalDB的背景。
一直以来,SQL Server Express知足了咱们两方面的需求。它既是免费版的SQL Server,又具备足够强大的功能,与其它版本相兼容。固然,它的能力也存在一些限制,即它的每一个数据库的存储容量不能超过10G。
SQL Server做为一个成熟的数据库产品,其Express版本依然具备至关的复杂度。但做为开发人员,咱们更但愿下降管理复杂度,专一于开发。
LocalDB的开发目标由此造成,它是轻量级的SQL Server Express,为开发人员量身定制。
核心技术特性
说了这么多,如今让咱们来看看LocalDB的核心技术特性:
轻量级数据库对比(LocalDB vs. SQL Express vs. Compact)
LocalDB并不能彻底替代SQL Server Express,它只是对开发人员提供了另一种选择,并保证与SQL Server Express一致的兼容性。
LocalDB与SQL Server Compact之间有很大区别:
运行模式:SQL Server Compact是一个进程内(in-proc)DLL,LocalDB则做为独立进程运行。
磁盘占用:SQL Server Compact的体积仅有4MB,LocalDB安装以后则有140MB。
功能特性:SQL Server Compact仅提供RDBMS的核心功能,而LocalDB则提供更丰富的功能,好比存储过程、几何和地理数据类型。
最后的思考
LocalDB做为一个功能丰富的轻量级数据库,绝对值得咱们去尝试。接下来,咱们也许会思考,LocalDB是否提供了良好的管理接口?答案是确定的。
LocalDB提供了一个命令行管理工具SqlLocalDB.exe。下次,就让咱们一块儿来探讨如何使用命令行实用工具SqlLocalDB.exe和SQL Server Management Studio(SSMS)管理LocalDB。(张志平/编译)
原文连接:Introducing LocalDB, an improved SQL Express
下载连接:SQL Server 2012 Express & LocalDB
LocalDB并非要取代SQL快捷版,而是要让开发者可以花费最少的精力来开发应用程序。微软会继续为用户提供免费的SQL Server快捷版,他们能够在上面运行小型的评估项目,数据库大小的限制为10GB。
Localdb能够配合iis使用, 在IIS的应用程序池的高级设置里,“加载用户配置”=true