【问题标题】:.NET app doesn't run on WinRT. Justify support for it in .NET 4.5.NET 应用程序不在 WinRT 上运行。在 .NET 4.5 中证明对它的支持
【发布时间】:2014-03-03 10:04:36
【问题描述】:

我在这里读到 WinRT 没有支持 .NET 应用程序的层:seek to 1:55 seconds http://www.youtube.com/watch?v=TI0ABjSKAGU

我还在Differences between .NET 4.0 and .NET 4.5 in High level in .NET 处读到 .NET 4.5 框架提供了对 Windows 运行时的支持。

这是我的困惑:

这是否意味着我现在可以在 Windows Runtime 上运行我的 .NET 应用程序? WinRT 如何支持我的 .NET 应用程序?我有一个想法,即 .NET 只能用于创建通常使用网络浏览器使用的网络应用程序。如果 WinRT 有浏览器,那么为什么 WinRT 在运行我的 .NET 应用程序时会出现问题?

WinRT 是安装在基于 ARM 的机器和平板电脑(Surface tablet)上的操作系统/层。

鉴于我现在在 .NET 4.5 框架中支持 Windows 运行时,我想知道我将为 WinRT 开发哪种类型的 .NET 应用程序。

【问题讨论】:

    标签: asp.net windows-runtime


    【解决方案1】:

    如果您正在为 Windows 应用商店开发应用程序,您将使用 Windows 运行时 (WinRT) 进行开发。这是今天唯一的选择。做出选择后,您可以在 C#/XAML 或 HTML/WinJS 用户界面之间进行选择。您不会“选择”.NET 4.5。您正在选择 Windows 运行时。

    有两个不同的平台和重叠的术语:

    Windows 运行时(通常缩写为 WinRT)和 .NET

    自 Visual Studio 2002 和 .NET 1.0 发布以来,.NET 平台已经存在并可用于生产开发目的。使用此平台及其现代版本(带有 Visual Studio 2013 的 4.5.1),您可以构建传统的 Windows 可执行文件或应用程序。从 Windows 服务、为几个不同的 UI 平台(WinForms 和 WPF)编写的桌面应用程序以及复杂的 Web 应用程序都可以创建并且可以在所有现代版本的 Windows 之间移植,但 WindowsRT 除外。 WindowsRT 传统上运行在功率较低的 ARM 处理器上,不能执行为 .NET 编写的传统应用程序。

    不幸的是,名称和功能非常混乱。 WinRT(Windows 运行时)是平台,可用于创建 Windows 应用商店应用程序。它目前不能用于构建本机桌面应用程序。 .NET 4.5 不能用于构建 Windows 应用商店应用程序。 WinRT 平台可以针对任何现代 Windows 设备,从平板电脑到台式机。 WinRT 还可以在 Windows RT 上运行,Windows RT 是 ARM 等功率较低的非 x86 芯片组。

    所有平台共享多种语言:C#、VB 和 C++。

    WinRT 的库表现为一个层,在许多情况下看起来与 .NET 库几乎相同。事实上,文档通常可以用于常见情况。更令人困惑的是,它有时被称为.NET for Windows Store apps。您会发现它不是一个完整的 .NET 4.5 实现。

    混淆通常来自于它们非常相似的事实。 WinRT 的底层代码不是 .NET。它是不透明的(主要是用 C++ 编写的)。它看起来像 .NET 4.5,并且通常执行/行为类似于 .NET 4.5,但它与传统 .NET 4.5 应用程序使用的平台不同。虽然您可以创建可作为可移植类库运行的代码并使用所有平台(.NET 和 WinRT)通用的功能和 API,但 WinRT 应用程序不能直接调用 .NET 4.5 代码。

    Windows 运行时是一种高度沙盒化和 API 策划的开发人员体验,与各种手机平台(如 Windows Phone 运行时、iOS 和 Android)上的体验非常相似。如果您查看 .NET 平台和 CLR 的“表面”区域,您会发现它变得多么庞大和复杂,并且有很多功能在 Windows 的上下文中没有意义存储应用程序,或者根本不安全。我预计微软将在多个版本中包含来自核心 Windows 操作系统的 Windows 运行时的附加功能。这些 API 可能/可能不会反映 .NET 4.5 中的类似功能。

    但是,在 Windows 8+ 系统上,Windows .NET 应用程序可以访问 WinRT 中可用的 API 子集(Microsoft 的营销人员将其称为“流线型”API 集)。例如,您无法访问 WinRT UI 平台并创建使用 WinJS 或 XAML 构建其界面的桌面应用程序,这些仅在 WinRT 应用程序中可用。

    .NET Framework Support for Windows Store Apps and Windows Runtime

    【讨论】:

    • 我不久前观看了这个视频link,看起来这个人正在使用 Visual Studio 2012,他除了创建一个新的 Windows 应用商店应用程序之外没有做任何其他设置。请告诉我他是否使用 .NET 4.5。请寻找到 28:00 分钟,他通过从文件菜单中选择一个模板来创建一个新的 Windows 应用商店应用程序。而且我还读到 .NET 4.5 框架提供了对 Windows 运行时的支持。这是什么意思?我在这里看到了link
    • 如果我们不能在 .NET 中为 WinRT 构建应用程序,为什么 Microsoft 会在 .NET 4.5 中提供对 Windows 运行时的支持?此链接说明了支持:link
    • 不,如果他创建了 Windows 应用商店应用程序,他就没有使用 .NET 4.5。
    • Windows 运行时中有一些潜在有用的 API 可供 .NET 应用程序使用——因此微软公开了它们。
    • 如果我想为 Windows 运行时构建应用程序该怎么办?
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2023-04-03
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多