#author("2023-11-17T16:23:21+08:00","default:Admin","Admin") #author("2023-11-17T16:24:00+08:00","default:Admin","Admin") [[ASP.NET Core Web]] &color(red){※This article is based on .NET 7}; #contents * 【先上结论】移行的方案 [#v2c4178b] 个人倾向于将 Asp.net web form 移行为 Asp.net Core web api + 前端 的形式。 理由: - 后台业务逻辑部分的代码,大部分整理一下就可以留用。 - 微软官方意见将asp.net 移行为 ASP.NET Core Razor,但是 Razor 技术只在微软的范围内使用,感觉应用面比较窄。 - 个人觉得目前比较流行的前后端完全分离的模式(Vue、Typescript等)开发比较灵活。 - 在开发成本、开发人员招募方面比较占优势。 劣势在于: - 前端的代码,如果使用Vue、Typescript的话几乎接近重写。 - 采用html、jQuery的话,可以留用的代码还是比较多的,但是这种实现方式在技术方面就太落后了。 网上虽然有很多 .NET Framework 移行到 .NET 5的文章,但是普遍感觉不是简单的一两个周可以完成的工作。 * ASP.NET Core与ASP.NET对比 [#sd5d4f97] |ASP.NET Core|ASP.NET|h |针对 Windows、macOS 或 Linux 进行生成|针对 Windows 进行生成| |Razor 页面 是在 ASP.NET Core 2.x 及更高版本中创建 Web UI 时建议使用的方法。 另请参阅 MVCWeb API 和 SignalR。|使用 Web 窗体、SignalR、MVC、Web API、WebHooks 或网页| |每个计算机多个版本|每个计算机一个版本| |使用 C# 或 F# 通过 Visual Studio、Visual Studio for Mac 或 Visual Studio Code 进行开发|使用 C#、VB 或 F# 通过 Visual Studio 进行开发| |比 ASP.NET 性能更高|良好的性能| |选择 .NET Framework 或 .NET Core Runtime|使用 .NET Framework Runtime| * 移行的难点 [#yb3797e7] Asp.net 在.NET Framework 4.8以后不再支持了。(.NET Framework 也在4.8以后,原有的设计思想不再支持了,转变为.NET跨平台的技术路线) .NET5 以后版本对其称呼变为 Asp.net Core 和之前的 Asp.net 虽然名字接近,但是技术几乎不一样了。最大的区别在于 - 架构不同(跨平台设计) - Asp.net的会话、状态思想(Session、ViewState)消失了 -- Session考虑使用 JWT 或者 Request Cookie来代替。 -- Session信息保存在Cookie,然后通过Request的Header发送到服务器 -- Default值通过appsetting.json设置 - 前端(页面)的实现方式变了 - Library 的兼容性需要考虑 *移行参考文章 [#h493b76d] .netframework迁移到.netcore方法 https://blog.csdn.net/weixin_43180499/article/details/124033927 迁移到最新 .NET 的示例 https://learn.microsoft.com/zh-cn/dotnet/architecture/modernize-desktop/example-migration 如何将 Windows 窗体桌面应用升级到 .NET 7 https://learn.microsoft.com/zh-cn/dotnet/desktop/winforms/migration/?view=netdesktop-7.0&viewFallbackFrom=netdesktop-5.0 将 ASP.NET Framework Web Forms 应用升级到 ASP.NET Core MVC https://learn.microsoft.com/zh-cn/aspnet/core/migration/web_forms?view=aspnetcore-7.0 从 ASP.NET 到 ASP.NET Core 的增量迁移入门 https://learn.microsoft.com/zh-cn/aspnet/core/migration/inc/start?view=aspnetcore-7.0 .NetFramework类库迁移到.NetCore过程记录 https://blog.csdn.net/weixin_38138153/article/details/110403824 将传统 ASP.NET 应用迁移到 .NET Core https://blog.csdn.net/sD7O95O/article/details/83629248 .NET项目迁移到.NET Core操作指南 https://www.cnblogs.com/heyuquan/p/dotnet-migration-to-dotnetcore.html * 工具类 [#udd91fae] visual Studio的管理扩展中进行下载 NET Portability Analyzer visual Studio的管理扩展中进行下载 .NET Upgrade Assistant .NET Upgrade Assistant #hr(); Comment: #comment_kcaptcha