今天很荣幸的参加了微软开源跨平台讲座,充分认识了下一个版本的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。

学习ASP.NET 5和MVC6的更多相关文章

  1. 学习ASP.NET Core,你必须了解无处不在的“依赖注入”

    ASP.NET Core的核心是通过一个Server和若干注册的Middleware构成的管道,不论是管道自身的构建,还是Server和Middleware自身的实现,以及构建在这个管道的应用,都需要 ...

  2. 学习asp.net比较完整的流程[转]

    如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一步 掌握一门.NET面向对象语言,C#或VB.NET 我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET. ASP.NE ...

  3. 学习ASP.NET MVC(九)——“Code First Migrations ”工具使用示例

    在上一篇文章中,我们学习了如何使用实体框架的“Code First Migrations ”工具,使用其中的“迁移”功能对模型类进行一些修改,同时同步更新对应数据库的表结构. 在本文章中,我们将使用“ ...

  4. 学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面

    在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex. ...

  5. 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序

    学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...

  6. (转) 一步一步学习ASP.NET 5 (四)- ASP.NET MVC 6四大特性

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助.原文:http://blog.csdn.net/kinfey/article/details/44459625 编者语 : 昨晚写好的文章居然csd ...

  7. (转) 一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目

    转发:微软MVP 卢建晖 的文章,希望对大家有帮助. 注:昨天转发之后很多朋友指出了vNext的命名问题,原文作者已经做出了修改,后面的标题都适用 asp.net 5这个名称. 编者语 : 昨天发了第 ...

  8. 一步步学习ASP.NET MVC3 章节总结

    请注明转载地址:http://www.cnblogs.com/arhat 对于<一步步学习ASP.NET MVC3>系列工15章,那么为了方便大家能够快速的预览,老魏在这里为这个系列提供一 ...

  9. 一步步学习ASP.NET MVC3 (1)——基础知识

    请注明转载地址:http://www.cnblogs.com/arhat 首先在这里我想声明一下,这个ASP.NET MVC3系列是我在授课过程中的一些经验,有什么不对的地方,请大家指出,我们共同的学 ...

随机推荐

  1. linux中输入输出和重定向问题

    输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...

  2. 细谈Slick(6)- Projection:ProvenShape,强类型的Query结果类型

    在Slick官方文档中描述:连接后台数据库后,需要通过定义Projection,即def * 来进行具体库表列column的选择和排序.通过Projection我们可以选择库表中部分列.也可以增加一些 ...

  3. 用Fiddler模拟低速网络环境

    有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢? 我们可以用Fiddler 这 ...

  4. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39

    Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39 V8   重构iocutilV4,use def iocFact...jettyUtil V ...

  5. mysql 插入数据失败防止自增长主键增长的方法

    mysql设置了自增长主键ID,插入失败的那个自增长ID也加一的,比如失败5个,下一个成功的不是在原来最后成功数据加1,而是直接变成加6了,失败次数一次就自动增长1了,能不能让失败的不增长的? 或者说 ...

  6. JS获取当前时间

    setInterval("getTime();", 1000); function getTime() { //document.getElementById('linkweb') ...

  7. js Function()构造函数

    var scope="global";    function constructFunction(){        var scope="local";   ...

  8. Dagger2 (三) 总结篇

    一.Dagger2注入原理 Dagger2以自动生成代码的形式,帮助我们构建依赖图,在使用依赖的时候方便清晰,这里说明一点,在我们使用Dagger2的时候,绝大多数错误都是编译器就会暴漏出来,这也就决 ...

  9. QService 服务容器

    原理 服务容器 服务主体,反射执行业务类 管理器 对服务容器进行控制 测试服务 向一个文件写入内容 启用一个HTTP服务 以下为日志: 2015-06-15 11:50:47.5313 Info QS ...

  10. PHPmailer关于Extension missing: openssl报错的解决

    最近在写一个网页的时候,需要用到PHPmailer来发送邮件,按照官网上给出的demo写出一个例子,却报错Extension missing: openssl 最后发现需要修改php.ini中的配置: ...