Lumeresoft™ is a Light Emitting Diode (LED) testing software suitable for laboratory and production environment. The software architecture is built upon these 3 technologies:
Windows Presentation Foundation (WPF) is a next-generation presentation system for building Windows client applications with visually stunning user experiences. The core of WPF is a resolution-independent and vector-based rendering engine that is built to take advantage of modern graphical hardware. WPF extends the core with a comprehensive set of application-development features that include Extensible-Application Markup Language (XAML), controls, data binding, layout, 2D and 3-D graphics, animation, styles, templates, documents, media, text and typography. WPF is included in the Microsoft.NET Framework, so you can build application that incorporates other elements of the .NET Framework class library.
While WPF give us the ability to build a rich content UI, MEF which is a library for creating lightweight & extensible applications, allows application developers to discover and use extensions with no configuration required. It also lets extensions developer to easily encapsulate code and avoid fragile hard dependencies. MEF not only allows extensions to be reused within the application, but across applications as well. Instead of explicit registration of available components, MEF provides a way to discover them implicitly, via composition. A MEF component, called a part, declaratively specifies both its dependencies (known as imports) and what capabilities (known as exports) it makes available. When a part is created, the MEF composition engine satisfies its imports with what is available from other parts.
Caliburn.Micro MVVM Framework on the other hand provides a strong support for MVVM (Model-View-ViewModel) presentation model design pattern which allows the decoupling or separation of the development of the graphical user interface elements (either as markup languages or GUI code) from business logic or back end logic know as model (also known as the data model to distinguish it from the view model). MVVM was designed to make use of data binding functions in WPF to better facilitate the separation of view layer development from the rest of the pattern by removing virtually all GUI code (“code-behind”) from the view layer. Instead of requiring user interface (UX) developers to write GUI code, they can use the framework markup language (e.g. XAML) and create bindings to the view model, which is written and maintained by application developers. This separation of roles allows interactive designers to focus on UX needs rather than programming of business logic, allowing for the layers of an application to be developed in multiple work streams for higher productivity. Even when a single developer works on the entire code base, a proper separation of the view from the model is more productive as the user interface typically changes frequently and late in the development cycle based on end-user feedback.*