Evan,
>Tracy,
>
>Everything new I'm developing is now completely event-driven rather than direct-method-call driven, regardless of the layer. It's improved my productivity several-fold.
>
>Benefits: you can develop the presentation layer without concern for the business or data layers (or others, for that matter); it's much easier to follow the MVC pattern; it's a breeze to develop stand-alone monitoring tools for your layers and/or components; loose coupling keeps the pieces-parts a lot simpler and quicker to develop/maintain; if you use MVC, multiple presentation layers to the same logic/data become a lot simpler to manage.
That makes sense in my (a novice) opinion
>Drawbacks: harder to debug (unless you're doing TDD on all the modules); you end up writing a *ton* of test stubs, which are a pain to manage (and remembering their names at my advanced age is also a problem -bg-); if you're not careful, same-layer validations can quickly become tightly coupled or circular; explaining your approach to other developers not at your skill level is a HUGE minefield; if you're developing a small app, it may be overkill.
>
>Just my USD$0.02...
Gregory