Tell me how to understand this, when I first started reading books, they wrote to me "Start with console applications." Then, when I completed this course, in another book I started talking about WinForms, and now I started reading another book, where the author writes in general:

Why write under WinForms, because its elements have hardly changed in the last 10 years, learn better WPF

I am now like a hedgehog in the fog. What to learn? What to stop? What is next? Maybe I will teach WPF, and in another book they will already talk about a new, more colorful application writing? You can help unravel and arrange everything on the shelves ... please.

  • 3
    in my opinion, this is quite a normal phenomenon of things - technologies are developing, the main thing for a good programmer is not to know 100% of any one technology (although this is desirable), but to be able to quickly deal with new ones, otherwise you just cannot stay in this industry - Specter
  • wpf more practical. - ishidex2

4 answers 4

If you are interested in programming desktop applications under Windows, then it is better to stop at WPF, since:

  • it's just the newest technology at the moment
  • uses a 3D accelerator to draw the interface
  • Well, there are much more ready-made possibilities for interface "decoration"

Although, if you use WinForms, applications will also work fine, so the choice is yours.

As for what waits further, then no changes are planned for the release of Windows 8 . But as promised in Microsoft, after its release it will be possible to develop an interface for desktop applications using HTML + CSS + JS.

  • 2
    ... and hemorrhoids with Metro UI - Specter

Yes, depending on what you want to create. WPF is more suitable for cool computers with a minimum of XP, with .NET 3.0. The library is heavy, but in Windows Vista it is already the default. But for these inconveniences, WPF provides good benefits in almost everything, but only on Windows. WindowsForms can be designed and even preferable, it has the following advantages over WPF (as I remember, I will write as much)


  1. SDI and MDI applications (although there are libraries for emulation)
  2. easier to organize the interface OpenGL, DirectX
  3. Theoretically cross-platform due to the availability of MONO Framework
  4. GDI + is easier to handle (but slower) than a wrapped WPF render system
  5. Contrary to popular misconception, support and translucent windows
  • five
    Although WindowsForms is still supported, it still remains a wrapper over WinAPI. A bunch of applications written in WinAPI is an anchor that does not allow to develop the OS. .NET mitigates transfer problems, but does not eliminate them. So WPF =) is better after all. Advantages: 1. It is drawn through Direct3D, the graphics card is engaged in graphics and not the processor. Transparency, transformations work extremely quickly. 2. The interface with D3D is not needed, and to create an OpenGL context in such a window, it is enough to simply create a Windows FormsHost control, which HES has hWnd and hDC. 3. Huge customization options. - allcreater 2:26 pm
  • I agree to all 100% - semenvx27

If you need more global information on the withdrawal of any images, it seems to me, you need to learn DirectX and OpenGL. If you need a simpler, then WPF. Glad if I can help decide.

    Personally, I (really, along with Microsoft) will recommend starting to study the UWP, Universal Windows Platform. Microsoft strenuously (but, unfortunately, not very effectively) pushes this technology, and, judging by everything, will push it for some time until top management once again changes.

    Again, programming for WPF and UWP has a lot in common, so that having mastered UWP, you can easily write standard Windows applications, and not only compatible with Microsoft Store.

    In addition, the ability to program UWP applications is attractive in a purely practical sense: having mastered this, you can publish your application in the store, and make it available (potentially) to hundreds of millions of users. Not a fact, of course, that your application will enjoy at least some success, but you will get several hundred downloads for any. And working with a real project, and real-world feedback is the best practice for a novice programmer, it’s orders of magnitude better than doing the “standard” exercises from the textbook, take my word for it!