2016-02-25 96 views
18

我知道XAML用于设计与Blend结合的UI。我对如此多的术语感到困惑,比如XAML如何为WPF,Store App,Phone App或UWA发挥作用。另外,WPF,Store App,Phone App和UWA有什么区别。这是否意味着旧的桌面项目将不再使用并由WPF或Store App或UWA取代?XAML vs WPF vs Store应用程序vs电话应用程序vs UWA

+4

历史就是这样。 WPF首先使用XAML。然后,随着WINRT将MSFT发送到太空,并将他们称为仅适用于Store App的XAML。只是谷歌WPF死亡?手机应用程序也可以使用XAML,但它是Silverlight自己的平台。为了缩小这些差距,UWA出现了,而且谁也不在乎,因为MSFT在Windows 8中整合了所有东西,并且试图将它们全部重新整合在一起,并且他们没有做到这一点。顺便说一句,你根本不需要Blend。 –

+1

您可能会发现我的Wiki文章很有用:[UWP vs. WPF](https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe

回答

44

.NET在〜2000中发布时,可以使用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 10)的任何Windows版本中运行。请注意,使用XAML是完全可选的。无论您使用XAML描述的用户界面元素都可以使用.NET语言C#或VisualBasic.NET进行制作。但使用XAML通常更简单。请参阅To XAML or not to XAML (MSDN Blogs)

XAML (Wikipedia)

由于XAML仅仅是基于XML,开发者和设计者都能够在它们之间无需编译自由共享和编辑内容。

从〜2012开始,随着Windows 8的推出,可以制作一种名为metro/modern/windows-8/windows-store-apps的新应用程序。这些应用程序与WPF类似,因为它们使用XAML来描述GUI。这些应用程序只能在Windows 8,8.1和Windows 10上运行.Windows 8.1添加了一些改进和功能,但大部分保持不变。使用相同的技术为Windows Phone制作应用程序。

随着Windows 10的发布,Microsoft制定了UWP(通用Windows平台),您可以通过该平台使用相同的代码库来定位不同种类的设备(桌面/移动/ xbox/IoT /全息图)。这些为UWP制作的应用程序与早期的Windows 8/8.1应用程序类似。像以前一样,XAML用于描述GUI。

仅适用于Windows应用商店应用程序,没有向后兼容性。时间线为Windows 8 - >Windows 8.1 - > 。在UWP开发的应用可以运行在Windows 10和Windows 8.1开发的应用无法运行在Windows 8

+1

谢谢你的回答。所以这意味着,如果我想在Windows 8.1的各种设备(PC /平板电脑/手机)中运行我的应用程序,则必须使用Windows 8.1的通用项目模板。而对于Windows 10,我必须使用UWP项目模板,对吧? –

+2

是的,没错。注意Windows 8.1不像UWP那样“通用”,因为它只能在Windows 8.1桌面和Windows 8.1 Phone之间共享资源。在UWP中,所有形状因子都使用相同的代码库。 –

+2

纠正我,如果我错了,但我认为XAML在winRT是不一样的,因为它是在WPF中。 – mFeinstein

0

我会强烈建议参照stopbyte这个话题,它已经远远更多的细节和explanation of the concepts behind WPF, UWP And WinRT

至于WinForms,我相信这是历史。已经几乎被WPF所取代。 我相信微软已经停止开发Windows Forms,并且可能已经停止维护它了。

+0

Winforms绝对不是“历史”。它有来自许多第三方供应商(DevExpress,Syncfusion,Telerik,Infragistics,ComponentOne,Dart等)的主流支持,以及仍然兴旺的论坛。而且,没有冒犯性,但具有非权威性的“我相信”类型说明的答案与寻找答案的人几乎没有关系。 – Jazimov

相关问题