今天很荣幸的参加了微软开源跨平台讲座,充分认识了下一个版本的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. WPF 自定义Grid双击事件

    先设置Grid_MouseDown事件函数,然后在函数内增加如下代码 ) { //双击执行 } 更改数字可以区别单击和双击 感谢@一 定 会 去 旅 行

  2. 1、Python基本概念

    1.数 python中有4种类型的数--整数.长整数.浮点数和复数 2.字符串 单引号.双引号或者三引号包含的字符序列,如: 'char' #单引号 "char" #双引号 ''' ...

  3. Mybatis的基本操作案列增加以及源码的分析(二)

    一.构建一个框架的项目的思路 首先我们先建立一个web项目,我们需要jar,mybatis-config.xml和studentDao.xml的配置随后就是dao.daoimpl.entity.的架构 ...

  4. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

  5. ThinkPHP 整合Bootstrap Ajax分页

    ThinkPHP Ajax分页代码 publicfunction index() { $where=array(); $name = I('name'); if(!empty($name)){ $wh ...

  6. ios新手开发——toast提示和旋转图片加载框

    不知不觉自学ios已经四个月了,从OC语法到app开发,过程虽然枯燥无味,但是结果还是挺有成就感的,在此分享我的ios开发之路中的小小心得~废话不多说,先上我们今天要实现的效果图: 有过一点做APP经 ...

  7. Android中使用AsyncTask实现文件下载以及进度更新提示

    Android提供了一个工具类:AsyncTask,它使创建需要与用户界面交互的长时间运行的任务变得更简单.相对Handler来说AsyncTask更轻量级一些,适用于简单的异步处理,不需要借助线程和 ...

  8. UITabBarController 基本定制

    UITabBarController 定制 特点 用法 1.准备好你的tabBar图片及其他图片(哈哈哈!!!!),我的图片都放在了Assets.xcassets中. 2.导入本工程中的Categro ...

  9. Google C++单元测试框架GoogleTest---值参数化测试

    值参数化测试允许您使用不同的参数测试代码,而无需编写同一测试的多个副本. 假设您为代码编写测试,然后意识到您的代码受到布尔参数的影响. TEST(MyCodeTest, TestFoo) { // A ...

  10. Oracle的SQL基础

    1.了解SQL的种类 (1)DDL 数据定义语言:定义数据库中数据要如何存储的,包括对数据库对象的创建(create)修改(alter)删除(drop)的操作,这些对象主要有数据库,数据表,视图,索引 ...