Jag har upptäckt att användningen av de datamedvetna komponenterna resulterar i en applikation utan tydlig åtskillnad mellan affärs- och användargränssnittslogik.
Detta är bra för små projekt, men när de växer sig större blir koden mindre och mindre underhållbar.
Alla de olika bitarna av händelsekod (och deras interaktioner) kan bli en riktig mardröm att förstå!
I sådana fall har jag alltid lämnat datamedvetna komponenter och bytt till en (handkodad) MVC-design.
Detta kräver en hel del kodning i förväg men resulterar (IMHO) i ett projekt som är underhållbart, utbyggbart och felsökbart.