我知道XAML与Blend一起用于设计UI。但是我对很多术语感到困惑,比如XAML在WPF、Store App、Phone App或UWA中的作用。此外,WPF、Store App、Phone App和UWA之间有什么区别?这是否意味着旧的桌面项目将不再使用,而是被WPF、Store App或UWA所取代?
我知道XAML与Blend一起用于设计UI。但是我对很多术语感到困惑,比如XAML在WPF、Store App、Phone App或UWA中的作用。此外,WPF、Store App、Phone App和UWA之间有什么区别?这是否意味着旧的桌面项目将不再使用,而是被WPF、Store App或UWA所取代?
在约2000年发布.NET时,您可以使用WinForms为Windows创建桌面应用程序。它通过将Windows API包装在托管代码中提供对“本机”控件的访问(即,在WinForms中制作的按钮实际上是来自user32.dll的Windows按钮控件)。这些可以在安装了适当的.NET框架版本的任何Windows版本中运行,包括Windows 10。
在2006年发布了WPF,这是WinForms的替代品。 WPF使用基于XML的语言XAML声明用户界面元素。在简单的WPF应用程序中,.xaml文件描述GUI,代码后文件描述逻辑。 DirectX用于将.xaml中描述的内容绘制到窗口中。
与Winforms一样,使用WPF制作的程序可以在安装了适当的.NET框架版本的任何Windows版本中运行,包括Windows 10。请注意,使用XAML完全是可选的。您使用XAML描述的任何用户界面元素也可以使用您的.NET语言C#或VisualBasic.NET制作。但是,使用XAML通常更简单。请参见To XAML or not to XAML (MSDN博客)。
来自XAML(维基百科):
由于XAML仅基于XML,因此开发人员和设计师可以在彼此之间自由共享和编辑内容,无需进行编译。
从大约2012年开始,随着Windows 8一起,可以制作一种名为Metro / Modern / Windows 8 / Windows Store应用程序的新应用程序类型。这些应用与WPF类似,因为它们使用XAML描述GUI。这些应用只能在Windows 8、8.1和Windows 10中运行。Windows 8.1增加了一些改进和功能,但基本保持不变。同样的技术被用来制作Windows Phone应用。
随着Windows 10的发布,微软推出了UWP(通用Windows平台),您可以使用相同的代码库来针对不同类型的设备(桌面/移动/xbox/IoT/全息)进行开发。这些为UWP开发的应用程序类似于早期的Windows 8 / 8.1应用程序。与以前一样,XAML用于描述GUI。
仅适用于Windows商店应用程序,不存在向后兼容性。时间线为 Windows 8
-> Windows 8.1
-> Windows 10/UWP
。在UWP中制作的应用程序仅能运行在Windows 10上,而在Windows 8.1中制作的应用程序无法在Windows 8上运行。
我强烈建议参考Stopbyte中的这个讨论串,它有更多关于WPF、UWP和WinRT背后概念的解释。
至于WinForms,根据我的经验,它已经成为历史了。已经被WPF所取代(尽管像@Jazimov所说,它仍然有主流支持)。 我注意到微软已经停止改进Windows Forms,并且可能也已经停止维护它。