【问题标题】:.NET in Windows 8: AppContract, Marketplace and WPF/C# from a dev point of viewWindows 8 中的 .NET:从开发人员的角度来看 AppContract、Marketplace 和 WPF/C#
【发布时间】:2026-01-25 12:25:01
【问题描述】:

我对 Windows 8 中出现的所有新功能感到非常兴奋,但同时有点担心如何以及是否可以继续使用我已经使用 .NET 和 C# 构建的代码和自定义组件在我作为 Windows 开发人员期间。我对此有一些一般性的混合问题。希望你不介意我将它们放在一个帖子中:

  • Windows 8 应用商店是否适用于 Metro 风格应用和常规 WPF 桌面应用?包括推送更新和为公司员工提供应用程序?

  • 新的 App Contract-thingy 是否也可用于 WPF 应用程序? AppContract 是否基于 WCF 服务以及网络上的 UDP 发现?我可以使用 App Contract 框架在我自己的应用之间制定自己的合同吗?

  • 我并不特别担心 WPF 是否会被抛弃。我可以没有它。让我担心的是,我是否仍然可以用 C# 编写表示和业务层代码并将其用作我的应用程序的后端,无论我将使用什么 UI 框架、HTML、Silverlight、WPF 或你有什么.如果我仍然能够用 C# 编写逻辑并使用 X UI 框架呈现它,我就是一个快乐的开发人员。我听说我可以从 JavaScript 访问 .NET 框架。但是自定义程序集呢?

【问题讨论】:

  • “Windows 8 应用商店是否适用于 Metro 风格的应用程序和常规 WPF 桌面应用程序?包括推送更新和为公司员工提供应用程序”我认为您可以宣传它们,但不能使用整个“地铁”生态系统。

标签: c# .net wpf windows-8 microsoft-metro


【解决方案1】:
  • Store:没有最终信息,但据我了解,它仅适用于 Metro 风格的应用程序

  • 应用程序合同是一种都市事物。我知道一个记录桌面应用程序使用情况的代码 sn-p(例如 http://www.heise.de/developer/artikel/WinRT-in-klassischen-NET-Anwendungen-nutzen-1366039.html(抱歉,德语)),但我不知道它是否会得到 Microsoft 的支持

  • WinRT 将库编译为 WinRT 组件。只要您不使用不适用于 WinRT 的命名空间,您就可以重用代码并将它们编译为组件

这个问题很容易猜测,因为没有官方测试版可用。即便如此,我们也不能绝对确定......

【讨论】:

    【解决方案2】:

    已宣布非 Metro 应用程序可以出现在商店中,但商店只会链接到发布者的网站 - 并不实际管理销售/安装/DRM/等内容。

    到目前为止,已宣布的合同仅适用于 Metro 应用程序,但如果这不改变,我会感到震惊。 Microsoft不允许允许桌面应用程序添加命令到“设置”超级按钮、支持 PlayTo 或通过“设备”超级按钮打印或充当共享源,这将是疯狂的。我们将不得不拭目以待,看看他们在桌面应用程序能做什么/不能做什么方面划清界限。

    在 Metro 和非 Metro 应用程序之间共享代码将非常困难。许多核心概念和约定都是相同的,但即使是文件 I/O 之类的基本内容也依赖于全新的 API。在代码中没有很多有趣的事情可以在栅栏的两边工作。最好的办法是为您的业务层定义接口,然后使用依赖注入在运行时动态选择桌面与 winrt 实现

    【讨论】:

    • 我认为微软越来越像苹果了。如果是这种情况,我认为可以肯定地说,您可以忘记“向设置魅力添加命令、支持 PlayTo 或通过设备魅力打印,或充当共享来源”。