asp.net - 何时从 Asp.net 迁移到 Asp.net Core
问题描述
背景:
我想就将我们的应用程序从现有的 Dotnet 框架升级到 Dotnet Core 做出明智的决定。
该应用程序是托管在 IIS 上的基于 Asp.net 的应用程序。
FA应用的当前应用项目结构:
FA解决方案
- FA.Utility - Dotnet 框架 4.5
- FA.Service - Dotnet 框架 4.5(取决于 FA.Utility)
- FA.Website - Asp.net MVC Dotnet 框架 4.7(取决于 FA.Service)
应用程序的生命周期:可预见的未来。这个想法是不断升级应用程序。
我想达到什么目标?
技术升级愿望清单: - 完全包含的 CI - 在 Azure/AWS 中托管应用程序 - 公开 Web api 端点
情景一:
FA解决方案
- FA.Utility - Dotnet 框架 4.5
- FA.Service - Dotnet 核心(取决于 FA.Utility)
- FA.Website - Asp Dotnet 核心(取决于 FA.Service)
场景 B:
FA解决方案
- FA.Utility - Dotnet 核心
- FA.Service - Dotnet 框架 4.5(取决于 FA.Utility)
- FA.Website - Asp Dotnet 核心(取决于 FA.Service)
问题:
- 是否值得升级到 .net 核心,为什么?
- 我应该一次升级所有上述三个项目以针对 Dotnet 核心吗?
- 例如,“FA.Utility”正在引用第三方库。这会在升级过程中引起问题吗?
- 这两个框架能否在场景 A 和场景 B 的生产环境中共存,如果可以,您能预见到任何问题吗?
解决方案
回答您的第一个问题“是否值得升级到 .net 核心,为什么?”
Microsoft 维护使用 .NET 构建应用程序的运行时,并且它们共享许多相同的 API。这个共享 API 就是所谓的 .NETStandard。
.NET Core 用于创建在 Windows、Linux 和 Mac 上运行的服务器应用程序。它目前不支持创建带有用户界面的桌面应用程序。
开发人员应在何时使用 .NET Core
一个跨平台的开源框架,可用于在任何平台上开发应用程序。它通常用于云应用程序或将大型企业应用程序重构为微服务。
你应该什么时候使用它?什么时候..
有跨平台需求。当应用程序需要跨多个平台(如 Windows、Linux 和 macOS)运行时使用它。这些操作系统被支持作为开发工作站(支持的操作系统列表正在增长):
- Visual Studio 可以在 macOS 上使用新的受限版本在 Windows 上使用。
- Visual Studio Code 可以在 Windows、Linux 和 macOS 上使用。
- 命令行可以在所有支持的平台上使用。
正在使用微服务。
使用 Docker 容器时。
如果您有高性能和可扩展的系统需求。
如果您同时运行多个 .NET 版本。
如果您想要命令行界面 (CLI) 控制。
第二个问题“我应该同时升级以上三个项目以针对 Dotnet 核心吗?”
在我看来,如果平台在不断发展并且将来会出现,请在 dot net core 中升级您的所有应用程序。
第三个问题“例如'FA.Utility'正在引用第三方库。这会在升级过程中引起问题吗?”
由于dot net core正在升级和发展,可能不支持第三方库,所以在确定dot net core支持第三方库的情况下升级FA.Utility项目。
第四个问题“场景A和场景B这两个框架能否在生产中共存,如果可以的话,你能预见到任何问题吗?”
是的,它可以共存。
希望能帮助到你。
推荐阅读
- github - nulInCommit: NUL byte in the commit object body
- gcc - 制作依赖关系:使用 gcc 跳过供应商和包头?
- php - 获取帖子作者图片 - Wordpress
- java - 如果不是以管理员身份运行,cmd 无法识别 Java 命令
- summary - BlueSKy 摘要数值统计分析
- javascript - 使用矩js计算数组中所有对象的所有持续时间的总和
- android - 如何在 ScrollView 上显示滚动条?
- bash - 链码参数错误:JSON 输入意外结束
- c# - 我如何处理 C# 中的 Ping 异常
- github - GraphQL | 我们可以使用指令在 GitHub GraphQL API 中通过编程语言实现搜索吗?