杭州.net培训
达内杭州.net培训中心

13732203138

热门课程

.NET持续进化的统一开发平台

  • 时间:2018-04-24
  • 发布:杭州.NET培训
  • 来源:知识库

十..NET Core

最后,终于来到了现在火热的.NET Core

自.NET Framework发布至今已有十余年,由于微软过于保守的版权策略,.NET一直作为Windows平台的封闭产品。尽管有Mono项目对.NET实现了平台移植,但毕竟不是微软“亲生”,Mono在一些实现上仍然不够完美。随着2014年Xamarin和微软发起.NET基金会,微软在2014年11月份开放.NET框架源代码。随后在.NET开源基金会的统一规划下诞生了.NET Core。

(注:.NET Core早期被称为.NET vNext或.NET 5,直到2016年1月才正式命名为.NET Core 1.0)

需要注意的是,尽管微软把.NET Core作为.NET未来的发展方向,但.NET Core和.NET Framework仍然是两个独立的产品。.NET Framework也会继续更新和维护。

.NET Core与.NET Framework最大的区别在于.NET Core是完全开源的,托管在github上,支持任何人向项目贡献代码。并且,.NET Core不再是Windows独占,还支持Linux、macOS等多种平台。

而.NET Core是.NETFramework的新一代版本,或者说是其进化版本,是微软开发的第一个跨平台(Windows、Mac OSX、Linux)的应用程序开发框架(Application Framework),未来也将会支持FreeBSD与Alpine平台。

.Net Core也是微软在一开始发展时就开源的软件平台,它经常也会拿来和现有的开源.NET平台Mono比较。

由于.NET Core的开发目标是跨平台的.NET平台,因此.NET Core会包含.NET Framework的类库,但与.NET Framework不同的是.NET Core采用包化(Packages)的管理方式,应用程序只需要获取需要的组件即可,与.NET Framework大包式安装的作法截然不同,同时各包亦有独立的版本线(Version line),不再硬性要求应用程序跟随主线版本。

2016年6月27日在RedHat DevNation峰会上宣布了.NET Core & ASP .NET Core 1.0 RTM的发行。而目前最新的.NET Core版本为2.1.4。

.NET Core的核心点:创新、开源、跨平台

Develop high performance applications in less time, on any platform.

用更少的时间,在任何(全)平台上开发高性能应用程序。

以上描述说的就是.NET Core。

参考链接:Develop high performance applications in less time, on any platform

特点如下:

1.   跨平台

您可以创建在Windows,Linux和MacOS上运行的.NETCore应用程序。

2.统一

利用统一的.NET标准库(.NET Standard),使用相同的代码定位所有平台,并使用相同的语言和工具重用您的技能。

3.轻量级

没有影响部署和模块化开发模型,您只需要依赖于您所需的最少组件包。

4.现代

多语言支持C#,VB,F#和现代结构,如泛型,语言集成查询(LINQ),异步支持等等。

5.   开源

运行库,库,编译器,语言和工具都是GitHub上的开源代码,接受代码贡献,测试和完全支持。

.NET Core经常会拿来与其他平台做类比,尤其是它的源头.NET Framework以及另一个相似性质的开源平台Mono。
为了让大家,更好的理解下,我阐述下吧。

十一. .NET Core与其他平台的关系

.NET Framework

据微软的帮助,.NET Core和.NET Framework是子集(Subset)与超集(Superset)的关系,.NET Core将会实现出部分的.NET Framework功能(基本上是不含用户界面的部分),例如JIT (.NET Core采用RyuJIT)、垃圾收集器(GC)以及类型(包含基本类型以及泛型类型等)[10]。未来.NET Framework和.NET Core也将会是各自发展,但它们也会同时使用彼此的功能,例如.NET Compiler Platform与RyuJIT等技术。

Mono

Mono是另一个已发展许久的.NET Framework跨平台开源版本,基本上并不隶属微软官方,而是由社区的力量所主导,自成一个生态系统,也开发出了像Xamarin这样的跨平台.NET移动应用,.NET Core与Mono未来会是合作的关系,Mono仍会维持社区力量的维护与发展,而.NET Core则会以官方角度来进行发展,两边也会一起进行彼此功能上的增进。

.NET Core与ASP .NET Core的关系

其实一开始并不是主从关系[,ASP.NETCore的开发初期(ASP.NET5) .NET Core还没有开始起跑,因此ASP.NETCore当时有自己的运行期与工具,一开始称为Project K,后来改为DNX (.NET Execution Environment),DNX本身就具有可独立运作的运行能力,不需要依赖.NET Core运行,但是这样会变成.NET Core和ASP.NETCore双头马车的现象,在.NET Core逐渐成熟之后,微软也决定要将这两个各自独立发展的产品线集成在一起,DNX也将因改用.NET Core运行而DNX终止开发,DNX的功能将由.NET Core以及旗下的.NET CLI接替提供,集成后的版本将在1.0 RC2时发布。

严谨来说,ASP.NET本不应该放在此处与以上三个框架平行,但是因为ASP .NET太出名了,因此我不得不在这说清关系。ASP.NET最初是.NETFramework框架中的一个组件,用于开发Web应用程序。它是ASP技术的改进版本,需要注意的是,ASP与ASP.NET是完全不同的两个产品。同理,VB和VB.NET也是完全不同的两个产品。ASP和VB都是上个世纪的技术,过于古老在此不再赘述,但请务必注意区分它们。早期的ASP.NET提供一种叫做WebForm的方式用于呈现网页,它可以让网页开发变得像WinForm开发一样简单且可视化。但由于WEB技术的飞速发展,WebForm由于其低效、封闭和难以定制的缺陷已经逐渐淡出历史舞台。随着.NET3.5的发布,微软提供了全新的ASP.NET网页呈现方式,称为ASP.NETMVC Framework。这套框架遵循MVC设计模式思想,将视图和逻辑进行了很好的分离,并且大幅提升了性能和可定制性。经过多年发展,目前已经更新到了ASP.NETMVC6,MVC6完全采用.NETCore的项目结构,支持Framework、Core、Mono多种运行时。因此,ASP.NETMVC6也被称为ASP.NETCore。

历史的进程5的命名会使得外界将它视为 ASP.NET的升级版,但它其实是新一代从头开始打造的 ASP.NET核心功能,因此微软宣布将它改为与.NET Core同步的名称,即 ASP.NETCore。

ASP.NETCore可运行于Windows平台以及非Windows平台,如Mac OSX以及Ubuntu Linux操作系统,是Microsoft第一个具有跨平台能力的Web开发框架。

微软在一开始开发时就将 ASP.NETCore开源,因此它也是开源项目的一员,由.NET基金会(.NET Foundation)所管理。

现在的责任

ASP .NET Core是一个跨平台的高性能开源框架,用于生成基于云且连接Internet的新式应用程序。
使用 ASP.NETCore,可以:

1.    生成Web应用和服务、IoT应用和移动后端。

2.    在Windows、macOS和Linux上使用喜爱的开发工具。

3.    部署到云或本地。

4.    在.NET Core或.NET Framework上运行。

注1:随着.NET技术的发展,时至今日,广义的.NET指包含.NET Framework,.NET Core,Mono在内,是基于.NET技术的整个产品系列。而在过去的习惯中,.NET通常特指.NET Framework这一个最正统的框架。

注2:.Net Core也有两重概念,广义来说,Core指全新的一整套框架,包括运行时,命令行工具,项目结构定义等等。Core结构的项目,支持指定Framework、Mono或者Core中的一者或多者作为运行时环境。而狭义上的Core,仅特指.NET Core CLR(运行时)。请根据上下文和语境区分其定义。

如果您不确定从哪里开始?我们建议尝试Visual Studio。

Visual Studio

Windows上的全功能集成开发环境(IDE),用于构建各种类型的.NET应用程序。宇宙最强大的编译器。

Visual Studio Code

在Linux,macOS或Windows上开发以构建跨平台网站和服务。安装C#扩展以获得最佳体验。

适用于Mac的Visual Studio

使用Xamarin构建原生Android,iOS,macOS和Windows应用程序,以及使用ASP.NETCore创建网站和服务。

OmniSharp

编辑器中的跨平台.net开发,如Atom,Brackets,Sublime Text,Emacs和Vim。

JetBrains Rider

使用IntelliJ和ReSharper技术构建的跨平台.NETIDE。它为所有平台上的.NET和.NET核心应用程序提供支持。

.NET Core CLI

用于在Linux,macOS和Windows上开发跨平台网站和服务的命令行界面(CLI)。

上一篇:.NET的反射为什么慢
下一篇:持续进化的.NET
选择城市和中心
贵州省

广西省

海南省