Probably the most familiar type of application, desktop applications provide a solution to a specific business problem.
Containing both a user interface and the business logic, the desktop application is a stand-alone solution whose job it is to satisfy the business needs.
Typically large, desktop applications need to have a well organised code base along with a solid build and deployment mechanism.
If the intention is to run the application on different platforms and and architectures, then the solution needs to support a context switching capability. This can be achieved either at run-time or build-time, and the particular circumstance will dictate which approach is the best fit.
Our Training Mate application is a good example, making use of run-time and build-time decisions, as well as being a large single application.