This article will show 9 of the most important things that need to be considered in advance or at the start of development. Considering this in early stages can save you rewriting code, doubling back in technology or choosing something that you will later regret but unable to replace. The first order of business is chossing your UI technology. There are many great UI frameworks for Windows, each with its own advantages and limitations. The results are as follows:. NET Controls space. So another way to check for popularity is a simple research in StackOverflow. I searched the Tags of all the technologies and compared them.
WPF , for example, has K total questions, Electron , on the other hand, has 6. The exact data can be seen here. The only surprise for me was the relative popularity of Qt. It makes a lot of sense to choose a popular technology. It will have more experienced developers available for hire, more tools, more documentation, and more 3rd party libraries.
Manual Programming .NET Windows Applications: Rich Client Applications with C# or VB.NET
I am personally a big fan of WPF. It has a lot of advantages including the best Binding mechanism and the best Templating infrastructure that I ever worked it. How do you plan to deliver your software to your customers? This should be a business decision before considering technology options. Consider what are your limitations and what is your optimal customer experience. They might want to be explicitly informed about the upcoming update and its release notes. Some customers, like military device applications, might not have internet access at all and the update will have to be performed with a Flash Drive installation.
My point is that deployment is foremost a business decision and only then technological. On deploy, the user or your application will run the installation program which will copy your packaged application to the current PC and do a bunch of additional jobs like: Write to Registry, Add Start-Menu shortcuts and associate files to your program. The idea behind those concepts is to create an automated workflow for your development. An automated flow is triggered on demand or after a code check-in.
It can do the following:.
The above bullet points are just an example of course. Each project will have a different automation flow, and possibly several of them. NET program after crash Post-morterm debugging to better understand what pieces you can use after your program crashed and how to use them for debugging. Having much experience in this matter, I would suggest creating your application with Theming considered in advance. If you do need Theming according to your business needs, you should architect your application accordingly.
Note that some Control Suites see next include support for popular themes like Material Design. It might make sense for you to buy a set of such controls, since developing those yourself can be difficult and time-consuming. Especially if you want some of the more advanced features.
For example, if your team is already experienced Caliburn. Desktop Application Development for Windows is full of complexity like any software solution.
Windows Presentation Foundation
I love Desktop Applications because I think the challenges are more interesting than in a typical web development. In Desktop Applications there are usually more logical, algorithmic type of problems, multi-threading issues, and a lot of UI work which I enjoy. Thank you for reading and subscribe to the blog for more interesting in-depth articles on desktop application development and programming in general. Email Address. Great set of information. Thanks for the feedback Reshea. Hi Michael, I would recommend your article for those who gonna develop new desktop application.
Since I am gonna be one of them, I found it very informative. I am looking for some references and ideas. Micro is a great opinionated library.
- 2. Choose a Deployment Strategy.
- Building Smart Client using .NET - CodeProject?
- PDF Programming .NET Windows Applications: Rich Client Applications with C# or VB.NET.
And Prism is an option, best for larger applications. I personally use Wpf.
- The Good and the Bad of .NET Framework Programming | AltexSoft.
- Microsoft Visual Basic .NET 2003 Kick Start Chapter 3: Building Windows Applications.
- Dont Ask, Dont Tell: Homosexuality, Chaplaincy, and the Modern Military.
MVVMC which is my own and best for apps with many screens. Xceed has a free Controls library. Hey vcoder, just stumbled upon your comment. I have worked on an application very similar to the one you have in the link you shared. It looks like a visualization system and I used WPF for a similar application and was a great success. Both are robust and reliable technologies. I have worked in medical technologies space for years and always seem to fall back on wpf and winforms, especially for algorithmic performance, ease of use.
I avoided all rapid development technologies in this article though. Actually one of the biggest features of WinForms is that it allows the development of very fast custom controls, like the ones used in image editing, graphs, flowcharts etc or skinnable controls. Others, like WPF, have slow screen updates.
Mobile viofatrestfohe.ga: Exploring the .NET Compact Framework
Hi Michael great article. Can you elaborate more on how to build a Custom solution for a Deployment Strategy. The short version is uploading an installer file to a fixed network location. Like on Amazon S3. That will include the installer and the manifest file. The manifest file will include a version number and a hash of the installer. Then, the desktop application checks for new versions all the time.
What is .NET development platform
If a newer version exists, it downloads the installer file and runs it locally. I thought it was right on the dot when you said that creating your application with theming is a good option. It can reduce strain on the eyes or add a personal flair which I think everyone likes to get behind. Too many applications today just use a ready theme like material design, fluent design, or bootstrap in case of web.
It looks better than no theme, but a custom theme can look even better. Excellent article Michael, i was developing an ERP software since ! And the question is to continue on Windows or to develop for the web. Business needs should come first.
Is it a better fit for a desktop application or for the web? If for desktop, I recommend WPF.