【.Net Core】我们应该从.NET Framework迁移到.NET Core吗?

每当一项新技术在企业间蔓延开来时,首席技术官们都会警惕这是否是下一个将占据该领域的重大事件。

.Net core已经存在一段时间了(2016年6月27日发布了.Net core 1.0)。它是作为一个免费的开源软件框架引入的,它将跨平台工作,而不仅仅是在windows上。但它并不是作为.NET框架的升级来销售的,而是一个独立的框架,它的实用程序补充了以前的功能。

.NET框架仍在使用中,上一次Visual Studio更新(4.7.2)已于2018年4月30日发布。

随着这两个框架的发展壮大,有一个问题围绕着一个人是应该迁移到.NET核心框架,还是继续使用现有的框架,如果它满足了我们所有的需求。

就.NET core而言,我们并不急于迁移。由于它是微软的发源地,我们假设最终必须迁移到.NET core。但这样做是必要的还是紧迫的。下面是一些功能,如果需要,您需要转到.NET Core。

跨平台

.NET在windows中的市场定位是-“.NET Core是.NET的跨平台版本,用于构建网站、服务和控制台应用程序”;跨平台兼容性是这里的关键词。如果您的应用程序需要在windows以外的多个平台上运行,那么.NET core是go-to平台,因为它兼容windows、Linux和Mac操作系统。

微服务和容器

微服务体系结构将应用程序构造为跨业务域建模的服务集合。每个服务可以是独立的、自包含的,并且可以基于单个框架。

微服务和容器齐头并进。微服务可以在单独的虚拟环境中工作,但容器有助于封装应用程序的运行时环境以及运行它所需的所有图形和文件。因此实现了应用程序的可移植性。由于它的轻量级特性,.NET核心是容器的完美合作伙伴。与Windows关联,.NET Framework中应用程序的大小比.NET Core中创建的应用程序的大小要大得多。在使用.NET Core时,可以同时部署Linux或Windows容器映像,从而使我们能够跨平台工作。Dockers是微服务市场上最常用的开源容器。

性能

与传统的.NET框架相比,.NET内核被认为是性能更好的,因为它提供了高性能的服务器运行时。当我们在使用云的同时跨系统工作时,可伸缩性就成了问题。中小企业的云本机现代化需要对现有软件进行重大改造。基于微服务的应用程序是云原生开发的核心。凭借其微服务和容器支持模型,.NET Core能够构建充分利用云计算体系结构的应用程序,从而提供性能的边际改进。

与以前的.NET版本兼容

考虑到您已经在各个应用程序的不同版本上使用.NET框架,.NET Core将为您提供所有.NET版本之间的兼容性。此外,它还提供了并行安装的便利,这将避免升级现有框架和应用程序的成本。

话虽如此,这里有一些.NET技术不可用或与.NET Core不兼容。

  • 特定于Windows的API:如果应用程序设计为与Windows注册表或WMI一起使用,则不可能与.NET Core一起使用,因为Core被认为是与底层操作系统隔离的。
  • 语言支持:尽管我们有VB和F#,据说它们与.NET Core兼容,但是有一些项目类型不支持它们。
  • 工作流相关服务:工作流服务和数据服务仅在.NET框架中可用。
  • Web窗体:ASP.NET Web窗体仅在.NET框架中可用。
  • 网页:ASP.NET网页不在.NET核心中。

从一个平台迁移到另一个平台需要成本,可能还需要对代码进行少量更改。记住这些差异,企业应该评估它们是否应该迁移到.NET。

迁移到任何平台都是一项需要由.NET开发公司无缝执行的工作,需要对以前平台上可用的服务进行完整的重新评估。在对技术合作伙伴进行评估的同时,确保在评估过程中有一个合格的专家团队参与。

 

原文:https://www.clariontech.com/blog/should-we-migrate-from-.net-framework-to-.net-core

本文:http://jiagoushi.pro/node/1054

讨论:请加入知识星球【首席架构师圈】或者加小编【jiagoushi_pro】