作为一种全新的开源和跨平台的开发平台,.NETCore历经两年多的开发,终于在于年6月27日针对所有主流服务器和桌面操作系统发布1.0RTM版本。.NETCore是一种通用开发平台,它包含了自动内存管理和现代化高级开发语言等重要特性,这些都能让面向多个平台开发静态类型的高质量应用程序变得轻松。.NETCore本身采用MIT协议开源,因此可以免费用于各种类型的商业和闭源项目。 全新的.NETCore 不同于内置于Windows系列操作系统上的.NET框架,.NETCore是微软从年初启动新开发的一项技术,它与此前的.NET框架是不能直接兼容的。此外,与此前.NET的框架之间更显著的不同可能是,.NETCore的完全开源,以及跨平台的能力。 .NETCore是开源和跨平台的.NETCore本身的开发工作是基于开源项目代码大本营GitHub网站的,.NETCore核心的代码都采用了MIT授权协议,也有少数项目采用了Apache协议。在前不久的“微软开发者论坛”活动现场,针对笔者提出的.NETCore开源理念的询问,微软开发工具事业部副总裁潘正磊女士回答说“它一开始就被设计为开源的”,这一理念很真诚地表达了.NETCore开源的决心,在过去两年多时间以内,核心开发团队也以行动证实了这一点。在GitHub上,与.NETCore相关的代码库有一百来个,分布在多个账户中。来自世界各地、包括中国的大量开发者都参与了.NETCore的开发过程:开发团队会每周与社区跟进进度、讨论计划,随时在线上回答其他开发者的提问,合并其他开发者贡献的代码。笔者也有幸见证这一过程,并实际参与到其中几个项目的贡献中。 跨平台的说法,在各种开发技术上一直以来饱受争议。从前,人们提出“编写一次,到处运行”的理念到最后变成“编写一次,到处调试”的笑话。以至于现在一提跨平台,大家都持一种怀疑的态度。事实上,对跨平台的需求是真实存在的:我们使用Windows或macOS从事开发工作,而使用Linux系统作为服务器环境;我们开发一套运行在服务器上的软件产品,希望将服务器平台的选择自由留给客户……因此对于现代化的轻量级开发技术栈而言,跨平台也成为一个基本要素。典型的轻量级开发平台大多是基于动态语言的,比如PHP、Python或Node.js,这类动态语言正是由于“动态语言”的特性,在一些场合显得过于灵活、难以掌控,在工程的内建质量和开发效率上取得平衡并不容易。 开源跨平台的.NETCore C#这样的静态语言有着严谨的语法和完善的类型体系,新构建的.NETCore继承了.NET框架平台原有优良特性,对于.NETCore来说,跨平台这个目标并没有多少历史包袱。在开发.NETCore本身的过程中,开发团队很早就使用了持续集成的实践来保障代码针对多个平台的兼容能力。在开发进程中,团队同步维护多个示例项目,例如经典的MusicStore,及时回归核心特性、保障稳定性。从两年之前开始,就陆续有alpha、beta和RC版本发布出来,让开发者提前体验到新运行时的同时,也借助GitHub开源平台及早收到来自社区的监督和帮助。借助这些一系列的措施,.NETCore跨平台的能力有着充分的事实保障。 .NETCore是适应趋势的生产力平台新打造的.NETCore有一些关键特性,颇具吸引力。例如与特定操作系统无耦合,可编译为原生平台代码,运行效率极高;完全模块化,内置包管理器用于管理依赖项;提供完整而标准化的命令行工具集,与Docker等新近技术能无缝集成。它虽然是全新的开发平台,却直接使用C#这样的明星静态语言的最新版本作为开发语言,充分运用.NET平台十几年积累的设计理念,汲取过去数十年各种编程语言和开发模型中的精华,才最终锻炼成适用于下一代开发工作的新平台。 由于它是一项新兴的技术,过往的类库不能直接与它兼容。为了解决一开始应用这项技术可能存在的框架和类库缺乏的问题,在开发.NETCore框架的同时,微软还投入资源以开源的方式重写了大量开发框架和常用类库,比如ASP.NETMVC、EntityFramework等。不仅如此,微软还发布了一套面向非Windows环境的生态系统工具,包括跨平台的编辑器VisualStudioCode,高性能Web服务器Kestrel以及持续集成编译工具Cake等。从这些举动可以看出,微软在.NETCore上投入的诚意实在真挚可见。 在国外,不少开发者已经在积极响应.NETCore的路线,发布基于.NETCore的运行时的类库,提供兼容.NETCore的SDK等。常用的XUnit.net、Moq、Autofac、MongoDB和RavenDB等流行的类库和工具已经提供了对.NETCore的支持,或正在积极地开发新的版本。在国内.NETCore在社区中的交流学习也正在稳步铺开。很多开发人员已经着手文档翻译、源码学习,以及实践分享等工作。在博客园网站上已经出现不少关于.NETCore的文章,而在颇受北京治疗白癜风效果最好的医院得了白癜风要怎么治
|