Alf*_*sen 93 c# wpf user-interface window windows-runtime
我试图了解在Windows World中构建GUI时使用的不同技术.
对于上下文,我正在构建一个小的2D平台多人游戏.(仅用于学习目的..)
我的老师说他认为WPF是正确的方法,但似乎他只将它与Windows Forms进行比较.
我的理解是,在2015年,Windows Forms完全死了?
在其他堆栈问题中,他们说WinRT + XAML用于Metro GUI构建(Window 8 tiles thing!),似乎WPF仅用于Window 7/8中的桌面,并且与Silverlight密切相关.
Windows 8 Runtime(WinRT/Windows应用商店应用程序/ Windows 10通用应用程序)与Silverlight和WPF相比如何?
- 桌面是旧应用程序所在的位置(红色.WFP).
- 新的应用程序类Metro应用程序可以通过多种方式构建,包括VB.NET,C#或C++.这三种语言选项可以使用XAML来构建UI.另一种方法是使用JavaScript/HTML5/CSS来开发UI和应用程序代码.
我真正的问题是:在Window World中有没有一种很好的方法来构建GUI?
如果没有,应该在Window 7,Window 8(桌面和地铁),Window Phone,(和Windows 10!)甚至x-box上使用哪些技术.
这种方式比较不同的技术吗?
您认为投入时间的正确方法是什么?
Bra*_*NET 131
这里有很多,但是这里有:
至于花时间,这取决于你的目标:).如果你想在.NET GUI开发中保持"最新",学习WPF/UWP + XAML将带来很多好处,这就是我想要的.WPF具有最多的功能,因此从那里开始,您只需找到UWP(或任何其他基于XAML的技术)中缺少的内容的解决方法.
如果这样做,请确保学习MVVM(模型 - 视图 - 视图模型)模式.它与基于XAML的技术配合得非常好,并允许您在WPF和UWP应用程序之间共享许多逻辑.如果您最终为iOS/Android等开发Xamarin应用程序,也可以使用相同的逻辑.
请注意,对于真正的游戏开发,您需要一个真正的游戏框架(如Unity3D甚至XNA).你可以在WPF中做到这一点,这是比Winforms更好的选择,但它们都不适用于游戏.
Pra*_*ain 26
这是一个相当古老的线程,但就像我通过谷歌(出于兴趣)遇到这个,也许其他人也可以到达这里.这是一个新的程序员一次又一次地问的问题.现在Windows 10正式发布,我想回答一些问题.
首先,不应该再从Windows Forms开始了.它是目前最成熟的技术,但不会有任何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(桌面和地铁),Window Phone,(和Windows 10!),甚至x-box 上使用哪些技术.",单一答案是Windows Universal Apps.这就是该框架开发的确切原因.一种用于为所有设备开发应用程序的技术.桌面,平板电脑,手机(包括使用与Visual Studio 2015捆绑的Xamarin的Android),Xbox和IoT(物联网).
Tom*_*pis 23
我将尽力回答你的一个问题:
Windows Forms完全死了吗?
不,Windows表格技术并没有死.我会告诉你为什么.WPF和XAML是非常全面和复杂的技术,您可以构建非常好的UI.但!这项技术需要深入的知识.对于基本布局,您不需要太多的知识,但对于一些高级布局,您应该有深入的知识,当我开始使用这项技术并花费大量时间在谷歌上搜索一些提示.因此,当我需要一些简单的表单供用户输入时,我总是选择Windows Forms技术,这非常简单明了.这也是为什么这项技术来到世界时非常成功的原因.当你从WPF开始时,你还需要知道什么是MVVM设计模式,而一些没有经验的程序员则对此感到困惑.
Gar*_*eth 16
现在是2016年4月,目前仍然没有明确答案.我们正在开发一个非常现代的实时性能监控桌面应用程序,它必须呈现多个图表和显示,混合文本和各种其他图形.我们的应用程序是带有.NET Framework 4.5.2的C#,WPF,但我们仍然使用WinForms和GDI +编写一些组件以获得可接受的性能.我们还没有用WPF实现它.我们甚至在应用程序中使用DirectX开发了几个显示器,但这增加了很多复杂性,只有少数团队可以支持.我们可以通过在WPF中托管WinForms显示和GDI +的速度来获得简单和纯粹的速度,这使我们能够以昂贵的纯View/ViewModel结构获得所需,同时还需要处理各种空域问题.我们的应用程序非常专业,我很想完全摆脱WinForms,但不幸的是,在我们的案例中这还不可能.对于纯粹的性能,您需要使用DirectX或WinForms.
我的两分钱......如果你想要真正的通用应用程序,意味着可以在包括Windows在内的任何桌面操作系统上运行的程序,WinForms仍然是可行的方法.只需确保您保持CLR兼容性,您就可以通过Mono在Mac和Linux上进行部署.一个巨大的好处.XAML可能很酷,但它不会被移植到其他操作系统.
我个人觉得沙盒(quicksanded?)的UWP商业模式令人恐惧; 它反对Windows从一开始就代表的开放性.
我使用 Microsoft 技术已超过 10 年。我学到的最重要的事情不是只听微软提供给你的东西。当微软说这是未来时,它有 50% 的机会出错。微软肯定会尽其所能来推广他们投资的产品,但这并不意味着你应该遵循。看看 WCF 和 Silverlight 会发生什么。
虽然 WPF 是一个非常好的学习平台,但它有一个巨大的学习曲线。我认为任何编程经验不足 5 年的开发人员都不能正确地使用 WPF。
通过遵循 MVVM 模式,您会发现在 WinForm 中做一些相对容易的事情在 WPF 中变得非常具有挑战性。就像更新后根据某些条件为单元格着色,或者在视图中滚动一行并突出显示它。
当然你可以说你不用做MVVM。只需将您的代码放在后面的代码中并使其工作即可。是的,这会起作用,但是使用 WPF 有什么意义呢?为什么不直接使用 Win Form?
| 归档时间: |
|
| 查看次数: |
59262 次 |
| 最近记录: |