机场网站源码分享 机场网页

其实机场网站源码分享的问题并不复杂,但是又很多的朋友都不太了解机场网页,因此呢,今天小编就来为大家分享机场网站源码分享的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本系列技术大约30篇文章,欢迎关注、点赞、评论、转发,每天都能获取IT优质内容。

本文讲解了在将代码从.NETFramework移植到.NET(旧称为.NETCore)时应考虑的事项。对于许多项目,从.NETFramework移植到.NET是相对简单的。项目的复杂性决定了在项目文件的初始迁移之后要做多少工作。

应用模型在.NET中可用的项目(如库、控制台应用和桌面应用)通常不需要太大的更改。需要使用新应用模型的项目(如从ASP.NET迁移到ASP.NETCore)需要的工作要多一点。旧应用模型中的很多模式都有可以在转换过程中使用的等效项。

不可用的技术

.NETFramework中有一些技术在.NET中是不存在:

应用程序域不支持创建额外应用程序域。对于代码隔离,将流程或容器用作备用。远程处理远程处理用于跨不再受支持的应用程序域进行通信。对于跨进程通信,可将进程间通信(IPC)机制视为远程处理的备用方案,如System.IO.Pipes类或MemoryMappedFile类。代码访问安全性(CAS)CAS是受.NETFramework支持、但在.NETFramework4.0中已停用的沙盒技术。它已被SecurityTransparency取代,并且在.NET中不受支持。请改用操作系统提供的安全边界,如虚拟化、容器或用户帐户。安全透明度与CAS类似,这种沙盒技术不再被推荐用于.NETFramework应用程序,而且在.NET中也不受支持。请改用操作系统提供的安全边界,如虚拟化、容器或用户帐户。System.EnterpriseServices.NET不支持System.EnterpriseServices(COM+)。WindowsWorkflowFoundation(WF)和WindowsCommunicationFoundation(WCF).NET5及更高版本(包括.NETCore)不支持WF和WCF。有关替代方法,请参阅CoreWF和CoreWCF。

若要详细了解这些不受支持的技术,请参阅.NETFramework技术在.NETCore和.NET5及更高版本上不可用。

Windows桌面技术

许多为.NETFramework创建的应用程序都使用桌面技术,如Windows窗体或WindowsPresentationFoundation(WPF)。虽然Windows窗体和WPF均已移植到.NET中,但这些仍是仅适用于Windows的技术。

在迁移Windows窗体或WPF应用程序之前,请先考虑以下依赖项:

适用于.NET的项目文件使用与.NETFramework不同的格式。你的项目可能会使用在.NET中不可用的API。第三方控件和库可能还没有移植到.NET中,仍只对.NETFramework可用。你的项目使用在.NET中不再可用的技术。

.NET使用Windows窗体和WPF的开放源代码版本,并对.NETFramework进行了增强。

有关将桌面应用程序迁移到.NET5的教程,请参阅以下文章之一:

将.NETFrameworkWPF应用迁移到.NET将.NETFrameworkWindows窗体应用迁移到.NET

特定于Windows的API

应用程序仍可以在.NET支持的平台上对本机库进行平台调用。这项技术并不仅限于Windows。但是,如果你引用的库是特定于Windows的(如user32.dll或kernal32.dll),那么代码只能在Windows上正常运行。对于想要在其上运行应用的每个平台,你都必须查找特定于平台的版本,或者让你的代码足够通用以在所有平台上运行。

当将应用程序从.NETFramework移植到.NET时,应用程序可能使用了随.NETFramework一起分发的库。许多在.NETFramework中可用的API都没有移植到.NET中,因为它们依赖特定于Windows的技术,如WindowsRegistry或GDI+绘图模型。

WindowsCompatibilityPack为.NET提供了大部分的.NETFrameworkAPI面,并通过Microsoft.Windows.CompatibilityNuGet包提供。

有关详细信息,请参阅使用WindowsCompatibilityPack将代码移植到.NET中。

.NETFramework兼容性模式

.NETFramework兼容性模式是在.NETStandard2.0中引入的。使用此兼容性模式,.NETStandard和.NET5及更高版本(以及.NETCore3.1)项目可以在仅适用于Windows的情况下引用.NETFramework库。引用.NETFramework库不适用于所有项目(如库使用WindowsPresentationFoundation(WPF)API时),但它的开启了很多移植方案。有关详细信息,请参阅分析依赖项以将代码从.NETFramework移植到.NET中。

跨平台

.NET(旧称为.NETCore)是为跨平台而设计的。如果代码不依赖特定于Windows的技术,那么它可以在macOS、Linux和Android等其他平台上运行。这包括如下项目类型:

库基于控制台的工具自动化ASP.NET站点

.NETFramework是仅适用于Windows的组件。当代码使用特定于Windows的技术或API(如Windows窗体和WindowsPresentationFoundation(WPF))时,代码仍可以在.NET上运行,但不能在其他操作系统上运行。

库或基于控制台的应用程序不需要太多更改就可以跨平台使用。当移植到.NET时,可能需要考虑这一点,并在其他平台上测试应用程序。

.NETStandard的未来

.NETStandard是针对多个.NET实现推出的一套正式的.NETAPI规范。推出.NETStandard的背后动机是要提高.NET生态系统中的一致性。自.NET5起,采用了一种不同的方法来建立一致性;使用这种新方法,在很多情况下,都不需要使用.NETStandard。有关详细信息,请参阅.NET5和.NETStandard。

.NETStandard2.0是支持.NETFramework的最后一个版本。

移植辅助工具

可以使用不同的工具来帮助自动执行迁移的某些方面,而不是将应用程序从.NETFramework手动移植到.NET中。移植复杂的项目本身就是一个复杂的过程。这些工具可能在此过程中有所帮助。

即使你使用工具来帮助移植应用程序,也应查阅本文中的“移植时的注意事项”部分。

.NET升级助手

.NET升级助手是一款可以在不同类型的.NETFramework应用上运行的命令行工具。它旨在帮助将.NETFramework应用升级到.NET5。在运行此工具后,大多数情况下,应用将需要更多操作才能完成迁移。此工具会安装可以帮助完成迁移的分析器。此工具适用于以下类型的.NETFramework应用程序:

Windows窗体WPFASP.NETMVC控制台类库

此工具使用本文中列出的其他工具,并指导迁移过程。若要详细了解此工具,请参阅.NET升级助手概述。

try-convert

try-convert工具是一款.NET全局工具,可用于将项目或整个解决方案转换为.NETSDK,包括将桌面应用迁移到.NET5。但是,如果你的项目有复杂的生成进程(如自定义任务、目标或导入),则不建议使用此工具。

有关详细信息,请参阅try-convertGitHub存储库。

.NET可移植性分析器

.NET可移植性分析器是一种工具,可分析程序集并为应用程序或库提供有关缺失的.NETAPI的详细报告,以便在指定的目标.NET平台上实现可移植性。

若要使用VisualStudio中的.NET可移植性分析器,请从市场中安装此扩展。

有关详细信息,请参阅.NET可移植性分析器。

平台兼容性分析器

平台兼容性分析器分析你是否在使用将会在运行时抛出PlatformNotSupportedException的API。尽管这并不常见,但如果从.NETFramework4.7.2或更高版本进行移动,最好进行检查。若要详细了解会在.NET上抛出异常的API,请参阅始终在.NETCore上抛出异常的API。

有关详细信息,请参阅平台兼容性分析器。

移植时的注意事项

将应用程序移植到.NET时,请按顺序考虑以下建议。

??考虑使用.NET升级助手来迁移项目。尽管此工具处于预览阶段,但它自动执行本文中详细介绍的大部分手动步骤,并为你继续迁移路径提供了一个很好的起点。

??考虑先检查依赖项。依赖项必须定目标到.NET5、.NETStandard或.NETCore。

??务必从NuGetpackages.config文件迁移到项目文件中的PackageReference设置。使用VisualStudio转换package.config文件。

??考虑升级到最新的项目文件格式,即使你还不能移植应用,也不例外。.NETFramework项目使用过时的项目格式。尽管最新的项目格式(称为“SDK样式项目”)是为.NETCore及更高版本创建的,它们也适用于.NETFramework。拥有最新格式的项目文件可以为将来移植应用打下良好的基础。

??务必将.NETFramework项目重新定目标到.NETFramework4.7.2及更高版本。在.NETStandard不支持现有API情况下,这可确保最新备用API的可用性。

??考虑定目标到.NET5(而不是.NETCore3.1)。虽然.NETCore3.1是长期支持(LTS)版本,但.NET5是最新的,并且.NET6也将在发布后成为LTS。

??务必为Windows窗体和WPF项目定目标到.NET5。.NET5包含许多对桌面应用的改进。

??若要迁移也可以用于.NETFramework项目的库,请考虑定目标到.NETStandard2.0。也可以为库设定多个目标,同时定目标到.NETFramework和.NETStandard。

??如果迁移之后出现缺少API的错误,请务必添加对Microsoft.Windows.CompatibilityNuGet包的引用。大部分.NETFrameworkAPI面是通过NuGet包提供给.NET的。

参考文献:

https://docs.microsoft.com/en-us/dotnet/core/porting

本系列技术大约30篇文章,欢迎关注、点赞、评论、转发,每天都能获取IT优质内容。

系列博客文章导航

《.NET平台系列22.NETCore和.NETFramework的选择建议》

《.NET平台系列21.NETCore对比.NETFramework》

\u0002

\u0002

\u0002

\u0002

\u0002

OK,关于机场网站源码分享和机场网页的内容到此结束了,希望对大家有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平