WinFormsWPFUsage
.NET - Programming - Software

Windows Forms smells funny, but…

In the “2016 .NET Community Report” just released by Telerik, the answers to the question “What technology would you choose if building for Windows Desktop?” were as follows:

WinFormsWPFUsage

So roughly half of new desktop developments would be based on Windows Forms, a technology declared dead multiple times. The Telerik report states: 

This is somewhat surprising when you consider Windows Forms is under maintenance mode,with no new features being added. For larger organizations, which may havelonger iteration cycles or legacy OS requirements, Windows Forms remains aviable platform for building desktop applications.

This report resonates with an episode of .NET Rocks, when Carl and Richard, both of them quite incredulous, told that a substantial part of revenue of software component makers still comes from the WinForms editions.

However, a properly written WinForms application can be much better than a spaghetti-code monster. For tuning your WinForms capabilties and writing high quality apps, I truly recommend the following course on the PluralSight site: Windows Forms Best Practices by Mark Heath. Here is the description of the course: 

WindowsFormsBestPracticesThis course demonstrates several best practices for Windows Forms development by taking a demo application and gradually improving it to improve the user experience and code quality. We’ll see how you can improve the layout and resizing of your application, and how you can make it more accessible, usable, and navigable from the keyboard. We’ll explore how to approach localization, exception handling, and threading. We’ll also devote time to various patterns that will help you write more maintainable and testable code. Finally, we’ll provide guidelines for creating your own custom controls, and see how you can interoperate other technologies such as hosting web and WPF content within a Windows Forms application.

Leave a Reply

Your email address will not be published. Required fields are marked *