The User Interface Process Application Block (UIP) is an interesting beast. I know it’s got a strong following based on the number of people who have asked me when this block will be given the Enterprise Library treatment. On the other hand I’ve also spoken to a number of people who have tried to use the block but eventually dismissed it as it was deemed to complex for their application. Now this isn’t a bad thing on its own – the last thing we want is for people to use blocks where they aren’t appropriate. However if too many people come to this conclusion then it indicates that we’ve missed the mark.
I came to p&p relatively recently from consulting land, and I never came to use UIP on a project, although I did work with a UI framework with a similar architecture (i.e. a state machine governing the navigation). Although this project made it to production, I came to the conclusion that it would have been much better to use a much simpler “pure ASP.NET” architecture. Now I do think the UIP has a really nice architecture (especially for drawing on a whiteboard), and there are definitely projects that benefit from the formal separation of the UI screens from the navigation process. But I do wonder whether this represents closer to 70% or 10% of enterprise ASP.NET applications.
So what does the future hold for UIP? Really, it’s up to you. We’ve already decided (based on extensive feedback) to split the block into separate deliverables for Web and Smart Client development (see edjez’s blog from last year for more). The latter is being delivered into the upcoming Composite Application Block, while the former lies in my (capable? you decide) hands. Our current priority is to move the Enterprise Library v1 blocks to Whidbey, but we promise to get to UIP Web as soon as we can. We are looking at ways to make UIP more relevant to more applications – our current plans are to evolve UIP to focus more on providing a solid MVC implementation. The navigation graph / state machine would stay, but more as an optional component than the central theme. And of course all new blocks will adhere to the new Enterprise Library specification, including support for the configuration tool and new documentation format. But we’re far from having the specs locked down. Please let me know if you’ve used UIP v1 or v2, what worked for you, what didn’t, and whether you think the proposed direction is the right one or if you have any better ideas.
PS… in cased you missed it, we’ve posted some new sample configuration providers (app.config, registry, SQL server and Mvp.Xml serialization) to the Enterprise Library community. Also Scott has posted a new installment of his tutorials on extending the Configuration Application Block.