.Net Core 会逆袭成为最受欢迎开发平台吗?

本文由葡萄城技术团队于博客园原创并首发

转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

.Net Core 是什么?

最新.Net Core 热词霸占了各个技术热搜,看来微软近年来发布的 .Net Core 还是成功了引起了大家的热烈讨论。如果您对微软熟悉,肯定是很了解.Net 平台,但是随着互联网的兴起,好像微软这个霸主的地位有所撼动。

 

.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (WindowsMac OSXLinux) 的应用程序开发框架(Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台。.Net Core也是微软在一开始发展时就开源的软件平台[1],由于 .NET Core 的开发目标是跨平台的因此 .NET Core 会包含 .NET Framework 的类别库,但与 .NET Framework 不同的是 .NET Core 采用包化 (Packages) 的管理方式,应用程序只需要获取需要的组件即可,与 .NET Framework 大包式安装的作法截然不同,同时各包亦有独立的版本线 (Version line),不再硬性要求应用程序跟随主线版本。

 

重点来啦:

  • 跨平台:可在 Windows、macOS 和 Linux 操作系统上运行
  • 跨体系结构保持一致:在多个体系结构(包括 x64、x86 和 ARM)上以相同的行为运行代码
  • 命令行工具:包括可用于本地开发和持续集成方案中的易于使用的命令行工具。
  • 部署灵活:可以包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配 Docker 容器使用
  • 兼容性: .NET Core 通过 .NET Standard 与 .NET Framework、Xamarin 和 Mono 兼容
  • 开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目
  • 强劲性能:超强的后台性能,超出.Net Framework
  • 支持命令行执行所有操作

 

.Net Core 当前的现状是什么

目前可以看到很多传统行业的信息系统也在逐渐升级平台,而且很多大的互联网公司也已经使用,毕竟一次开发即可实现跨平台的部署及应用,也是减少成本的重要体现。

 

可以确定.Net Core 是未来的发展趋势。 .Net FrameWork也会延续使用,毕竟短期内迁移一些大型项目是很有难度的,而且也不太可能。.Net Core 和.Net FrameWork 的关系就如同是新能源汽车和传统稳定的油耗汽车。油耗汽车已经经历了多年的发展,技术非常成熟稳定,可以放心自由的使用。而新能源汽车是一个新兴的技术,也是未来将要取待传统技术的未来发展方向,所以使用.Net Core 开发项目必须越早越好。

 

.Net Core 与. Net FrameWork 对比:

.NET Core

.NET Framework

跨平台 (OS platform): 支持Windows, Linux, 及 macOS

仅支持在 Windows运行

安装过程是独立,端对端,可以在同一计算器中为应用程序指定独立的.Net Core 版本。

一台计算机上的所有应用程序都在同一.NET Framework版本上运行

高性能:在集合,数学,正则表达式,字符串,文件等方面都有提升。.

高兼容性

开源: 基于.NET平台既可以根据 MIT或 Apache 2 授权

与最广泛的NuGet软件包,第三方库和内部库兼容

v2.0 实现了.NET Standard 2.0¹

v4.6.1+ 以上版本支持s .NET Standard 2.0

 

使用.Net Core 优势:

1. 支持在任何平台部署,跨平台几乎没有任何成本

2. 庞大的.Net 标准库支持

3. 面向高性能的服务器开发,基于 微软 Azure云的平台优势,已提供高性能的服务。

4. 高性能和可移植性

5. 兼容多平台

 

如何平滑的迁移项目至.Net Core 平台

很多原有的项目是基于.Net FrameWork 开发的,可能是 Windows. WPF, ASP.NET MVC,那本身的局限是只能在Windows系统部署外,还涉及到一些核心功能的实现。传统框架的种种不足,需要大的突破和改变。这意味着打破变化,但结果是值得期待的。

 

迁移原有项目到新的.Net Core 平台意味着你可以保留旧项目的所有核心业务功能,不需要重构整个项目,从0开始开发。以下是我们根据经验给出了几类的应用的迁移难度。

项目类型

迁移难易程度

Web 应用: ASP.NET MVC

简单

WebForm 应用

不建议迁移,因为.Net Core 支持 WebForm

Windows 应用 (Universal Framework)

不需要迁移

Windows 应用(基于Sliverlight)

简单

WPF 及WinForms 桌面应用

复杂

控制台应用

简单

 

1. 迁移还是重构

如果针对前端项目,迁移是最佳选择,毕竟前端代码均可复用,唯一要改动的就是后端代码。尽管.Net Core 和.Net Frame Work 项目都是基于C# 语言做开发的,然而两者是不同的运行机制。所以如果是后端很重的项目,还是建议重写,这样也会利用一些新技术的优势。

 

2. NuGet 包

在迁移之前,需要确认引用的.Net 标准库是否在.Net Core中支持或丢弃,如果不支持的话,就需要考虑如何用新的包代替或者当前功能的重构。

.Net 标准包是在.Net 4.6.1 和.Net Core 中都可使用的,所以只需要可以使用该技术升级旧的PCL。如果你添加了.Net 标准库的引用,同样也可以在.Net Core 项目中使用。

 

3. Html / JavaScript / CSS 复用

可以将这些文件直接复制到.NET Core解决方案中。 但是,请确保更改代码中的文件路径,例如CSS中的图像路径。 因为经典的ASP.NET / MVC模板使用“ / Content /”目录,而.NET Core使用“ / css /”,“ / js /”,“ / lib /”等。对此没有任何限制,它们只是约定而已 。

 

如何选择.Net Core 的开发工具

在开发项目时候,新的平台和技术总是带给你项目的一些新的重大突破功能,比如性能,比如核心功能提升,所以不仅我们的项目要一直跟随升级,我们所选择的开发工具,也要紧跟技术前沿,甚至要领先于我们的项目升级进度,为我们开发项目始终提供最有力的技术支持。

 

.NET Core是多平台应用程序的未来。 如我们所见,.NET Core提供了传统框架不支持的强大的本机新功能。 另一方面,.NET Core并不完全支持所有现有的应用程序类型进行迁移,尤其是那些与Windows OS紧密集成的应用程序类型,因此必须仔细考虑并计划这些挑战。

 

所以我们在选择新平台的同时,也需要考虑一些辅助开发的工具。以及这些工具在该领域的技术背景,是否足够稳定,是否有足够明确的未来,甚至比我们更能预先跟踪未来的技术栈,以始终在我们迁移新项目的时候提供辅助工具。

 

这里推介一些支持.Net Core 平台的开发控件:

  • API Protability Tool。这是一款辅助.net开发者在不同的开发框架上迁移源代码工程的静态代码审查工具。由于.net framework具有多个历史版本,并且.net core以及Xamarin等开发框架在基础类库中实现API数量和类型有很多的不一致情况。.net开发者想把自身源代码升级到更高的.net版本或者迁移到其他的.net开发框架上,会面临很多API调用不兼容的问题。该工具就是帮助.net开发者审查.net项目的源代码,并生成审查报告,快速帮助开发人员找到不兼容代码行以及协助评估迁移工作量。
  • PostMan,Postman是一款支持跨平台的应用程序,用来帮助开发者快速构建和测试REST API 服务。Postman可以模拟HTTP请求的所有谓词,用于REST API的测试。
  • Visual Studio Code , Visual Studio Code是跨操作系统平台的轻量级代码编辑器。支持绝大多数主流语言编译和调试的能力。

 

综上所述,无论从其性能和生态上预测,.NET Core 都极有可能成为最受欢迎的开发平台,不过,当前国内仅有腾讯、阿里等厂家愿意试水,葡萄城作为一家具备30多年开发经验的软件厂商,同样也在持续对.NET控件进行更新迭代。

如果您有 .NET Core及其衍生技术和开发工具的需求,请访问葡萄城官网了解详情。