Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
何时从Asp.net迁移到Asp.net核心_Asp.net_.net_Azure_Asp.net Core_Architecture - Fatal编程技术网

何时从Asp.net迁移到Asp.net核心

何时从Asp.net迁移到Asp.net核心,asp.net,.net,azure,asp.net-core,architecture,Asp.net,.net,Azure,Asp.net Core,Architecture,背景: 我想做出一个明智的决定,将我们的应用程序从现有的Dotnet框架升级到Dotnet核心 该应用程序是托管在IIS上的基于Asp.net的应用程序 FA应用程序的当前应用程序项目结构: 法解 FA.Utility-dotnetframework4.5 FA.Service-dotnetframework4.5(取决于FA.Utility) 网站-Asp.net MVC Dotnet framework 4.7(取决于FA.Service) 应用程序的生命周期:可预见的未来。想法是不断升

背景:

我想做出一个明智的决定,将我们的应用程序从现有的Dotnet框架升级到Dotnet核心

该应用程序是托管在IIS上的基于Asp.net的应用程序

FA应用程序的当前应用程序项目结构:

法解

  • FA.Utility-dotnetframework4.5
  • FA.Service-dotnetframework4.5(取决于FA.Utility)
  • 网站-Asp.net MVC Dotnet framework 4.7(取决于FA.Service)
应用程序的生命周期:可预见的未来。想法是不断升级应用程序

我想得到什么

技术升级愿望清单: -完全容器化CI -在Azure/AWS中托管应用程序 -公开web api端点

情景A:

法解

  • FA.Utility-dotnetframework4.5
  • FA.Service-Dotnet核心(取决于FA.Utility)
  • 网站-Asp Dotnet核心(取决于FA.Service)
情景B:

法解

  • FA.实用程序-Dotnet核心
  • FA.Service-dotnetframework4.5(取决于FA.Utility)
  • 网站-Asp Dotnet核心(取决于FA.Service)
问题:

  • 是否值得升级到.net core?为什么
  • 我是否应该立即将上述三个项目升级到target Dotnet core
  • 例如,“FA.Utility”引用的是第三方库。这是否会导致升级过程中出现问题
  • 对于场景A和场景B,这两个框架能否在生产中共存?如果是,您能否预见任何问题

  • 回答您的第一个问题“是否值得升级到.NETCore?为什么?”

    Microsoft为使用.NET构建应用程序维护这两个运行时,并且它们共享许多相同的API。这个共享API被称为.NETStandard

    .NETCore用于创建在Windows、Linux和Mac上运行的服务器应用程序。它目前不支持使用用户界面创建桌面应用程序

    开发人员应在以下情况下使用.NET内核:

    它是一个跨平台的开源框架,可用于在任何平台上开发应用程序。它通常用于云应用程序或将大型企业应用程序重构为微服务

    你应该什么时候使用它?当

  • 有跨平台的需求。当应用程序需要跨多个平台(如Windows、Linux和macOS)运行时,请使用它。这些操作系统作为开发工作站得到支持(受支持的操作系统列表正在增加):

    • Visual Studio可以在Windows上使用,在macOS上使用新的受限版本
    • Visual Studio代码可以在Windows、Linux和macOS上使用
    • 命令行可以在所有受支持的平台上使用
  • 微服务正在被使用

  • 使用Docker容器时

  • 如果您有高性能和可扩展的系统需求

  • 如果您同时运行多个.NET版本

  • 如果需要命令行界面(CLI)控制

  • 第二个问题“我是否应该立即将上述三个项目升级到目标Dotnet core?”

    在我看来,如果这个平台在不断发展,并且将来也会存在,那么请升级您在dot net core中的所有应用程序

    第三个问题“'FA.Utility'例如引用了第三方库。这会在升级过程中导致问题吗?”

    由于dot net core正在升级和发展,它可能不支持第三方库,因此,当您确定dot net core支持第三方库时,请升级FA.Utility项目

    第四个问题“对于场景A和场景B,这两个框架能否在生产中共存,如果共存,您能否预见任何问题?”

    是的,它可以共存


    希望有帮助。

    如果你想在你的解决方案中混合技术栈,你需要考虑dotnet标准库,以便能够在.NETFramework和.Net核心应用程序中引用它们。至于依赖关系,如果它们没有.Net核心的构建,则可能会导致问题;根据我个人的经验,不要为不可执行的代码创建.net核心项目,如dll/库、目标dot net标准。