首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Windows和Silverlight类库之间共享C#代码

在Windows和Silverlight类库之间共享C#代码,可以通过创建一个.NET Standard库来实现。.NET Standard是一个跨平台的、统一的API规范,它允许开发者为多种不同的.NET实现编写可重用的代码。这意味着,只要一个.NET Standard库中的代码符合该规范,它就可以在多个.NET实现中使用,包括Windows和Silverlight。

要创建一个.NET Standard库,可以使用Visual Studio或其他支持.NET Standard的IDE。在创建过程中,选择.NET Standard库模板,并指定目标框架版本。一旦库创建完成,就可以在其中编写C#代码,并将其与Windows和Silverlight项目共享。

在共享代码时,请注意以下几点:

  1. 确保代码符合.NET Standard的规范,避免使用不受支持的API或特性。
  2. 在共享代码中避免使用平台特定的API或特性,例如Windows API或Silverlight API。
  3. 如果需要使用平台特定的API或特性,可以使用条件编译指令来针对不同的平台编译代码。
  4. 在共享代码中使用可移植的数据类型和序列化方式,以确保代码在不同的平台上可以正常运行。

推荐的腾讯云相关产品:

  • 云服务器:提供可靠的虚拟化基础设施,支持Windows和Linux操作系统。
  • 对象存储:提供可靠的存储服务,可以用于存储共享代码的文件。
  • 云数据库:提供可靠的数据库服务,可以用于存储共享代码的数据。
  • 内容分发网络:提供可靠的网络传输服务,可以用于分发共享代码。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • .NET Glossary

    本词汇表的主要目标是阐明 .NET 文档中经常出现的选定术语和首字母缩略词的含义。 奥特 提前编译器。 与JIT类似,此编译器还将IL转换为机器代码。与 JIT 编译相反,AOT 编译发生在应用程序执行之前,并且通常在不同的机器上执行。因为 AOT 工具链不在运行时编译,所以它们不必最小化编译时间。这意味着他们可以花更多时间进行优化。由于 AOT 的上下文是整个应用程序,因此 AOT 编译器还进行跨模块链接和全程序分析,这意味着遵循所有引用并生成单个可执行文件。 请参阅CoreRT和.NET Native。 应用模型 一个工作量特异性API。这里有些例子: ASP.NET ASP.NET Web API 实体框架 (EF) Windows 演示基础 (WPF) Windows 通信基础 (WCF) Windows 工作流基础 (WF) Windows 窗体 (WinForms) ASP.NET .NET Framework 附带的原始 ASP.NET 实现,也称为 ASP.NET 4.x。 有时 ASP.NET 是一个总称,既指原始 ASP.NET 又指 ASP.NET Core。该术语在任何给定实例中的含义由上下文决定。当您想明确表示您没有使用 ASP.NET 来表示这两种实现时,请参阅 ASP.NET 4.x。 请参阅ASP.NET 文档。 ASP.NET 核心 ASP.NET 的跨平台、高性能、开源实现。 请参阅ASP.NET Core 文档。 部件 一个.dll或.exe文件,其中可以包含可由应用程序或其他程序集调用的 API 集合。 程序集可能包括接口、类、结构、枚举和委托等类型。项目的bin文件夹中的程序集有时称为二进制文件。另见库。 BCL 基类库。 一组包含 System.*(以及在有限范围内的 Microsoft.*)命名空间的库。BCL 是一种通用的低级框架,高级应用程序框架(例如 ASP.NET Core)在其上构建。 .NET 5(和 .NET Core)及更高版本的 BCL 源代码包含在.NET 运行时存储库中。大多数 BCL API 在 .NET Framework 中也可用,因此您可以将此源代码视为 .NET Framework BCL 源代码的分支。 以下术语通常指的是 BCL 所指的同一 API 集合: 核心 .NET 库 框架库 运行时库 共享框架 CLR 公共语言运行时。 确切的含义取决于上下文。公共语言运行时通常是指.NET Framework的运行时或.NET 5(和 .NET Core)及更高版本的运行时。 CLR 处理内存分配和管理。CLR 也是一个虚拟机,它不仅可以执行应用程序,还可以使用JIT编译器即时生成和编译代码。 .NET Framework 的 CLR 实现仅适用于 Windows。 .NET 5 和更高版本的 CLR 实现(也称为 Core CLR)是从与 .NET Framework CLR 相同的代码库构建的。最初,Core CLR 是 Silverlight 的运行时,旨在运行在多个平台上,特别是 Windows 和 OS X。它仍然是一个跨平台的运行时,现在包括对许多 Linux 发行版的支持。 另请参见运行时。 核心CLR .NET 5(和 .NET Core)及更高版本的公共语言运行时。 请参阅CLR。 核心RT 与CLR 相比,CoreRT 不是虚拟机,这意味着它不包括即时生成和运行代码的设施,因为它不包括JIT。但是,它确实包括GC以及运行时类型识别 (RTTI) 和反射的能力。然而,它的类型系统被设计成不需要用于反射的元数据。不需要元数据可以让AOT工具链链接掉多余的元数据和(更重要的是)识别应用程序不使用的代码。CoreRT 正在开发中。 请参阅CoreRT和.NET 运行时实验室介绍。 跨平台 能够开发和执行可在多种不同操作系统(例如 Linux、Windows 和 iOS)上使用的应用程序,而无需专门为每个操作系统重写。这实现了不同平台上的应用程序之间的代码重用和一致性。 见平台。 生态系统 用于为给定技术构建和运行应用程序的所有运行时软件、开发工具和社区资源。 术语“.NET 生态系统”与“.NET 堆栈”等类似术语的不同之处在于它包含第三方应用程序和库。这是一个句子中的示例: “ .NET Standard背后的动机是在 .NET 生态系统中建立更大的统一性。” 框架 一般而言,一个全面的 API 集合,可促进基于特定技术的应用程序的开发和部署。从一般意义上讲,ASP.NET Core 和 Windows 窗体是应用程序框架的示例。框架和库这两个词经常作为同义词使用。 “框架”一词在以下术语中具有不同的含义: 框架库 .NET 框架 共享框架 目标框架 TFM(目标框架名

    01

    .NET 架构组件

    .NET 应用程序是为 .NET 的一个或多个实现开发并在其中运行的。.NET 的实现包括 .NET Framework、.NET 5(和 .NET Core)和 Mono。.NET 的多个实现有一个通用的 API 规范,称为 .NET Standard。本文简要介绍了这些概念中的每一个。 .NET 标准 .NET Standard 是一组由 .NET 实现的基类库实现的 API。更正式地说,它是 .NET API 的规范,它构成了您编译代码所依据的统一契约集。这些契约在多个 .NET 实现中实现。 .NET Standard 是一个目标框架。如果您的代码以 .NET Standard 版本为目标,则它可以在支持该 .NET Standard 版本的任何 .NET 实现上运行。 .NET Standard 的创建是为了在不同的 .NET 实现之间实现可移植性,但现在 .NET 5 提供了一种更好的方式来跨多个平台和工作负载共享代码。有关详细信息,请参阅.NET 5 和 .NET Standard。 .NET 实现 .NET 的每个实现都包括以下组件: 一个或多个运行时。示例:.NET Framework CLR、.NET 5 CLR。 一个类库。示例:.NET Framework 基类库、.NET 5 基类库。 可选地,一个或多个应用程序框架。示例:ASP.NET、Windows Forms和Windows Presentation Foundation (WPF)包含在 .NET Framework 和 .NET 5 中。 可选的,开发工具。一些开发工具在多个实现之间共享。 Microsoft 支持四种 .NET 实现: .NET 5(和 .NET Core)及更高版本 .NET 框架 单核细胞增多症 UWP .NET 5 现在是主要实现,也是持续开发的重点。.NET 5 基于单一代码库构建,该代码库支持多个平台和许多工作负载,例如 Windows 桌面应用程序和跨平台控制台应用程序、云服务和网站。 .NET 5 .NET 5 是 .NET 的跨平台实现,旨在大规模处理服务器和云工作负载。它还支持其他工作负载,包括桌面应用程序。它在 Windows、macOS 和 Linux 上运行。它实现了 .NET Standard,因此面向 .NET Standard 的代码可以在 .NET 5 上运行。ASP.NET Core、Windows Forms和Windows Presentation Foundation (WPF)都可以在 .NET 5 上运行。 有关更多信息,请参阅以下资源: .NET介绍 在 .NET 5 和 .NET Framework 之间为服务器应用选择 .NET 5 和 .NET 标准 .NET 框架 .NET Framework 是自 2002 年以来一直存在的原始 .NET 实现。4.5 版及更高版本实现了 .NET Standard,因此面向 .NET Standard 的代码可以在这些版本的 .NET Framework 上运行。它包含其他特定于 Windows 的 API,例如用于使用 Windows 窗体和 WPF 进行 Windows 桌面开发的 API。.NET Framework 已针对构建 Windows 桌面应用程序进行了优化。 有关详细信息,请参阅.NET Framework 指南。 单核细胞增多症 Mono 是一种 .NET 实现,主要用于需要小型运行时。它是为 Android、macOS、iOS、tvOS 和 watchOS 上的 Xamarin 应用程序提供支持的运行时,并且主要专注于小空间。Mono 还支持使用 Unity 引擎构建的游戏。 它支持所有当前发布的 .NET Standard 版本。 从历史上看,Mono 实现了 .NET Framework 的更大 API,并在 Unix 上模拟了一些最流行的功能。它有时用于在 Unix 上运行依赖于这些功能的 .NET 应用程序。 Mono 通常与即时编译器一起使用,但它也具有在 iOS 等平台上使用的完整静态编译器(提前编译)。 有关更多信息,请参阅Mono 文档。 通用 Windows 平台 (UWP) UWP 是 .NET 的一种实现,用于为物联网 (IoT) 构建现代的、支持触控的 Windows 应用程序和软件。它旨在统一您可能想要定位的不同类型的设备,包括 PC、平板电脑、手机,甚至 Xbox。UWP 提供了许多服务,例如集中式应用程序商店、执行环境 (AppContainer) 和一组 Windows API,以代替 Win32 (WinRT) 使用。应用程序可以用 C++、C#、Visual Basic 和 JavaScript 编写。 有关详细信息,请参阅通用 Win

    01

    .NET 类库

    类库是.NET的共享库概念。它们使您能够将有用的功能组件化为可由多个应用程序使用的模块。它们还可以用作加载应用程序启动时不需要或不知道的功能的一种方式。类库使用.NET 程序集文件格式进行描述。 您可以使用三种类型的类库: 特定于平台的类库可以访问给定平台(例如,.NET Framework、Xamarin iOS)中的所有 API,但只能由面向该平台的应用和库使用。 可移植类库可以访问 API 的子集,并且可供面向多个平台的应用程序和库使用。 .NET Standard类库将特定于平台的和可移植的库概念合并到一个模型中,该模型提供了两者的优点。 特定于平台的类库 特定于平台的库绑定到单个 .NET 实现(例如,Windows 上的 .NET Framework),因此可能对已知的执行环境有很大的依赖性。这样的环境将公开一组已知的 API(.NET 和 OS API),并将维护和公开预期状态(例如,Windows 注册表)。 创建平台特定库的开发人员可以充分利用底层平台。这些库只会在给定的平台上运行,从而不需要平台检查或其他形式的条件代码(多个平台的模单源代码)。 特定于平台的库一直是 .NET Framework 的主要类库类型。即使出现了其他 .NET 实现,特定于平台的库仍然是主要的库类型。 可移植类库 多个 .NET 实现支持可移植库。它们仍然可以依赖于已知的执行环境,但是,该环境是由一组具体的 .NET 实现的交集生成的合成环境。公开的 API 和平台假设是特定于平台的库可用的一个子集。 您在创建可移植库时选择平台配置。平台配置是您需要支持的平台集(例如,.NET Framework 4.5+、Windows Phone 8.0+)。您选择支持的平台越多,您可以做出的 API 和平台假设就越少,这是最低公分母。这个特性起初可能会令人困惑,因为人们通常认为“越多越好”,但发现支持的平台越多,可用的 API 就越少。 许多库开发人员已经从从一个源(使用条件编译指令)生成多个特定于平台的库转向可移植库。有几种方法可以访问便携式库中特定于平台的功能,其中诱饵和切换是目前最广泛接受的技术。 .NET 标准类库 .NET Standard 库替代了特定于平台的可移植库概念。它们是特定于平台的,因为它们公开了底层平台的所有功能(没有合成平台或平台交叉点)。它们是可移植的,因为它们可以在所有支持平台上工作。 .NET Standard 公开了一组库契约。.NET 实现必须完全支持或根本不支持每个契约。因此,每个实现都支持一组 .NET Standard 协定。推论是每个 .NET Standard 类库都在支持其契约依赖项的平台上受支持。 .NET Standard 并未公开 .NET Framework 的全部功能(也不是目标),但是,它们确实公开了比可移植类库更多的 API。随着时间的推移,将添加更多 API。 以下平台支持 .NET Standard 库: .NET 核心 .NET 框架 单核细胞增多症 Xamarin.iOS、Xamarin.Mac、Xamarin.Android 通用 Windows 平台 (UWP) 视窗 视窗电话 Windows Phone Silverlight 有关详细信息,请参阅.NET 标准。 Mono 类库 Mono 支持类库,包括前面描述的三种类型的库。Mono 经常被(正确地)视为 .NET Framework 的跨平台实现。在某种程度上,这是因为特定于平台的 .NET Framework 库可以在 Mono 运行时上运行,而无需修改或重新编译。这一特性在创建可移植类库之前就已经存在,因此是在 .NET Framework 和 Mono 之间实现二进制可移植性的一个明显选择(尽管它只在一个方向上起作用)。

    02

    曾是最流行的语言之一,Visual Basic 28年兴衰记

    这是一篇暴露年龄的文章。为什么这么说?因为现在年轻的程序员可能没有接触过当年红极一时的 Visual Basic。28 年前的 1991 年 4 月,Microsoft 发布了 Visual Basic 1.0 for Windows,次年 9 月,发布了 Visual Basic 1.0 for DOS。这在当时引起了很大的轰动,许多专家把 VB 的出现当做是软件开发史上的一个具有划时代意义的事件。以现在的眼光来看,VB1.0 版的功能其实非常弱,但它在推出时可是第一个 “可视” 的编程软件。这使得程序员欣喜之极,都尝试在 VB 的平台上进行软件创作。到了 1998 年夏天,Microsoft 发布了 VB 6,这是 VB.NET 至今仍然无法完全取代的版本。但随着.NET 的兴起,VB 开始走上下坡路。它是如何兴起的,又是如何衰落的?让我们跟着 Matthew MacDonald 的脚步笑看 VB 的风起云落吧!

    02
    领券