I’ve got some positive feedback on the article with C# so I decided to do a bit more digging into the subject.

So, you’re interested in coding in C# but you are not really sure what is best for you. Supposedly you are not interested in Console Applications and you want something with a nice interface you have to choices: Windows Forms and WPF. In the following lines I’ll speak about the two.

Windows Forms it’s definitely easy: easy to learn, easy to use and  has huge documentation, support and APIs, being here for quite a while now. There are also a lot more devs on Windows Forms than on WPF. It’s easy to learn and use because of “Drag and Drop” feature by which you can build a functional application very fast. If you are in need of an app that does something and you are not really interested on how does it look you can go for Windows Forms.
Usually, you’re using Windows Forms to do something (internal) and you don’t have much time at disposal.

Windows Presentation Foundation(WPF) on the other hand is newer, fewer devs working with it and it’s a bit harder to learn to new comers. In WPF you have much more freedom of design and if you would wanted a professional app (i.e. for clients) you should go for WPF. The look and feel is just great, it looks modern and behave accordingly. In WPF you can add lots of animations, transitions, making it suitable for end-users UI. However there is a bit of a trouble to new comers, why is that exactly?
Well, because there is an XML (XAML) component which is in charge of design and not many people are used to it first hand, but once you get used it, it’s really great: it is more maintainable, cleaner and you can control your elements very precisely.
There is also the advantage of data binding, as WPF is great with it having behind it the MVVM pattern (Model – View View – Model) .
Also, if you’re learning WPF now it’s going to be much easier for you to design and code Windows 8 (8.1) Apps or Windows Phone apps as those apps have similar behavior.

EDIT: What I forgot to mention is that Windows Forms is portable to other platforms through the Mono Project but WPF is not.

Code snippets:

[gist id=8639173 file=WindowsForms]

[gist id=8639173 file=WPF]


To summarize, you use Windows Forms when you want something fast and you don’t care that much about the interface and WPF when you want something more elaborate and UI is a decisive factor. Keep in mind that Windows Forms it’s easier to learn and use and WPF represents somehow the future.


Simple Share Buttons