【发布时间】:2012-05-29 21:43:30
【问题描述】:
我们有大量在 .NET 4.0 中开发的业务 API/程序集(其中大部分是从 .NET 2.0 升级而来的)。它们目前未作为 Web 服务公开。
我们希望基于这些 API 开始 Win 8 Metro 应用程序开发(使用 C#/XAML)。有可能吗?
【问题讨论】:
标签: c# xaml windows-8 windows-runtime winrt-xaml
我们有大量在 .NET 4.0 中开发的业务 API/程序集(其中大部分是从 .NET 2.0 升级而来的)。它们目前未作为 Web 服务公开。
我们希望基于这些 API 开始 Win 8 Metro 应用程序开发(使用 C#/XAML)。有可能吗?
【问题讨论】:
标签: c# xaml windows-8 windows-runtime winrt-xaml
另一种选择是针对可移植类库 (PLC)
http://msdn.microsoft.com/en-us/library/gg597391.aspx
通过这种方式,您可以将单个程序集编译为普通 .net 和 Metro/WinRT .net 的多目标。
您当然必须对暴露给两个框架的 API 子集进行编码。
【讨论】:
您的类可能会在 Metro 风格应用程序中使用,但这不太可能。完整的 .NET Framework 不会暴露给 Metro 风格的应用程序。它实际上是 .NET Framework 的一个子集,称为 Core Profile。您可以在 ...
上查看带有 ILDasm 或 ILSpy 的 Core Profile 参考程序集C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5\
查看来自 Build 的 A .NET developer's view of Windows 8 app development,了解有关 Metro 风格应用程序的 .NET Profile 的讨论。
【讨论】:
如果可以将它们重新编译为 WinRT 类库,则可以使用它们。很可能这意味着没有,您需要先更新它们以使用 WinRT API,无论您使用的是 WinAPI 还是之前未迁移到 WinRT 的某些 .NET 库。
【讨论】:
我认为现在的发展方向是 SaaS/云解决方案。
您最好的选择可能是将这些程序集公开为 Web 服务并从您的应用程序访问这些服务。
当然,这是假设您没有大量来回的数据。
在这种情况下,您应该能够将那些重新编译为 WinRT 类库的程序集包含在内...尽管我不鼓励这样做,因为它可能会使您正在开发的应用程序变得非常大。
【讨论】: