#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS