Presentation logic

For quite a while some friends and I have been discussing whether it would be a good idea to create a framework for helping out with connecting the UI to a Domain Model [PoEAA]. Sure, there is data binding support in .NET and it works pretty well, but you need to add lots of uninteresting infrastructure code to your Domain Model. And the data binding works best for simple scenarios. Other things to consider are whether you want to hook your forms directly on to the Domain Model or if you need kind of a view of the Domain Model instead, whether there is more that can be done to help productivity, and so on, and so forth.

While discussing this, I was surprised that there is so little being written about it. Why is that? The answer is not that everything is solved if you're using DataSets to represent the Domain Model, not at all.

It's not completely quiet, however. Here are some disparate examples of certain interesting points:
  • First of all, something quite different from what most of us are used to is the idea of "Naked Objects", which means that the Domain Model objects themselves will automatically get a UI representation without any extra code having to be written.

    I felt I had to explain Naked Objects a little bit inline above so as to not receive scorching emails for using that term. I'm sure this blog post will get a great number of hits...
    ;-)

  • Rockford Lhotka has written an article about the Data Connector in Visual Studio .NET 2005.

  • Paul Wilson is talking about creating a UI-mapper here, here and here.

  • Microsoft has dedicated an application block called "User Interface Process Application Block" to this area.

  • Martin Fowler has recently published early drafts for patterns about organizing presentation logic here.
Perhaps the interest in this area is taking off now. What's your take?