(0)ASP.NET Core 简单介绍 和开发环境搭建 - ASP.NET从MVC5升级到MVC6
ASP.NET Core
首先,ASP原本只是一种技术,这种技术从上个世纪90年代就有了。
Active Service Page 和 Java Service Page 是相同的概念。
古老的WebForm技术,其实是正统的ASP.NET技术。刚开始的时候,代码和HTML都是写在一起的。同一个文件里面上半部分是C#代码,下半部分是HTML代码。
随着时间的推移,CodeBehind技术将前台代码和后台代码分离开来了。那个时候流行使用 IsPostBack来判断是Get还是Post。
接下来的历史,就是MVC1-MVC5。整个前后端更加独立了。MVC各司其职,和谐相处。关于MVC的文章,网络上已经不胜枚举了。这里也无需炒冷饭了。
ASP.NET项目一般是指 使用 ASP.NET的MVC框架和EntityFramework这个 ORM的项目。当然,EF只是操作SQL的一种方式。只是这样的搭配多了,所以MVC+EF变成了一种套餐。
改名
ASP.NET 5是ASP.NET Core的曾用名。
关于这个5 的解释,请参看一下这篇文章:
解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
5也是.NET framework的新版本的版本号,称之为Core50,也叫.NET Core。.NET Core是.NET的重构版本,只保留原有框架中的最小化的功能集,对于其它的特性和功能,可以通过nuget下载以插件的形式运行。这就意味着,我们可以将其用于各种云环境进行独立部署。另外,微软还会提供一个跨平台的.NET Core,以便可以让ASP.NET程序部署到Mac和Unix/Liunx服务器上。另外.NET Core框架还可以和程序一起进行打包部署,从而可以实现在同一台服务器上使用不同版本的.NET Core。
当然,计划没有变化快,或许是为了和过去进行一个割裂,微软又将名字改为了Asp.NET Core
今天,Scott Hanselman在其博客上宣布《ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0》,ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“ASP.NET 5”确实让人感觉这是ASP.NET 4.6的升级版,比其功能更加强大,未来会替代ASP.NET 4.6。其实不是的,因为“ASP.NET 5”是另起炉灶开发,和 ASP.NET 4.6是并行独立的关系。
所在现在的名字变动如下:
ASP.NET 5 –> ASP.NET Core 1.0
.NET Core 5 –> .NET Core 1.0
Entity Framework 7 –> Entity Framework Core 1.0
这样的重命名可以让人(特别是.NET 圈子之外的人)马上了解到这个技术栈是微软在Web开发领域的一个“重新出发”,他们之间的关系以及和之前技术的关系如下图所示:
和给小孩子命名一样,给产品命名也是一门学问。
关于.NET Core, .NET Framework , MONO之间的关系,请参考
补充知识 .Net Framework .Net Core Mono 区别联系
RoadMap
这个框架已经出来1年多了,按照RoadMap,下个月就应该出正式版了。
微软的东西,其实蛮善变的,所以在稳定之前,最好简单了解一下即可。
当然可以看一下大神们的尝鲜测评和系列文章。
在正式版Release之前的1个月开始,才系统学习也是完全来得及的。
Milestone | Release week |
---|---|
Beta8 | 15 Oct 2015 |
RC1 | Nov 2015 |
RC2 (Tools Preview 1) | mid-May 2016 |
1.0.0 (Tools Preview 2) | late-June 2016 |
术语
DNX:.NET Execution Environment,即.NET运行时环境,在Windows,Mac和Linux下运行.NET应用程序的环境(有点目前windows环境下的.NET Framework的意思),当然这东西是跨平台的,这是跟.NET Framework最大的不同之处。
DNVM:NX Version Manager,即DNX的版本管理工具,利用DNVM可以管理DNX的不同版本,你可以轻松切换到不同的DNX版本中。
.NET Core:可以理解为一个经过精简的、模块化的.NET Framework子集,目的是为了跨平台。.NET Core有一系列的类库组成,叫做"CoreFX",一个更精简的版本叫做"CoreCLR"。
环境准备
MVC5的开发环境,最简单的是VisualStudio2015 Update2。MVC6的开发环境可以是VisualCode,也可以是VisualStudio,不过安装.Net Core是必须的。安装过程请参考下面这篇文章:
.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
VisualCode 1.1.1
如何使用VisualCode
下载和安装VisualCode
Visual Code 官网下载一个MVC6的示例
MVC6 Sample使用VisualCode打开MVC项目目录。(打开目录的功能,VS15,注意,不是VS2015,也有这个功能了)
安装C#扩展。
安装第一个出现的C#扩展即可(OmniSharp)。安装完成之后重启一下VisualCode
如何安装扩展- Restore Core Package
- 可以直接在VisualCode 里面,使用F1窗体,进行 dotnet restore
- 或者按照 VisualCode 的提示进行Restore(稍等一会儿,就会出现提示你Restore的置顶信息栏)
- 这个过程非常可能慢,如果使用myget.org的Nuget的话。(2016/05/18 这个时间点还是无法Restore成功)
安装之后如果控制台有什么错误信息,可以通过下面的网址解决问题
VisualCode 常见问题
VisualStudio2015
选择 .NET Core 里面的WebApplication即可。Restore暂时没有问题。
可以运行成功
学习资源
本系列追求的是每一个知识点都力求讲解透彻,不会盲目追求文章的长度。每周至少更新一篇文章。
如果你只是想尝试Asp.NET Core,不喜欢卡顿的VisualStudio,你完全可以使用Visual Code来学习。
参考文献
ASP.NET Core 1.0 Schedule and Roadmap
(0)ASP.NET Core 简单介绍 和开发环境搭建 - ASP.NET从MVC5升级到MVC6的更多相关文章
- Eclipse rap 富客户端开发总结(1) :rap简单介绍和开发环境搭建
一.rap简单介绍 1 基本概念 RAP可以让开发人员使用JAVA API和按照Eclipse 插件的开发模式构建基于AJAX的Web 2.0应用程序, RAP的工作原理是采用交叉编译的方式将 ...
- Asp.net core 简单介绍
Asp.net core 是一个开源和跨平台的框架,用于构建如WEB应用,物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.asp.net core 应用可运行.net和.net ...
- ASP.NET Core 优雅的在开发环境保存机密(User Secrets)
前言 在应用程序开发的过程中,有的时候需要在代码中保存一些机密的信息,比如加密密钥,字符串,或者是用户名密码等.通常的做法是保存到一个配置文件中,在以前我们会把他保存到web.config中,但是在A ...
- 1. React介绍 React开发环境搭建 React第一个程序
什么是 React React 是 Facebook 发布的 JavaScript 库,以其高性能和独特的设计理念受到了广泛关注. React的开发背景 Faceboo ...
- .Net Core + Angular Cli / Angular4 开发环境搭建
一.基础环境配置 1.安装VS 2017 v15.3或以上版本 2.安装VS Code最新版本 3.安装Node.js v6.9以上版本 4.重置全局npm源,修正为 淘宝的 NPM 镜像: npm ...
- .Net Core+Angular Cli/Angular4开发环境搭建教程
一.基础环境配置1.安装VS2017v15.3或以上版本2.安装VSCode最新版本3.安装Node.jsv6.9以上版本4.重置全局npm源,修正为淘宝的NPM镜像:npminstall-gcnpm ...
- Python简单介绍以及Python环境搭建(入门1)
转载请标明出处: http://www.cnblogs.com/why168888/p/6400694.html 本文出自:[Edwin博客园] Python 简单介绍 适合领域: Web网站和各种网 ...
- 一、Linux 设备驱动介绍及开发环境搭建
1.1 Linux 设备驱动介绍 1.1.1 分类及特点 计算机系统的硬件主要由 CPU.存储器和外设组成. 当前 CPU 内部都集成有存储器和外设适配器. 外设适配器有入 UART.IIC 控制器. ...
- 最简单的PHP开发环境搭建
近期发现一个非常easy的,适合刚開始学习的人的PHP开发环境,整个环境仅仅有三样东东,PHP ,APACHE , MYSQL可是对于初学PHP的人来说,己经足够了. 假设有兴趣的话能够直接去百度PN ...
随机推荐
- javascript 判断参数类型大全
js 判断类型的在开发中是很常用的,因为js 是弱类型的语言,var 可以接受任何形式的类型,但是在真正的开发中,我们需要根据不同类型做不同的处理,所以这个是必须的精通. 首先需要知道 typeof这 ...
- Oracle数据库该如何着手优化一个SQL
这是个终极问题,因为优化本身的复杂性实在是难以总结的,很多时候优化的方法并不是用到了什么高深莫测的技术,而只是一个思想意识层面的差异,而这些都很可能连带导致性能表现上的巨大差异. 所以有时候我们应该先 ...
- mysql删除重复记录语句的方法
例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name ...
- 【初码干货】【Azure系列】1、再次感受Azure,体验Windows Server 2016并部署BlogEngine.NET
上个月末,在某人的建议下,重新注册了一个1元试用账户(包含1个月期限的1500元订阅),并充值了1000元转为了正式账户,相当于1000元得到了2500的订阅,于是又一次开启了Azure之旅. 在这不 ...
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
- Membership三步曲之入门篇 - Membership基础示例
Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 - Membership基础示例 Membership三步曲之进阶篇 - 深入剖析Pro ...
- CSharpGL(37)创建和使用VBO的最佳方式
CSharpGL(37)创建和使用VBO的最佳方式 开始 近日在OpenGL红宝书上看到这样的讲解. 其核心意思是,在创建VBO时用 glBufferData(GL_ARRAY_BUFFER, len ...
- .NET 基础 一步步 一幕幕[数组、集合、异常捕获]
数组.集合.异常捕获 数组: 一次性存储多个相同类型的变量. 一维数组: 语法: 数组类型[] 数组名=new 数组类型[数组长度]; 声明数组的语法: A.数据类型 [] 数组名称= new 数据类 ...
- 如何使用yum 下载 一个 package ?如何使用 yum install package 但是保留 rpm 格式的 package ? 或者又 如何通过yum 中已经安装的package 导出它,即yum导出rpm?
注意 RHEL5 和 RHEL6 的不同 How to use yum to download a package without installing it Solution Verified - ...
- iOS---正确使用NSNotification对象
我们在开发程序的时候,程序内不同对象间的通信是不可避免的,iOS中主要有以下这些通信方式: iOS中的通信方式 图中按照耦合度的强弱和通信的形式(一对一还是一对多)进行了划分,这篇文章我们主要说一下N ...