XAML vs WPF vs Store App vs Phone App vs UWA

XAML vs WPF vs Store App vs Phone App vs UWA

我知道 XAML 用于结合 Blend 设计 UI。我对这么多术语感到困惑,例如 XAML 如何在 WPF、Store App、Phone App 或 UWA 中发挥作用。此外,WPF、Store App、Phone App 和 UWA 之间有什么区别。这是否意味着旧的 Desktop Project 将不再被 WPF 或 Store App 或 UWA 使用和取代?

当 .NET 在 ~2000 年发布时,您可以使用 WinForms 为 Windows 制作桌面应用程序。它通过在托管代码中包装 Windows API 来提供对 'native' 控件的访问(即在 WinForms 中创建的按钮实际上是 user32.dll 中的 Windows 按钮控件) .这些可以 运行 在安装了适当的 .NET 框架版本的 Windows 的任何版本中,包括高达 Windows 10.

2006 年,WPF 发布,它是 WinForms 的替代品。 WPF 使用 XAML,这是一种基于 XML 的语言来声明用户界面元素。在简单的 WPF 应用程序中,.xaml 文件描述 GUI,代码隐藏文件描述逻辑。 DirectX 用于将 .xaml 中描述的任何内容绘制到 window.

与 Winforms 一样,使用 WPF 制作的程序可以 运行 在安装了适当 .NET 框架版本的任何 Windows 版本中,包括最高 Windows 10。请注意,使用 XAML 是完全可选的。您使用 XAML 描述的任何用户界面元素也可以使用您的 .NET 语言 C# 或 VisualBasic.NET 制作。但是使用 XAML 通常更简单。参见 To XAML or not to XAML (MSDN Blogs)

来自 XAML (Wikipedia) :

As XAML is simply based on XML, developers and designers are able to share and edit content freely amongst themselves without requiring compilation.

从 ~2012 年开始,随着 Windows 8,可以制作一种名为 metro/modern/windows-8/windows-store-apps 的新型应用程序。这些应用程序类似于 WPF,因为它们使用 XAML 来描述 GUI。这些应用 运行 只能在 Windows 8、8.1 和 Windows 10 中使用。Windows 8.1 添加了一些改进和功能,但基本保持不变。 Windows Phone.

使用相同的技术制作应用程序

随着 Windows10 的发布,Microsoft 制作了 UWP(通用 Windows 平台),您可以通过它使用相同的代码库来针对不同类型的设备 (desktop/mobile/xbox/IoT/holographic) .这些为 UWP 制作的应用程序类似于早期的 Windows 8/8.1 应用程序。和以前一样,XAML 用于描述 GUI。

仅适用于 Windows 应用商店应用,没有 向后 兼容性。时间线变为 Windows 8 -> Windows 8.1 -> Windows 10/UWP。在 UWP 中制作的应用程序在 Windows 10 中只能 运行 而在 Windows 8.1 中制作的应用程序在 [=] 中不能 运行 39=] 8.

我强烈建议参考 stopbyte 中的这个讨论主题,它有更多的细节和 explanation of the concepts behind WPF, UWP And WinRT

至于 WinForms,根据我的经验,它现在已经成为历史。几乎已被 WPF 取代(尽管它仍然具有@Jazimov 提到的主流支持)。 我注意到 Microsoft 已停止改进 Windows Forms,并且可能也已停止维护它。