Windows GUI: WPF or WinRT (2015+)
I am trying to get an overview of the different technologies, to use when building GUI's in the Windows World.
For context, I am building a little 2d platform multiplayer game. (Just for learning purpose..)
My teacher says that he think that WPF is the right way to go, but it seems that he only compare it to Windows Forms.
My understading is, that here in 2015, Windows Forms is totally dead?
In this other stackover questions, they say WinRT+XAML is for Metro GUI building(Window 8 tiles thing!), and it seems that WPF is something used only for desktop in Window 7/8 and are close related to Silverlight..
How does Windows 8 Runtime (WinRT / Windows Store apps / Windows 10 Universal App) compare to Silverlight and WPF?
My real question is: Isn't there ONE good way to build GUI's in the Window World?
And if not, which technologies should one use on Window 7, Window 8(Desktop and Metro), Window Phone, (And Windows 10!), and even x-box..
Is it to different technologies to be compared this way?
What do you think is the right thing to invest time in?
There's a lot here, but here goes:
As far as what to spend time on, that depends on what you are targeting :). Learning WPF/UWP + XAML will yield you a lot of benefits if you want to stay "current" in .NET GUI development, so thats what I would go for. WPF has the most features, so by starting there you just have to find workarounds for what is missing in UWP (or any other XAML based tech).
If you do that, make sure to learn the MVVM (Model-View-View Model) pattern. It works really well with the XAML based technologies, and allows you to share a lot of logic between your WPF and UWP applications. The same logic can also be used if you eventually develop Xamarin applications for iOS/Android, etc.
Note that for true game development, you'll want an actual game framework (like Unity3D or even XNA). You can do it in WPF, and that's a better choice than Winforms, but neither are really meant for games.
It's quite an old thread, but like I ran into this through google (out of interest), maybe someone else could reach here as well. This is a question that is asked again and again by new programers. So I'd like to answer few things as well, now that Windows 10 is officially released.
Firstly, one shouldn't start with Windows Forms anymore. It's most mature technology for now, but there won't be any further development of Windows Forms, it's only in maintenance stage now. WPF is actively developed (last I read). But now, the Windows Universal Apps (WinRT one) no longer need to be used in full screen, and can be used in windowed mode just like other desktop apps (WPF & WinForms). This increases their usability a lot on non-tablet computers. I believe this will be the future for desktop apps as well. Although, WPF softwares are the traditional desktop apps (with no permissions thing, only UAC). Either way, no matter you learn WPF or WinRT (using .Net) development, you'll end up learning both. They both are XAML + C# (or some other .Net language). I was just learning WPF when WinRT came out with Windows 8. I felt right at home, only few minor changes that you get used to very soon. Not sure about the MVVM scenario (data-binding) in WinRT though. I'm still learning that aspect of WPF myself.
Window 10 has just launched. Windows 8/8.1 didn't see as much success as Windows 7. So if you want to build an app that has a wider audience, you should go with WPF for now. But in near future, WinRT will be the way to go.
For your question, "which technologies should one use on Window 7, Window 8(Desktop and Metro), Window Phone, (And Windows 10!), and even x-box.", the single answer is Windows Universal Apps. This is the exact reason this framework was developed. One technology to be used to develop apps for all devices. Desktop, Tablet, Phones (including Android using Xamarin bundled with Visual Studio 2015), Xbox, and IoT (Internet of Things).
I will try to answer only one of your question:
Is Windows Forms is totally dead?
No, Windows forms technology is not dead. I will tell you why. WPF and XAML is very comprehensive and complex technology and you can build very nice UI. But! This technology requires deep knowledge. For basic layouts, you don't need so much knowledge, but for some advanced layouts you should have deep knowledge and when I started with this technology and spent lot of time searching some tips on google. So when I need some simple Forms for user input I am always choosing Windows Forms technology which is very simple and straightforward. This is also reason why this technology was very successful when come to the world. When you start with WPF you also need to know what is MVVM design pattern and some not experienced programmers are confused with that.
链接地址: http://www.djcxy.com/p/43646.html上一篇: Log4net引用程序集依赖项问题