Windows GUI:WPF或WinRT(2015+)

我正在尝试获得不同技术的概述,以便在Windows世界中构建GUI时使用。

对于上下文,我正在构建一个2d平台的多人游戏。 (仅用于学习目的..)

我的老师说他认为WPF是正确的选择,但他似乎只是将它与Windows Forms进行比较。

我的理解是,在2015年的时候,Windows Forms已经完全死了?

在这个其他的stackover问题中,他们说WinRT + XAML是用于Metro GUI构建的(Window 8 tiles thing!),并且WPF似乎只用于Window 7/8中的桌面,并且与Silverlight密切相关。

Windows 8 Runtime(WinRT / Windows Store应用程序/ Windows 10通用应用程序)与Silverlight和WPF相比如何?

  • 桌面是旧的应用程序的生活地点(红色,WFP)。
  • 新一类的应用程序Metro应用程序可以通过多种方式构建,包括VB.NET,C#或C ++。 这三种语言选项可以使用XAML来构建用户界面。 另一种方法是使用JavaScript / HTML5 / CSS来开发UI和应用程序代码。
  • 我真正的问题是:没有一种好的方法在Window World中构建GUI?

    如果不是,应该在Window 7,Window 8(桌面和Metro),Window Phone,(和Windows 10!)甚至x-box上使用哪些技术。

    这是不同的技术来比较这种方式吗?

    你认为什么是正确的投资时间?


    这里有很多,但是这里有:

  • Windows窗体(Winforms)死了吗? 不,它仍然积极支持。 也就是说,它是一种可怕的技术(至少在你知道WPF的魔力之后)
  • 如果你想构建一个漂亮的,精心设计的桌面(经典的,而不是Metro)的应用程序,WPF是纯粹的.NET术语的答案。 您可以使用WinRT API(例如其套接字类),但不能在Windows 8之前的操作系统上运行它们。UI仍然是WPF。
  • WinRT应用程序适用于Windows 8商店(它们也可在Windows 10商店中使用)。 你不能在这里使用WPF,或者在桌面上使用WinRT,所以你部署的地方决定了你使用的是什么。 您对于可用语言/技术的理解是正确的。
  • Windows Phone 8使用WinRT的修改运行时(在Windows 10中已更改)。 对于Win8 / WP8,您可以使用“通用”应用程序共享标准WinRT应用程序和Windows Phone应用程序之间的大部分代码。
  • Windows 10使用基于.NET Core的通用Windows平台(UWP)。 为Windows 10开发的代码也可用于Xbox One,Windows Phone 10和HoloLens。 WPF仍然是“标准”桌面应用程序。
  • XBox很棘手。 XNA正在消失,而且微软似乎正在从该平台的社区创建内容中退出。 也就是说,Unity可以部署到XBox,并且我相信标准的DirectX(C ++)开发适用于它。 通用Windows平台应用程序也可以部署为Xbox One,这似乎是微软未来的战略。
  • 至于什么花时间,这取决于你的目标:)。 学习WPF / UWP + XAML将为您带来很多好处,如果您想在.NET GUI开发中保持“当前”状态,那就是我所要做的。 WPF具有最多的功能,因此,从那里开始,您只需找到UWP(或任何其他基于XAML的技术)中缺少的解决方法。

    如果你这样做,一定要学习MVVM(模型 - 视图 - 视图模型)模式。 它非常适合基于XAML的技术,并允许您在WPF和UWP应用程序之间共享大量逻辑。 如果您最终开发用于iOS / Android的Xamarin应用程序等,也可以使用相同的逻辑。

    请注意,对于真正的游戏开发,您需要一个实际的游戏框架(如Unity3D甚至XNA)。 你可以在WPF中做到这一点,这是比Winforms更好的选择,但它们都不适用于游戏。


    这是一个相当古老的线索,但就像我通过谷歌(出于兴趣)遇到了这种情况,也许其他人可能也会到达这里。 这是一个新的程序员反复提出的问题。 所以我想回答一些事情,现在Windows 10已经正式发布了。

    首先,不应该从Windows窗体开始。 目前它是最成熟的技术,但Windows Forms不会有任何进一步的发展,现在只是在维护阶段。 WPF是积极开发的(最后我读过)。 但现在,Windows Universal Apps(WinRT one)不再需要全屏使用,并且可以像其他桌面应用程序(WPF和WinForms)一样在窗口模式下使用。 这在非平板电脑上增加了很多可用性。 我相信这也将是桌面应用的未来。 虽然,WPF软件是传统的桌面应用程序(没有权限的东西,只有UAC)。 无论哪种方式,无论你学习WPF还是WinRT(使用.Net)开发,你最终都会学到两者。 他们都是XAML + C#(或其他一些.Net语言)。 当WinRT推出Windows 8时,我只是在学习WPF。我感觉就像在家里一样,只有很少的变化,你很快就会习惯。 不知道WinRT中的MVVM场景(数据绑定)。 我仍然在学习WPF的这一方面。

    Window 10刚刚启动。 Windows 8 / 8.1并没有像Windows 7那么成功。因此,如果你想构建一个拥有更广泛受众的应用程序,那么现在就应该使用WPF。 但在不久的将来,WinRT将是一条可行之路。

    对于你的问题,“应该在Window 7,Window 8(桌面和Metro),Window Phone(和Windows 10!)甚至x-box上使用哪些技术”,单一答案是Windows Universal Apps。 这是这个框架开发的确切原因。 一种技术可用于为所有设备开发应用程序。 桌面,平板电脑,手机(包括使用与Visual Studio 2015捆绑在一起的Xamarin的Android),Xbox和物联网(物联网)。


    我会尽力回答你的一个问题:

    Windows窗体是完全死了吗?

    不,Windows窗体技术并没有死光。 我会告诉你为什么。 WPF和XAML是非常全面和复杂的技术,您可以构建非常好的UI。 但! 这项技术需要深刻的知识。 对于基本布局,您不需要太多知识,但对于某些高级布局,您应该具备深厚的知识,当我开始使用此技术时,并花费大量时间在Google上搜索一些提示。 所以当我需要一些简单的用户输入表单时,我总是选择非常简单直接的Windows窗体技术。 这也是为什么这项技术在来到世界时非常成功的原因。 当你开始使用WPF时,你还需要知道什么是MVVM设计模式,而一些没有经验的程序员会与此混淆。

    链接地址: http://www.djcxy.com/p/43645.html

    上一篇: Windows GUI: WPF or WinRT (2015+)

    下一篇: Windows App Animations and components in WPF