今天很荣幸的参加了微软开源跨平台讲座,充分认识了下一个版本的ASP.NET所带来的激动人心的特性。虽然过去已经断断续续的了解了一些ASP.NET5和MVC6与EF7的动态,但是都没有这一次来的系统化(也许是在东道主上课感觉良好吧^v^),这次较为系统的学习并亲身实践了这些新东西,在过程中也遇到了一些问题,幸好有,每小时1260元的MVP亲身之道。
总体来说变化是挺大的,但是有两条铁律就是:
跨平台,同时运行于MAC、LIUNX和WINDOWS
组件化一切都可以NUGET到。
有了以上的原则理解这一系列的变化就不足为奇了。在这之前需要认真阅读DOCS.ASP.NET中的内容,E文差的同学免进,了解GITHUB.com/aspnet中的代码,由于现在微软也使用了敏捷开发(估计是找不到人了),所以写文档的工作就没有了,原来最牛B的东西也就没有了(估计以后企业支持服务价格会增高哦),软件真的变成服务了(该兴奋还是该难过?)。
在读完文档和代码后下面的文章就不需要在看了,哈哈!
首先要了解的是DNVM、DNU、DNX。可以先从最简单的开始:(如果您的电脑不能上网,就趁早洗洗睡了吧。)
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "&{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}"
dnvm upgrade -r coreclr
dnvm upgrade -r clr
拉出VS溜溜,建个MVC的工程,这里要说一下,以后就再也没有神马WEBFORM了,他已经光荣退休了。
CD 工作目录
DNU restore
DNX WEB
就可以跑起来了。
回过头来看看这个ASP.NET MVC的工程,我擦,没有几个文件认识,变化可真大啊,咋回事呢这是要疯啊。又被微软坑了有不有。
其实不用这么虐心,还是回到刚开始说的,他的一切变化都是为了一件事跨平台,去掉windows的影子,神马config,dll,什么隐藏文件工程文件神马的统统一边玩去,现在就欢迎一下大众脸,比如.json,.txt类的大家都能沟通的文件,那些被包养的幸福日子一去不复返了有木有。
还有一个让要剁手的动作,就是以后再也别改个文件就右键生成解决方案啦,因为以后都是Ronsley这个牛掰大哥在内存里动态编译了,感觉又回到了小时候asp的时代,真是太美好了,改一个文件就扔到服务器上,下次访问就自动变了,绕了一大圈又回来了呢。
那麽原来的些复杂的web.config里的配置咋整呢,总不能没了吧。这个也不全是,原来一会儿写在<web.module>里一会儿写在<web.service.module>里的那些modules现在别搞成了一种叫Middleware的管道,每次都要调用下一个的next,如果忘了调就死了。其他的配置项都放到代码里去实现了,也就是说默认文档啊那些配置节点全都写成代码的形式了,还是那句话,跨平台不能老想着你们家IIS。
吐槽结束,继续前行,我们刚刚创建了一个空的asp.net 工程,运行后发现不管我往wwwroot里放神马都是现实一个hello world,呵呵,真是反扑归真吗,我保证你从webform到这里来的话感觉地球上的生活真是糟糕,原因是因为他啥都没给你做,就连处理静态文件也要自己在start.config中加.
好吧简单一点,直接在nuget里输入Install-Package Microsoft.AspNet.Mvc –Pre安装最新的asp.net mvc预览版,然后再新型一次dnu restore。