My company is getting ready to update several applications. Two of the applications share some common functionality. One of them is a WinForms project for in-house and the other is public facing for our customers. Both of the apps support event entry (an "event" is one of our business objects) in the exact same way.
The event entry process is very complex, with lots of validation, enabling and disabling, visibility toggling, etc. Initially, the apps were developed at different times without knowing that this shared functionality would occur which lead to a lot of code duplication and a synchronization nightmare.
Going forward, I would like to choose a model that fixes this problem. I would like to have a common class (or classes) that handle ALL of the logic in one place. For the most part, we've had the UI handle the "simple" validation (required fields, valid values, etc.) and how to display the form (visibility, enabling, etc.). We then had the "complex" validation handled by our business logic layer. Personally, I thought that the display handling should have been performed at the BLL since the changing of one property affected the display of others, but that seems like it would have required me to "hook" it into the UI (e.g., UI provides reference to its controls to BLL or BLL says whatever co
View Complete Post