After a little research we decided on the Peter Blum Data Entry Suite for the rebuild of the online application at TechInsurance.com and BusinessInsuranceNow.com. The project has been going on for over a year now. But I've been very pleased with Peter's suite. And his documentation and support is truly unparalleled.
So onto the project -- first of all, the online applications in the two sites are extremely dynamic. I mean, the application has to handle dozens of different business types and only ask questions that are relevant to the user. So this task is difficult in and of itself. But one issue in particular is the dynamic nature of each page individually. The site needs to show & hide questions dynamically based on answers to other questions on the same page. And of course the invisible questions need not be validated. So in the old (or shall I say current) versions of the site I handled all of this with carefully written javascript and server-side code. It was always absolutely critical that the Javascript followed the same rules as the server-side code so only the visible questions were required. But when dealing with applications of this magnitude I would occasionally make mistakes that would show their ugly face when a complex set of conditions were met.
Now, with the Peter Blum suite I can actually utilize the MultiFieldStateController, and the VisibleCondition inside an EnablerContainer to take care of all this logic in a declaritive fashion. When I do that the DES suite will actually handle both the client-side and server-side portions of this visibility and validation functionality. And that means I don't have to write a lick of Javascript. And I don't have to constantly test that my Javascript code is working the same as the server-side code because I know that the DES is taking care of it for me. This is just a small portion of the overall suite but this is the functionality that is the most useful to me by far.