我知道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
回答
.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仅仅是基于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
谢谢你的回答。所以这意味着,如果我想在Windows 8.1的各种设备(PC /平板电脑/手机)中运行我的应用程序,则必须使用Windows 8.1的通用项目模板。而对于Windows 10,我必须使用UWP项目模板,对吧? –
是的,没错。注意Windows 8.1不像UWP那样“通用”,因为它只能在Windows 8.1桌面和Windows 8.1 Phone之间共享资源。在UWP中,所有形状因子都使用相同的代码库。 –
纠正我,如果我错了,但我认为XAML在winRT是不一样的,因为它是在WPF中。 – mFeinstein
我会强烈建议参照stopbyte这个话题,它已经远远更多的细节和explanation of the concepts behind WPF, UWP And WinRT 。
至于WinForms,我相信这是历史。已经几乎被WPF所取代。 我相信微软已经停止开发Windows Forms,并且可能已经停止维护它了。
Winforms绝对不是“历史”。它有来自许多第三方供应商(DevExpress,Syncfusion,Telerik,Infragistics,ComponentOne,Dart等)的主流支持,以及仍然兴旺的论坛。而且,没有冒犯性,但具有非权威性的“我相信”类型说明的答案与寻找答案的人几乎没有关系。 – Jazimov
- 1. WPF vs Windows Store应用程序开发
- 2. 应用程序池vs应用程序域vs工作进程
- 3. Dalli vs Redis-Store for Rails应用程序
- 4. 控制台应用程序vs dll vs Windows应用程序等
- 5. WPF/Clickonce vs Web应用程序日期
- 6. WPF - XBap vs独立Windows应用程序
- 7. MVVM VS WPF浏览器应用程序?
- 8. sqlite vs共享内存应用程序vs ipc vs?
- 9. 应用程序vs会话vs高速缓存
- 10. 在后端应用程序中获取vs发布vs会话
- 11. CamelCase vs snake_case vs Ember.js应用程序中的破折号应用程序
- 12. Metro风格应用程序VS桌面模式应用程式VS的Silverlight
- 13. Windows应用程序VS Web应用程序开发
- 14. UCMA VS UCWA - 用户VS应用程序终结点
- 15. Connect-Auth vs Everyauth vs Passport vs Authom - 用于实时网络应用程序?
- 16. 用户控制网页VS VS窗口在WPF浏览器应用程序
- 17. mssql远程应用程序VS基于web的应用程序
- 18. Web应用程序框架VS CMS VS自定义网站
- 19. 打包应用程序vs Adobe Air vs其他
- 20. Adobe Flash专业vs Eclipse vs HTML5 android应用程序
- 21. 创建windows窗体应用程序vs vs快车2015
- 22. 地理空间应用程序:mySql vs CouchDB vs其他
- 23. 应用程序设置范围 - 用户vs应用程序
- 24. Jake vs Cake的Node.js应用程序?
- 25. 运行JavaFX应用程序:JFXPanel vs Application.launch
- 26. Navigator VS NavigatorIOS React Native应用程序
- 27. VS 2013 - ASP.NET Web应用程序模板
- 28. Silverlight vs webbrowser应用程序(.xbab)?
- 29. C++游戏应用程序UDP vs TCP
- 30. as3 vs html5移动应用程序
历史就是这样。 WPF首先使用XAML。然后,随着WINRT将MSFT发送到太空,并将他们称为仅适用于Store App的XAML。只是谷歌WPF死亡?手机应用程序也可以使用XAML,但它是Silverlight自己的平台。为了缩小这些差距,UWA出现了,而且谁也不在乎,因为MSFT在Windows 8中整合了所有东西,并且试图将它们全部重新整合在一起,并且他们没有做到这一点。顺便说一句,你根本不需要Blend。 –
您可能会发现我的Wiki文章很有用:[UWP vs. WPF](https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe