Crystal is a library for building composite .NET applications and components, with some battle-tested design principles and practices. It helps developers for architecting loosely coupled, testable, and maintainable applications with complex business logic and visual sophistication. It aims to provide complete
infrastructure and glue for composite applications in various industries. It has been coming from collective
knowledge and experience of many people in software industry and others. It is the result of software development practices in small companies and large corporations. Crystal has been building based upon the original Microsoft Composite Application Guidance for WPF
in 2008, and the Prism in 2009 under Microsoft Patterns and Practices, and now in Github Prism
.
The Crystal have been created for modern applications targeting .NET 5.0 and above. It contains an integrated Dependency Injector, Module Management, and other features to provide complete
toolkits for developers.
Composability
: Full support modularity at various level in application.
Extensibility
: The ability to enhance, extend, or replace pieces of the Crystal Library without requiring users to redesign the applications.
Performance
: The Crystal Library minimizes overhead while the application is running.
Testability
: UI and business logic are to be tested.
Crystal library is built into two packages for two kinds of modules in .NET: Crystal.Core
is designed for modules which refer to Microsoft.NETCore.App
, and Crystal.Desktop
is designed for modules which refer to Microsoft.WindowsDesktop.App.WPF
:
In this library, two packages are built to facilitate the UI customization:
Wiki
contains more details about key design and implementation about Crystal library.
Samples
contains sample applications using Crystal library.