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

13732203138

热门课程

持续进化的.NET

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

二.NET到底是什么?

在过去的日子中大家提到.NET通常是指.NET Framework这么一个框架。

但是随着.NET技术的发展,时至今日-2018年

广义的.NET指包含 .NET Framework,.net core,Mono在内,是基于.NET技术的整个产品系列。

.NET是一个通用开发平台。它具有几项关键功能,例如支持多种编程语言、异步和并发编程模型以及本机互操作性,可以支持跨多个平台的各种方案。
.net开发可以实现包括.NET Framework、.NET Core和Mono。.NET的所有实现都有一个名为.NET Standard的通用API规范。
.NET拥有惊人的性能和开发效率,并且拥有数百万的开发者。

以上就是最新的.NET的介绍。以后提到.NET不再仅仅是.NETFramework了。

我也就微软着新生的.NET或者说进化后的.NET来说说过往吧。

三 .NET Framework

传统的.NET Framework是以一种采用系统虚拟机运行的编程平台,以(通用语言运行库)CLR(Common Language Runtime)为基础,支持多种语言(C#、F#、VB .NET、C++、Python等)的开发。

这也是我们目前市面上用到最多也是大家最熟悉的.NET,它是目前在市场中的占比是最大的,他很成熟也很稳定,但是他的弱点是在于他天生不具备跨平台,这也是被广大程序员所诟病的,他需要跨平台,是需要通过配合Mono来使用,它更多的运行在Windows服务器上,需要IIS作为宿主。

四 .NET Framework  VS JAVA

而提到.NETFramework就不得不提到Java了。

甲骨文(Oracle)公司的Java语言和J2ee技术是.NET平台的竞争对手之一。

说起.NET的起源,还得先说到Java。众所周知,Java是一个主打敏捷开发,跨平台的编程语言。而.NET的诞生,与Java有着千丝万缕的联系。

Java的历史可以追溯到20世纪90年代,最初是由Sun公司为了实现电子产品智能化而开发的程序语言,主打的设计思想是敏捷开发和跨平台。1995年Java正式推出之后,立刻受到了包括IBM、Apple、Adobe、HP和微软在内的各大公司的追捧。随后几年Java的发展势如破竹,作为一款收费产品,Java给Sun公司带来了非常可观的盈利(Java已于2006年底宣布免费开源)。而微软作为软件大厂,当然不愿看着Java一家独大,同时也意识到了敏捷开发的巨大前景,由此诞生了Microsoft .NET。

.NET框架作为Visual Studio的组件之一发放,自2002年全新VS .NET搭载.NET 1.0起,.NET至今已更新四个主版本,.NET 4.0于2010年随VS2010发布,目前最新的.NET Framework版本为4.7.1。来源

.NET与Java有非常多的相似之处,二者都是即时编译(JIT)的动态语言。这类语言中,项目编译生成的目标文件并不是机器码,而是需要由运行时环境进行即时编译的特殊代码。在Java中这种特殊代码叫做字节码(bytecode),而.NET中则叫做中间语言(Common Intermediate Language,简称IL)。Java官方的运行时环境叫做JRE(Java Runtime Environment),而.NET官方的运行时环境叫做CLR(Common Language Runtime)。

五 .为什么国内的互联网公司都使用的是JAVA呢?

拨开迷雾看本质。

·        阿里巴巴1999年成立

·        百度2000年成立

·        腾讯1998年成立。

.NET 2002年才发布1.0版本。。你告诉我他们有的选吗?

有人要提出京东是从.NET转的java ?为什么,因为那个时候.NET不开源没有现成的大型电商、分布式、集群的解决方案,而java有大把的电商和互联网人才,注定了会选择JAVA而不是.NET。 

或许还有就是舍不得钱啊,毕竟windows服务器的授权费贵。~皮一下很开心。

所以.NET错在于它出生的晚了,不支持跨平台。中国的互联网公司一开始就没有什么选择。

六 .NET的跨平台之路

在和Java的博弈和对战中,我们都知道.NET Framework一直被吊打,尤其在国内。好在2014年11月12日,微软宣布将完全开放.NET框架的源代码,并提供给Linux和OS X使用

听了这么一则新闻之后大家知道.NET或许还有机会打一波翻身仗。但是早在这个新闻之前其实就有Mono这么一个.NET跨平台解决方案。

七 .Mono神奇的跨平台解决方案

所以如果有人问你,.NET Framework怎么跨平台,告诉他,可以使用Mono。

那Mono到底是什么?

它为什么可以跨平台?

在.NET开源之前,需要首先了解Mono,了解Mono [维基Mono]

考虑到大多人咳咳不方便搭梯子以及英文不是很好,我摘录和转载了几个博主的文章。

.NET Framework是由微软独立开发,闭源且具有专利性质的独家技术,并且微软只提供了针对Windows系统的支持。而作为同类竞争对手的Java,却能通杀包括x86、ARM在内的主流硬件平台,软件方面也支持包括Windows、Linux、Android在内的各种桌面、移动、嵌入式系统。Mono是一个由Xamarin公司(先前是Novell,最早为Ximian)所主持的自由开放源代码项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334和Ecma-335)的.NET工具,包括C#编译器和通用语言架构。与微软的.NET Framework(共通语言运行平台)不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,OS X和Solaris,甚至一些游戏平台,例如:Playstation 3,Wii或XBox 360。因此,为了提升.NET的平台适应性,微软在.NET发展之初就建立了一套对于.NET中间语言的实现规范——.NET Common Language Infrastructure,这相当于一套关于.NET中间语言(IL)的语法手册,微软希望通过这种方式让第三方和开源社区来参与.NET的平台移植。Ximian公司是最早参与这项工作的成员之一,并于2004年6月发布了第一代.NET跨平台产品——Mono 1.0。Mono与微软官方的CLR一样,都是对.NET CLI(Common Language Infrastructure)的实现,他们都能对.NET的中间代码(IL)提供实时编译。不同的是,CLR只支持Windows系统,而Mono如今已支持包括Windows、Linux、macOS、iOS、Android在内的各种主流平台和操作系统。著名的游戏引擎Unity3D就包含了Mono,我们所熟知的《Tample Run神庙逃亡》、《炉石传说》、《Deemo》等游戏都是基于unity3d的(包含.NET和Mono的技术)。

值得一提的是,Mono是一个有故事的项目,十几年来历经波折,几经转手,于2011年落入Xamarin公司手中,其间Mono还与微软发生过专利纠纷。

终于在2016年2月,微软正式收购Xamarin,从此Mono回到了微软霸霸的怀抱,成了亲生儿子,同时微软宣布Mono面向社区免费。在2016年11月的Connect(); //2016开发者大会中,微软还发布了基于Xamarin Studio改造的Visual Studio for mac。

这就牵扯到了一个问题“.NET应用程序是怎么运行的?”想知道答案的朋友们可以去好好看**魅力.NET:从Mono、.NET Core说起** 

**魅力.NET:从Mono、.NET Core说起** 地址:http://t.cn/RZusYbA

八 .Xamarin

考虑如何生成iOS和Android应用程序时,许多用户都认为本机语言、Objective-C、Swift和Java是唯一的选择。但是,在过去几年中,一个全新的生成移动应用程序平台的生态系统已经出现了。Xamarin将.NET的强大功能和生产力带入iOS和Android,重用技巧和代码,同时获得本地API和性能。Xamarin是唯一能通过提供跨iOS、Android和Windows Phone(Windows Phone的本机语言已经是C#)这三种平台可正常工作的单一语言- C#、类库和运行时,却仍能编译性能甚至足以满足高要求游戏的本机(非解释型)应用程序的平台。

上一篇:.NET持续进化的统一开发平台
下一篇:.NET中的异步编程
选择城市和中心
贵州省

广西省

海南省