在2016年6月27日的红帽DevNation峰会上,微软正式发布了.NET Core 1.0、ASP.NET 1.0和Entity Framework Core 1.0,这些产品将全部支持Windows、OS X和Linux三种操作系统。
其中.NET Core最受瞩目,这是一款跨平台、开源且模块化的.NET平台,可以用来搭建web应用、微服务、创立应用库和控制台。
本次发布的包括.NET Core Runtime、框架库及相关工具,和ASP.NET Core库。
早在2004年,Xamarin公司的前身,Novell就开始研发如何实现.NET的跨平台化研发。Mono Project开源项目应运而生,陆续实现了在大部分Linux版本、Android甚至一些游戏开发平台上运行.NET应用。.NET Framework作为专利产品,Mono Project在一定程度上触犯了微软;这种做法因此也曾一度引起开源社区的广泛争议。
2014年,微软改变了.NET技术的发展策略,在connect();大会上发布开源.NET Core,称.NET Core的愿景是成为所有平台的单一代码库。2016年3月,微软正式收购Xamarin公司,其所有的Mono Project采用 MIT协议开源。
2016年6月27日,微软正式发布.NET Core 1.0。经过微软与红帽一年的合作,Linux企业版已支持.NET Core 1.0的全部特性;
需要说明的一点是.NET Core 1.0目前仅支持红帽的企业版Linux。
注:在2016年6月份前,所谓的.Net跨平台,都是基于Mono的,现在一般称作Xamarin,是Mono的一个商业化分支,目前也已经被微软收购,可以支持IOS、Android移动应用开发,也可以支持Windows和Linux下的窗口程序开发,Mono可支持.NetFrameWork的基础类库。但Mono更推荐使用 GTK#的库进行界面开发。
GTK#/GTKSharp 是基于.NET或Mono的图形用户界面的工具包。GTK#可以绑定GTK+等各种GNOME库,从而开发出跨平台的窗口程序。
.NET Core被视为.NET Framework的新一代版本。与现有的.NET Framework在使用上的区别是:.NET Framework采用大包式安装的方式,而.NET Core则是采用套件化(Packages)的管理方式,写应用程序只需要调用所需组件即可。
注:通过上图可以看出,微软本身能够跨平台的是ASP.Net和UWP(Win10通用应用平台),而且V1.0版本在16年6月份刚刚发布,目前来看.NetCore1.0可能不适宜作为我们跨平台的解决方案。
开发环境:VS2015
操作系统:Windows7X64、CentOS7。
运行环境:linux下mono4.6.2,windows下.NetFrameWork4.5。
采用VS2015在windows下开发最简单的windows窗口程序,如下:
在windows下运行结果:
在linux下运行结果:
在linux下,mono作为.net程序的运行时CLR,可以运行基于System.Windows.Forms的winform程序。
ASP.net跨平台是基于linux下的应用服务器jexus的。jexus 即 Jexus Web Server,简称JWS,是Linux平台上 的一款ASP.NET WEB服务器。它是 Linux、Unix、FreeBSD 等非Windows系统架设 ASP.NET WEB 服务器的核心程序,是企业级ASP.NET跨平台部署的一种可选方案。
该部分只作为了解,不进行深入研究。
本文来源:https://www.2haoxitong.net/k/doc/79fae7369a6648d7c1c708a1284ac850ad02042c.html
文档为doc格式