【问题标题】:WinRT and .Net FrameworkWinRT 和 .Net 框架
【发布时间】:2011-09-15 13:03:40
【问题描述】:

在 WinRT 演示之后,我对 .net 框架在 Microsoft 开发堆栈中的角色感到困惑。

开发WinRT应用有必要吗?

【问题讨论】:

    标签: .net architecture windows-runtime


    【解决方案1】:

    据我了解,您可以通过 3 种方式构建 WinRT 应用

    • .net
    • 脚本
    • 未管理的 C++

    WinRT“对象”的引用计数与 COM 一样,但是它们具有良好的元数据,因此 .net 可以使它们看起来像 .net 对象。 (同样 jscript 可以使它们看起来像 jscipt 对象)

    因此,如果您希望使用 jscript 或 C++,则无需使用 .net 来开发 WinRT 应用程序。

    【讨论】:

    • 我不认为在选择用 C# 或 VB 编写 WinRT 应用程序时使用正常意义上的 .NET。代码不是 .NET 意义上的管理,而是由操作系统管理。
    • @tronda,C# 或 VB.NET 代码像往常一样在托管的 .NET 虚拟机中运行。在它与 WinRT 对象交互的地方,它基本上将它们视为使用 COM 互操作的 COM 对象(尽管增强了 COM 互操作,可以让您执行诸如从 WinRT 对象下降之类的事情)。
    • 我只是从新的 PluralSight 培训中感受到 WinRT 可以在 C# 管理代码中进行编程。但它不是 .Net,也没有 Task 类,而是类似的东西。
    【解决方案2】:

    如果您正在开发 Windows 8 Metro 风格的应用程序,那么无论您选择使用 HTML5/JS、Xaml 还是 C++,您都将使用 WinRT。请注意,Metro 应用程序中的 C#/VB.NET 和 Xaml 仅公开 .NET Framework 的子集。 WinRT 为应用程序提供了一种沙盒环境。

    如果您正在开发“经典”桌面应用程序,那么您可能会使用 .NET Framework 及其出色的功能。

    它们确实是用于构建两种不同类型应用程序的两个不同平台。 WinRT 用于可利用触摸和其他传感器的完全沉浸式应用程序。 .NET 用于您想要构建的任何其他应用程序。请记住,您仍然可以在任何 .NET 应用程序中使用触摸(很可能也可以使用其他传感器 API)。

    【讨论】:

    • 你能在非 Metro 风格的应用程序中使用 WinRT API 吗?
    • 好的,但是构建 winrt 应用程序总是需要 .net 框架?
    • @Justin 是的,但不是全部。具体来说,不是 UI,也不是与应用沙箱相关的东西(隔离存储等)。例如,您可以使用Windows.Networking 编写控制台应用程序。
    • @A.DIMO 不,.NET Framework 不是必需的,既不需要构建也不需要运行用 C++ 或 JS 编写的 WinRT 应用程序。 WinRT 本身是原生的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多