ASP.NET5和MVC6新特性学习
?
?
ASP.NET5和MVC6的新特性
在新版ASP.NET5和MVC6中,有很多变化,有些是彻底的变化,比如在最底层支持依赖注入技术,为了方便了解,我们这里列出了最重要的10大变化,以便进行学习,具体如下:
- ASP.NET 5现在已经是跨平台了,可以在Mac和Linux上运行。
- 不再有Web Forms框架了。
- 只支持C#,不在支持VB.NET了。(貌似最近又听说最终版VB.NET又要支持了)
- 新的Tag语法,@Html.LabelFor或Html.TextBoxFor替换成新语法<label asp-for="Name">或<input asp-for="Name" />,以便进行模型绑定。
- 新增视图组件(View Component),可以将局部内容定义为一个单独的组件进行调用,和Web Forms里的WebControl非常像。
- 拥抱前端技术,内置了Nodejs、NPM、Grunt、Bower技术。
- 模型整合,将MVC和WebAPI整合成一个框架。
- 支持AngularJS,帮内置了AngularJS的module、controller、directive、以及factory模板。
- 支持依赖注入技术,拥有原生的DI框架,并且也支持第三方容器。
- 支持xUnit.net,并抛弃了Visual Studio Unit Testing框架。
?
?
?
ASP.NET 5中的MVC、Web API、Web Pages三个框架会合并成一个框架,统称为MVC6。该合并工作将删除三个框架中重复的功能,比如MVC和Web API中的两种Controller只保留一种。但是传统MVC的功能都会保留,比如模型绑定。不过,据说Web Pages在RTM的时候不会发布,而是会在RTM之后的第一次更新中进行发布。
MVC6会引入一些新功能,最引人注目的功能就是Tag Helpers和View Components。Tag Helpers是Html Helpers的一种替换,而View Components则引入里类似Web Forms中的WebControl的概念。
?
Visual Studio Enterprise 2015 RC安装
?
?
选中要安装的组件:
?
?
安装完成,进入初始页。
默认安装的.NET Framework
团队资源管理器,提供对VS Online、GitHub、本地Git库的支持。
?
如何进行开发
?
?
对Windows开发
?
?
?
?
?
对web开发
?
?
?
?
?
?
ASP.NET 4.6模板
?
Web Forms
?
?
?
引用提示:
内置AJAX和JQuery
?
MVC
?
Web API
?
?
?
?
ASP.NET 5模板
?
Empty
?
?
?
?
?
Web API
?
?
与Empty相比,
多了Properties目录,launchSettings.json
wwwroot目录下多了web.config文件。
多了Controllers目录,并多了ValuesController.cs文件。
?
Web Site
?
一个一个来看。
Solution Items目录:
global.json
用来对项目进行管理。
src目录:
Properties目录
用于进行一些配置信息的存取。
?
References
通过project.json中的dependencies进行管理。
Nuget会自动下载相应的引用。
?
?
wwwroot
依赖项
Bower:bower是twitter开源的一款web包(如bootstrap、jquery)管理,依托github上越来越多的开源web(html+css+js)项目,bower只需要github项目加一个配置文件就可以使用bower方式管理。bower提供了web包的添加、升级、删除、发布,以及管理包依赖,只需命令方式,即可轻松管理,再也不需要去手工下载拷贝文件了。
?
NPM:npm 是 Node.js 的模块依赖管理工具。作为开发者使用的工具,主要解决开发 Node.js 时会遇到的问题。如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者的重要性,npm 对与 Node.js 的开发者和社区的重要性不言而喻。现在已经移植到全宇宙最无敌的开发工具Visual Studio中了。
?
?
Compiler
?
Migrations
?
Models/Views/Controllers
?
?
bower.json:
面已经提到过,是对Bower的管理。
config.json:
上面也已经提到过,是对一些配置信息的管理。如:网站title,数据库连接字符串等。
gulpfile.js:
?
?
MessageServices.cs
?
Package.json
?
?
Startup.cs
?
?
?
?
对Web开发新特性的学习
Tag Helpers
对Tag Helper的应用,极大地方便了前端开发人员,因为可以看到正常的HTML结构。
?
?
?
wwwroot怎么用
?
?
Compiler怎么用
?
?
global.json怎么用
?
?
依赖项怎么用
Bower和Gulp怎么用
?
Gulpfile.js怎么用
?
参考:
https://github.com/gulpjs/gulp/blob/master/docs/API.md
?
?
?
config.json怎么用
?
?
project.json怎么用
?
?
?
?
MessageServices.cs怎么用
?
?
?
?
StartUp.cs怎么用
?
?
?
?
WebSite能实现跨平台吗?
?
?
?
?
能不运行在IIS上吗?
?
?
?
如何部署
?
?
?
AngularJS的支持
?
?
?
依赖注入
?
?
?
XUnitTest
?
?
?
对Android和IOS开发
?
?
?
?
对Python和JavaScript开发
?
对团队开发的支持
?
?
?
?
?
?
?
参考:
http://docs.asp.net/en/latest/getting-started/index.html
?
?