The Quicklight project is a collection of libraries that, along with the
- The Quicklight.Web library contains classes used to write a GUI using patterns and tools such as MVVM, dependancy injection, Razor generated views, region management and event management. It allows you to write an application consisting of
loosely coupled modules. It is inspired by the
Microsoft Prism library. A tutorial on the patterns employed is available for viewing on
- The Quicklight.Net library which contains meta data for the
- The Quicklight.Mobile library which contains meta data for the
a native app using the PhoneGap online compiler.
The vision for this project is that it will be used to create applications of a wide range, covering diverse platforms, but with only one C# codebase. It is envisioned that the different resolutions of the supported devices are addressed by using different
views (but the same business logic), and that the application will simply load the resolution specific views in the dependancy injector, thereby displaying the correct view for the device.
The Quicklight.Web library is designed to be used with the MVVM design pattern. Within this pattern the ViewModel is not aware of the View. Therefore it should be used with declarative component libraries, instead of programmatic component libraries, and
the view properties, collections and events should then be binded to the elements of the view. Declarative component libraries include:
- Bootstrap http://twitter.github.com/bootstrap/index.html
- KickStart http://www.99lime.com/
- jQuery Mobile http://jquerymobile.com/
- jQuery UI http://jqueryui.com/
- XTag http://x-tags.org/
jQuery UI does have some programmatic parts, but because it has been wrapped for the Saltarelle compiler it can be used with Quicklight.
It is possible to use programmatic component libraries with Quicklight if there are metadata libraries for these programmatic component libraries. Unfortunately none, except for jQuery UI, currently exist.