|
The WilsonUIMapper is a simple-to-use UI Mapper (User Interface Mapper) for .NET v1.1 and beyond.
What is a UI Mapper? A UI Mapper is a library and set of controls that allows your UI to be dynamically
created at run-time, loaded from your business entity objects, as well as to persist the UI changes back.
It also allows you to use your own DAL, Framework (like CSLA), or O/R Mapper (like NHibernate, LLBLGen Pro,
WilsonORMapper) to transparently load and persist your business entity objects to a relational database.
UI Mappers are not new -- they have been around for some time, although until now they were typically application
specific uses of meta-data, whereas the WilsonUIMapper makes it possible to use this approach in any application.
Why use a UI Mapper? Most reasons are centered around flexibility and maintainability. A good UI Mapper lets
you target both Web and Windows applications, as well as making it easy to support multiple layouts and localization.
Multiple layouts make it easy to provide role-specific views and/or user personalization, and the integration with
your DAL or O/R Mapper makes it easy to support full paging and sorting, as well as multiple databases.
A good UI Mapper also makes your UI very consistent and your code base much smaller, while letting
you focus on your business logic, instead of worrying about how to create routine admin-like screens.
Note that a good UI Mapper does not generate code that you have to compile and maintain.
What about the downside? Its very true that your most important screens will probably be too sophisticated
for a generic UI Mapper, but most applications have 80% of their screens being routine admin-like screens.
Its also true that a dynamically created edit screen may be a little slower, but you should find it very minimal
and not significant anyhow for admin-like screens. By the way, I've actually found my list screens to perform
a little better than most typical solutions, especially for web applications. Finally, its also true that
a code-generation approach can be much more customizable for your own needs, but that is often far more work,
especially for simple applications and for the typical admin-like screens in any application.
And the WilsonUIMapper? It supports both Web and Windows applications, and your own custom DAL or O/R Mapper,
as well as the WilsonORMapper. You can also create and plug-in your own custom Widgets to wrap 3rd party controls,
like Infragistics, or to make your own edit controls. You should be able to even use CSLA, NHibernate, or LLBLGen Pro
-- all that is required is that you implement the IORMapper interface. You can also use any technique you wish
to localize the UIMapper controls, by implementing the IResources interface -- or do nothing at all and it will
use the strings in your UI Mappings. Its designed to be as simple to use as possible -- just create a simple
Xml UI Mapping file, with the help of a CodeSmith template.
The basic UIMapper framework is totally free, including the source code, and I encourage anyone to create,
freely distribute, or sale custom UI controls that support this framework. My Web and Windows controls have
free versions that display footer notices when used, and you can use these in any application if you don't
mind these footer notices. Or you can purchase my UI controls, both the Web and Windows sets, for $50 to
remove the footer notices, including the full source code, as well as the WilsonORMapper if desired.
But as much I like to make the occasional $50, I also really do want to encourage the use and growth of
the basic UIMapper framework with custom controls by others and integration with other DALs and O/R Mappers.
|