Ho scoperto che l'utilizzo dei componenti data-aware si traduce in un'applicazione senza una chiara distinzione tra logica aziendale e dell'interfaccia utente.
Questo va bene per piccoli progetti, ma man mano che diventano più grandi il codice diventa sempre meno gestibile.
Tutti i vari bit di codice evento (e le loro interazioni) possono diventare un vero incubo da capire!
Invariabilmente in questi casi ho abbandonato i componenti sensibili ai dati e sono passato a un design MVC (codificato a mano).
Ciò richiede molto sforzo di codifica iniziale, ma si traduce (IMHO) in un progetto che è gestibile, estensibile e di cui è possibile eseguire il debug.