作为一种全新的开源和跨平台的开发平台,.NET Core 历经两年多的开发,终于在于2016年6月27日针对所有主流服务器和桌面操作系统发布 1.0 RTM 版本。.NET Core 是一种通用开发平台,它包含了自动内存管理和现代化高级开发语言等重要特性,这些都能让面向多个平台开发静态类型的高质量应用程序变得轻松。.NET Core 本身采用 MIT 协议开源,因此可以免费用于各种类型的商业和闭源项目。

全新的 .NET Core

不同于内置于 Windows 系列操作系统上的 .NET 框架,.NET Core 是微软从 2014 年初启动新开发的一项技术,它与此前的 .NET 框架是不能直接兼容的。此外,与此前 .NET 的框架之间更显著的不同可能是, .NET Core 的完全开源,以及跨平台的能力。

.NET Core 是开源和跨平台的


.NET Core 本身的开发工作是基于开源项目代码大本营 GitHub 网站的,.NET Core 核心的代码都采用了 MIT 授权协议,也有少数项目采用了 Apache 协议。在前不久的“微软开发者论坛”活动现场,针对笔者提出的 .NET Core 开源理念的询问,微软开发工具事业部副总裁潘正磊女士回答说“它一开始就被设计为开源的”,这一理念很真诚地表达了 .NET Core 开源的决心,在过去两年多时间以内,核心开发团队也以行动证实了这一点。在 GitHub 上,与 .NET Core 相关的代码库有一百来个,分布在多个账户中。来自世界各地、包括中国的大量开发者都参与了 .NET Core 的开发过程:开发团队会每周与社区跟进进度、讨论计划,随时在线上回答其他开发者的提问,合并其他开发者贡献的代码。笔者也有幸见证这一过程,并实际参与到其中几个项目的贡献中。

跨平台的说法,在各种开发技术上一直以来饱受争议。从前,人们提出“编写一次,到处运行”的理念到最后变成“编写一次,到处调试”的笑话。以至于现在一提跨平台,大家都持一种怀疑的态度。事实上,对跨平台的需求是真实存在的:我们使用 Windows 或 macOS 从事开发工作,而使用 Linux 系统作为服务器环境;我们开发一套运行在服务器上的软件产品,希望将服务器平台的选择自由留给客户……因此对于现代化的轻量级开发技术栈而言,跨平台也成为一个基本要素。典型的轻量级开发平台大多是基于动态语言的,比如 PHP、Python 或 Node.js,这类动态语言正是由于“动态语言”的特性,在一些场合显得过于灵活、难以掌控,在工程的内建质量和开发效率上取得平衡并不容易。

开源跨平台的 .NET Core

C# 这样的静态语言有着严谨的语法和完善的类型体系,新构建的 .NET Core 继承了 .NET 框架平台原有优良特性,对于 .NET Core 来说,跨平台这个目标并没有多少历史包袱。在开发 .NET Core 本身的过程中,开发团队很早就使用了持续集成的实践来保障代码针对多个平台的兼容能力。在开发进程中,团队同步维护多个示例项目,例如经典的 MusicStore,及时回归核心特性、保障稳定性。从两年之前开始,就陆续有 alpha、beta 和 RC 版本发布出来,让开发者提前体验到新运行时的同时,也借助 GitHub 开源平台及早收到来自社区的监督和帮助。借助这些一系列的措施,.NET Core 跨平台的能力有着充分的事实保障。

.NET Core 是适应趋势的生产力平台


新打造的 .NET Core 有一些关键特性,颇具吸引力。例如与特定操作系统无耦合,可编译为原生平台代码,运行效率极高;完全模块化, 内置包管理器用于管理依赖项;提供完整而标准化的命令行工具集,与 Docker 等新近技术能无缝集成。它虽然是全新的开发平台,却直接使用 C# 这样的明星静态语言的最新版本作为开发语言,充分运用 .NET 平台十几年积累的设计理念,汲取过去数十年各种编程语言和开发模型中的精华,才最终锻炼成适用于下一代开发工作的新平台。

由于它是一项新兴的技术,过往的类库不能直接与它兼容。为了解决一开始应用这项技术可能存在的框架和类库缺乏的问题,在开发 .NET Core 框架的同时,微软还投入资源以开源的方式重写了大量开发框架和常用类库,比如 ASP.NET MVC、EntityFramework 等。不仅如此,微软还发布了一套面向非 Windows 环境的生态系统工具,包括跨平台的编辑器 Visual Studio Code,高性能 Web 服务器 Kestrel 以及持续集成编译工具 Cake 等。从这些举动可以看出,微软在 .NET Core 上投入的诚意实在真挚可见。

在国外,不少开发者已经在积极响应 .NET Core 的路线,发布基于 .NET Core 的运行时的类库,提供兼容 .NET Core 的 SDK 等。常用的XUnit.net、Moq、Autofac、MongoDB 和 RavenDB 等流行的类库和工具已经提供了对 .NET Core 的支持,或正在积极地开发新的版本。在国内 .NET Core 在社区中的交流学习也正在稳步铺开。很多开发人员已经着手文档翻译、源码学习,以及实践分享等工作。在博客园网站上已经出现不少关于 .NET Core 的文章,而在颇受关注的公众账号“.NET 跨平台”中,也已经发布了与 .NET Core 相关的文章。这些都预示着一个重要的新平台的来临,而且 .NET Core 这项新技术的成长一定是与社区合作密不可分的。

展望


软件工程在走过了野蛮生长,到达了基于云的互联网产业形态日趋成熟的今天,开发技术的发展已经从现实中收获了不少经验。从活跃的 Web 开发技术的发展足以反映出开发者对新技术的向往了。然而在大谈了 B/S 架构十余年之后的今天向回看,服务器端的基础开发技术在过去的五年、十年乃至更久的时间之内,并没有发生大的改善。新入门的开发者,仍然走着上一代开发者的老路,一步一步摸着石头过河——在网上搜索着上一代人写下的伴随他们成长留下的严重过时、版本错乱,甚至漏洞百出的文章和贴子,似乎津津有味,却是迷惑不解。

我们都需要新技术,那种能让新一代开发者认为“属于这个时代,并且面向未来”的新技术。请相信,.NET Core 就是你期待的那个新技术。它刚刚产生,却已胸怀古今,诗与远方唾手可得!

相关文章:

  • ASP.NET Core 1.0 入门——了解一个空项目

  • ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

  • .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介

  • 云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)

  • 使用VS Code开发ASP.NET Core 应用程序

  • dotnet run是如何启动asp.net core站点的

  • ASP.NET Core提供模块化Middleware组件

  • “dotnet restore"和"dotnet run"都做了些什么?

  • 探秘 dotnet run 如何运行 .NET Core 应用程序

  • .NET Portability Analyzer 已开源

  • ASP.NET Core的配置(1):读取配置信息

  • ASP.NET Core的配置(2):配置模型详解

  • .NET Core 1.0 RC2 历险之旅

  • 使用VS Code开发 调试.NET Core 应用程序

  • 让我们Core在一起:ASP.NET Core & .NET Core

  • .NET Core VS Code 环境配置

  • 官方博客明确了 .NET Core RC2/RTM 时间表

  • .NET Core全新的配置管理[共9篇]

  • 利用记事本创建一个ASP.NET Core RC2 MVC应用

  • 微软.NET 正式劈腿成功,横跨所有平台

  • .NET Core 1.0 CentOS7 尝试

  • 解读发布:.NET Core RC2 and .NET Core SDK Preview 1

  • [.NET Core].NET Core R2安装及示例教程

  • ASP.NET Core 开发-中间件(Middleware)

  • 结合Jexus + Kestrel 部署 asp.net core 生产环境

  • 通过Jexus 部署 dotnetcore版本MusicStore 示例程序

  • ASP.NET Core 中文文档 第一章 入门

  • 用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序

  • 用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API

  • 用 Visual Studio 发布一个 Azure 云 Web 应用程序

  • ASP.NET Core MVC 与 Visual Studio 入门

  • 第二章指南(4.2)添加 Controller

  • DotNet Core 介绍

  • asp.net core 中间件详解及项目实战

  • 教你实践ASP.NET Core Authorization(免看文档教程)

  • asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存

  • asp.net core 中间件详解及项目实战

  • 第二章 指南(4.3)添加 View

  • dotnet core开发体验之开始MVC

  • dotnet core 开发体验之Routing

  • 聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer

  • 简析.NET Core 以及与 .NET Framework的关系

  • .NET Core 使用Dapper 操作MySQL

  • 使用 CommandLineApplication 类创建专业的控制台程序

  • 简析 .NET Core 构成体系

  • .NET Core也可以使用MongoDB了

  • .NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布

原文地址:http://www.jianshu.com/p/bfe0b6afcc11


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

.NET Core:面向未来的开源跨平台开发技术相关推荐

  1. 面向未来的跨界开发技术(下)

    作者简介:余果,腾讯社交用户体验设计部高级UI工程师,前端开发组负责人,UI开发通道评委,腾讯云特邀布道师,<Web全栈工程师的自我修养>作者 在上一篇文章中,我们定义了"未来& ...

  2. 跨平台开发技术年终盘点

    一直以来,效率都是互联网企业的生命线.而"通过技术升级实现三个人干五个人的活,赚四个人的工资"是企业和个人一直渴望达到的双赢局面. 随着行业竞争加剧,为进一步提升开发效率,跨平台开 ...

  3. 日本面向未来的特定科技领域技术预见分析

    作者:王达,中国科协创新战略研究院 本文转载自微信公众号科学家,原载于<今日科苑>2020年第5期 目前,全球面临的环境.人口变化.资源.粮食和能源安全等问题亟待解决,先进的测量技术与信息 ...

  4. 原生革命--跨平台开发技术解析

    这篇文章,我将着重分析当前主流跨平台开发解决方案(偏架构)如Flutter.RN.Weex.Hybrid App,并对新晋跨端解决方案Fusion和Chameleon做一些分析,在传统原生开发不断被唱 ...

  5. .NET Core 首例 Office 开源跨平台组件(NPOI Core)

    前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...

  6. .NET Core 1.0发布:微软开源跨平台大布局序幕

    在6月27日的红帽DevNation峰会上,微软正式发布了.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,这些产品将全部支持Windows.OS ...

  7. 【新书推荐】《微软开源跨平台移动开发实践》带你走近微软开源开源跨平台技术

    上周收到本书作者李争送的一本12月份的新书<微软开源跨平台移动开发实践--利用ASP.NET Core 1.0 .Apache Cordova.Xamarin和Azure快速构建移动应用解决方案 ...

  8. [ASP.NET Core 3框架揭秘] 跨平台开发体验: Mac OS

    除了微软自家的Windows平台, .NET Core针对Mac OS以及各种Linux Distribution(RHEL.Ubuntu.Debian.Fedora.CentOS和SUSE等)都提供 ...

  9. 关于跨平台开发的方案路线选择?来看看flutter、rn和uni-app方案的比较吧

    本文是转载于DCloud社区里开源作者DCloud_heavensoft 一篇关于对跨平台开发技术路线方案比较的文章,分别对现今较为热门的跨平台方案flutter.react native.uni-a ...

最新文章

  1. rust8G内存够不够用_多线程?怎么用?
  2. Aizu - 0033 Ball
  3. Spring AOP讲解(Pointcut、Before、Around、AfterReturning、After)
  4. 那些数学不好的程序员?最后都如何了(文末送书)
  5. Android项目目录结构
  6. IOS 开发中 Whose view is not in the window hierarchy 错误的解决办法
  7. python用pip安装wordcloud_如何在python3.7中使用pip安装wordcloud
  8. sql注入mysql判断_sql注入笔记二——数据库信息判断
  9. Linux下的iscsi(设备的共享服务)
  10. OpenCV-图像处理(31、图像矩(Image Moments))
  11. java数字时钟_java Swing数字时钟
  12. Dispatch(01)
  13. Unity小地图的实现
  14. 即拼商城系统模式开发
  15. 进大厂必备的Java八股文大全(2022最强精简易懂版)
  16. 计算机无法ghost安装系统安装系统安装,电脑中无法安装VMware虚拟机Ghost系统的解决方法...
  17. DEMOS和LDMOS的区别
  18. pandas进阶用法(一)筛选条件、多重索引、缺失值
  19. 蓝牙协议分析(11)_BLE安全机制之Security Manager
  20. 2018:寒冬下的温暖

热门文章

  1. oslo.config资源
  2. CentOS中vsftp安装、配置、卸载
  3. AIX逻辑卷管理(LVM)
  4. 采用开源软件搭建WebGIS系统(6)数据格式
  5. YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
  6. 【另类见解】那些要保证缓存和数据库数据一致性的最后怎么了?
  7. 在 Ubuntu 上安装 .NET SDK 或 .NET 运行时
  8. Microsoft宣布将停止支持多个 .NET Framework版本
  9. NET问答:什么场景下应该选择 struct 而不是 class ?
  10. “开源、共享、创新” 2020 中国.NET开发者大会小结