想要了解.Net Core的意义,就必需要了解拥有很长历史的.Net Framework,.Net Framework1.0于2002年发布。从那开始,每隔两年就会有一个主版本推出。伴随着Visual Studio 2013咱们发布了C#5.0和.Net Framework4.5 。.Net Framework4.5是巨大的,拥有超过20000余个类。html
如此巨大的.Net Framework会从存在什么问题呢?.Net Core又是怎样解决的呢?
做为一名初学者,想要入门庞大的.Net Framework并非一件容易的事情。许多对之前的应用很重要的可是对于新的应用程序并非很重要的东西仍然存在。对于有经验的开发者,决定该采用哪一种技术是是很困难的。进行web开发时,不得不在ASP.NET Web Forms 和 ASP.NET MVC中做出选择,在进行桌面程序开发时,不得不决定该使用Windows Forms 仍是 WPF,在进行获取数据的时候,不得不在Entity Framework 和 LINQ to SQL中做出选择... ...对于一部分有经验的开发者而言,该如何做出选择是显而易见的。但对于大多数开发者来讲并不容易。甚至对于一部分开发者而言,开始使用.Net都很困难。git
.Net Core是基于更细粒度的NuGet包的。例如编写控制台程序只须要控制台应用程序,而使用.Net Framework,控制台应用程序却依赖于被各个.Net 程序集引用的mscorlib程序集。采用.Net Core,你能够明确地决定要使用System.Console NuGet包。不然控制台程序将不会工做。更细粒度的包容许你更加轻松地解除对Framework的依赖。若是你须要旧版本的类,也能够经过NuGet包System.Collection.NonGeneric来获取。对于新的程序,你能够经过定义包列表来使用System.Collection.NonGeneric。目前,开发环境更新很快。许多产品,用户几乎每隔2年就会收到新版本。用户会在一些更新中获取到一些小的特性,可是更新的频率却在加快。.Net Framework每隔两年就会推出新版本,这在目前来看已经不算快了。一些技术,例如Entity Framework,已经经过在NuGet上提供一些独立于.Net Framework的包来规避一些问题。小步伐更新而且快速快速创新。由许多小型的NuGet包组成的.Net Core能够更容易地被改变,.Net Core和ASP.NET如今都是开源的。你能够经过http://www.github.com/dotnet找到.Net Core的源代码,经过http://www.github.com/aspnet找到ASP.NET的源代码。github
当.Net发布时,Windows在客户端和服务器端都拥有了巨大的市场。如今的体系是碎片化的,由于各个公司都对运行在服务器端的ASP.NET持反对态度,由于它不能运行在Linux上。可是ASP.Net Core 1.0会运行在Linux。目前.Net Core 是跨平台的,能够运行在Windows、Linux 和Mac系统上。对于移动端应用程序,可使用.Net Xamarin开发运行在iPhone和Android上的应用程序。web
在开发过程当中,安装在目标机器上的.Net运行时环境须要和.Net Framework版本一致, 许多客户端开发都被.Net版本所限制。这不只仅是客户端开发的问题,服务器端开发也存在这个问题。我不得不切换到旧版本的.Net运行时由于提供给个人并不支持新版本。可是使用.Net Core,运行时是和应用程序一块儿发布的。 服务器
当ASP.NET创建之后,兼容之前的由JavaScript或VBScript代码技术就显得比较重要了。但就目前来讲,这并不须要了。 开发者建立ASP.NET
Web Forms程序并不须要了解任何JavaScript和HTML,任何事情均可以被服务器端代码处理。可是如今因为巨大数量的JavaScript框架和加强的HTML,对于JavaScript和HTML来讲,须要更多的控制。对于新版本的ASP.NET,在.Net Framework体系中是一个重要的角色。经过细粒度的控制,你能够决定哪些特性是你所须要的。为了获取更大的改善影响力,.Net Core能够被编译成本机代码。这不只会在Windows上实现,也会在Linux和Mac系统上实现。经过这个特性会提升性能尤为体如今程序启动时间和占用内存等方面。对于遗留的应用程序有个问题,大多数程序不能轻松地切换到.Net Core ,只运行于Windows的.Net Framework也在进行演化。可是并无像.Net Core进行巨大的演化,可是它是一个成熟的框架。当我在撰写本书时,.Net4.6.1已经发布了,较上一个版本更新了小部分。Windows Forms 或者 ASP.NET Web Forms编写的应用程序仍然使用完整的Framework,可是他们可使用加强的.Net 4.6.1,使用.Net 4.6.1可使用NuGet包创建.Net Core。许多新的NuGet包以便携的方式被建立。对于 ASP.NET MVC5 应用程序你能够决定使用运行于.Net Core1.0的ASP.NET MVC6 。ASP.NET Core 1.0既容许使用.Net Core 也容许使用.Net 4.6,这使得在.Net Core和.Net 4.6之间切换很容易。然而,对于运行在Linux的ASP.NET MVC,你须要使用.Net Core 对项目进行迁移,可是在Linux上运行不会像以前的那么好。框架
如下是一些.Net Core的特性:性能
以上就是你所看见的.Net Core的特性,这项技术为.Net的改变做出了历史性的贡献。这是一个新的开始,今后咱们将迈着快速的步伐继续咱们的旅程!
翻译
以上文章翻译自《Professional C# 6.0 and .Net Core 1.0》,若有不妥请指正,谢谢。orm
做者:悠扬的牧笛htm
博客地址:http://www.cnblogs.com/xhb-bky-blog/p/7795856.html
声明:本博客原创文字只表明本人工做中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未受权贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文链接。