Calcium is an MVVM toolkit for UWP, WPF, Windows Phone, and Xamarin apps. It provides much of what you need to rapidly build sophisticated yet maintainable apps
More information about Calcium can be found at calciumsdk.com
Use NuGet to install Calcium in your project via issuing the following command in the package manager console:
Get up to the minute news on Calcium at twitter.com/calciumsdk
Follow Calcium on Facebook
Calcium is a project by Daniel Vaughan
Calcium for Xamarin.Forms
Xamarin.Forms is now supported.
Read more here
With Calcium for Xamarin you can implement a cross-platform Application Bar component using the Xamarin Forms native rendering API with Menu Item support that works on iOS, Android, and Windows Phone; and which offers more features than the built-in Windows
Phone Application Bar.
With Calcium you can place images anywhere in a shared project as Content resources like in Windows Phone, and consume them in the same way across all three platforms.
Use Calcium in conjunction with T4 templates to enable localizability for your Android app.
Extend beyond current Xamarin Forms API capabilities to implement a quasi-data-template selector to materialize viewmodels in an MVVM compatible way.
Calcium for Windows Phone
Calcium for Windows Phone is a consolidation of the infrastructure code that has been written for the book
Windows Phone 7.5 Unleashed
, and is already used by a number of published apps. Calcium for Windows Phone is a light weight framework for incorporating the main features that every app needs. Unlike Calcium for WPF and Silverlight, Calcium for Windows Phone
does not depend on Prism and has a smaller footprint, more suitable for the mobile platform.
Some of Calcium for Windows Phone features include:
- A user options system that allows you to add a settable option to an options page, with a single line of code.
- A bindable application bar with toggle buttons and menu items, hyperlink button/menu items, which allows you to host multiple application bars in a Pivot.
- Built-in support for localization. Bindable resources allows the user to change the interface language at run-time.
- An IoC container and DI infrastructure, and templates to allow you to hide or show a Purchase link in your app depending on the • Trial state of your app and so forth.
- Templates for Views with ViewModels.
- Attribute based state persistence system.
- Message service that allows you to display messages and ask the user questions from your ViewModel.
- Launchers and Choosers abstraction layer.
- Input Validation system, with styles customized for displaying validation errors.
Calcium for WPF
Calcium for WPF consists of a client application and server based WCF services, which allow interaction and communication between clients. Out of the box, Calcium comes with a host of modules and services, and an infrastructure that is ready to use in your
The following is a list of just some of the features of Calcium for WPF:
- Visual Studio templates for instantly creating Calcium projects, including client applications, MVVM Module Templates, and server WCF host projects. (C# and VB.NET!)
- Module Manager for enabling or disabling of modules at runtime.
- Theme Support (with two themes included)
- Duplex messaging services for interacting with the user from the client or server using the same API. Interact with the user using Message Boxes from the server!
- A Command Service to associate WPF ICommands with content interfaces that only become active when an active view or viewmodel implements the interface.
- Region Adapters for ToolBars and Menus.
- Client-server logging ready to work out-of-the-box.
- Includes modules, such as a Web Browser, Text Editor, Output Window, and many more.
- Tabbed interface with dirty file indication (reusable across modules).
- A User Affinity module that assists collaboration with other users of the application.
- Undo/Redo/Repeat task management system.
- And many more!
For further information about this project please see