使用 .NET Framework 针对多个平台开发Developing for Multiple Platforms with the .NET Framework

本文内容

可以通过使用 .NET Framework 和 Visual Studio 开发 Microsoft 和非 Microsoft 平台上的应用。

跨平台开发的选项Options for cross-platform development

重要

因为可移植类库项目面向的.NET 实现仅非常特定的专项,我们强烈建议不要在新的应用程序开发中使用它们。推荐的替代是面向所有支持特定版本的.NET Standard 的.NET 实现的.NET Standard 库。有关详细信息,请参阅 .NET Standard

若要针对多个平台进行开发,你可以共享源代码或二进制文件,并可以在 .NET Framework 代码和 Windows 运行时 API 之间进行调用。

若希望…使用…
在 Windows Phone 8.1 和 Windows 8.1 应用之间共享源代码共享的项目(在 Visual Studio 2013 Update 2 的通用应用模板)。-当前不支持 Visual Basic。-你可以将特定于平台的代码分离使用 #if语句。有关详细信息,请参见:- 开始编码- 使用 Visual Studio 构建通用 XAML 应用(博客文章)- 使用 Visual Studio 将构建 XAML 融合应用(视频)
在面向不同平台的应用之间共享二进制文件可移植类库项目与平台无关的代码。-这种方法通常用于实现业务逻辑的代码。-你可以使用 Visual Basic 或 C#。API 支持因平台而异。的面向 Windows 8.1 和 Windows Phone 8.1 可移植类库项目支持 Windows 运行时 Api 和 XAML。这些功能在较旧版本的可移植类库中不可用。-如果需要可以通过使用接口或抽象类抽象处理平台特定的代码。有关详细信息,请参见:- 可移植类库- 如何使可移植类库有效地为您(博客文章)- 可移植类库与 mvvm 配合使用- 面向多个平台的库的应用资源- .NET 可移植性分析器(Visual Studio 扩展)
在平台(Windows8.1 和 Windows Phone 8.1 除外)的应用之间共享源代码添加为链接功能。-此方法非常适用于出于某种原因是普遍适用于这两个应用,但不可移植的应用程序逻辑。你可以将此功能用于 C# 或 Visual Basic 代码。例如,Windows Phone 8 和 Windows 8 共享 Windows 运行时 API,但可移植类库不支持这些平台的 Windows 运行时。你可以使用 Add as link 在 Windows Phone 8 应用和面向 Windows 8 的 Windows 应用商店应用之间共享公共 Windows 运行时代码。有关详细信息,请参见:- 添加为链接共享代码)- 如何:向项目添加现有项)
使用 .NET Framework 代码或从 NET Framework 代码调用 Windows 运行时 API,编写 Windows 应用商店应用Windows 运行时 Api从.NET Framework C# 或 Visual Basic 代码,并使用.NET Framework 创建 Windows 应用商店应用程序。你应该注意这两个平台的 API 差异。但是,存在帮助你处理这些差异的类。有关详细信息,请参见:- .NET framework 对 Windows 应用商店应用程序和 Windows 运行时支持- 将 URI 传递给 Windows 运行时- WindowsRuntimeStreamExtensions- WindowsRuntimeSystemExtensions
构建面向非 Microsoft 平台的 .NET Framework 应用可移植类库引用程序集在.NET Framework 和 Visual Studio 扩展或第三方工具,如 Xamarin。有关详细信息,请参见:- 可移植类库现在在所有平台上可用。(博客文章)- Xamarin 文档
将 JavaScript 和 HTML 用于跨平台开发通用应用模板在 Visual Studio 2013 Update 2 到适用于 Windows 8.1 和 Windows Phone 8.1 开发针对 Windows 运行时 Api。当前,你不能将 .NET Framework API 与 JavaScript 和 HTML 结合使用来开发跨平台应用。有关详细信息,请参见:- JavaScript 项目模板- 将 Windows 运行时应用使用 JavaScript 为 Windows Phone 移植