本文由葡萄城技术团队于博客园原创并首发css
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前端
最新.Net Core 热词霸占了各个技术热搜,看来微软近年来发布的 .Net Core 仍是成功了引发了你们的热烈讨论。若是您对微软熟悉,确定是很了解.Net 平台,可是随着互联网的兴起,好像微软这个霸主的地位有所撼动。正则表达式
.NET Core 是.NET Framework的新一代版本,是微软开发的第一个跨平台 (Windows、Mac OSX、Linux) 的应用程序开发框架(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 操做系统上运行app
跨体系结构保持一致:在多个体系结构(包括 x6四、x86 和 ARM)上以相同的行为运行代码框架
命令行工具:包括可用于本地开发和持续集成方案中的易于使用的命令行工具。编辑器
部署灵活:能够包含在应用或已安装的并行(用户或系统范围安装)中。 可搭配 Docker 容器使用ide
兼容性: .NET Core 经过 .NET Standard 与 .NET Framework、Xamarin 和 Mono 兼容工具
开放源代码: .NET Core 平台是开放源代码,使用 MIT 和 Apache 2 许可证。 .NET Core 是一个 .NET Foundation 项目
强劲性能:超强的后台性能,超出.Net Framework
支持命令行执行全部操做
目前能够看到不少传统行业的信息系统也在逐渐升级平台,并且不少大的互联网公司也已经使用,毕竟一次开发便可实现跨平台的部署及应用,也是减小成本的重要体现。
能够肯定.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 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并不彻底支持全部现有的应用程序类型进行迁移,尤为是那些与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及其衍生技术和开发工具的需求,请访问葡萄城官网了解详情。