Wilson UIMapper
Download Free Version
Purchase Full Version
Wilson UIMapper Forum
Documentation -- TBA
More Resources -- TBA

By Paul Wilson
WilsonDotNet.com Home
Paul@WilsonDotNet.com
Paul Wilson's Blog
Wilson ORMapper
The Best Web-Host
My Current Resume
Microsoft MVP
MS MVP, MCAD.NET
MCSD, MCSE, MCDBA
Microsoft Certified
ASPInsider
ASP.NET Moderator
About the Wilson UIMapper
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.

Donate