Microsoft Trainer e Software Architect
Sviluppatore professionista dal 2001 con VB6, SQL 2000 e Access creando applicazioni gestionali di varia natura. Passando rapidamente a .NET, windows e web, ho poi espanso le mie esperienze su Compact Framework, SQL Server Mobile ed infine BizTalk Server.
Negli ultimi anni mi sono focalizzato sempre più sullo sviluppo distribuito ed enterprise conseguendo nel contempo le seguenti certificazioni:
Microsoft Certified Trainer (MCT)Microsoft MCPD .NET 3.5 Enterprise Applications DeveloperMicrosoft MCTS .NET 3.5 WCF Applications DevelopmentMicrosoft MCTS .NET 3.5 ASP.NET Applications DevelopmentMicrosoft MCTS .NET 3.5 ADO.NET Applications DevelopmentMicrosoft MCTS .NET 3.5 Windows Applications DevelopmentMicrosoft MCTS .NET 2.0 Distributed Applications DevelopmentMicrosoft MCP .NET
Ciao a tutti
spesso leggo altri parlare di architettura o di scelte….. sui forum MSDN c’è di tutto: chi vuole creare una textbox che capisce da sola in quale DB andare, come andarci, come leggere i dati e come fare il caffè; ma c’è anche chi dice che senza il DDD non riesce nemmeno a farti una paginetta htm per farti vedere che ora è in javascript….
Ovviamente, sono eccessi, di entrambi i mondi
Microsoft ed il suo approccio RAD da 15 anni ormai con Visual Basic 1,2,3,4,5,6, e poi .NET, ci è sempre venuta incontro
Ma cos’è il RAD?
RAD significa “sviluppo rapido di applicazioni”, in pratica?
visto che ormai abbiamo controlli grafici molto potenti, in grado di sapere che colonne farci vedere o no di una griglia, o come farci fare dataentry comodamente con 4 click, allora Microsoft ha sviluppato una miriade di controlli simili per WindowsForms o per ASP.NET dove è possibile collegare direttamente i controlli alla sorgente dati
Andremo a realizzare applicazioni data-driven (completamente orientate e basate sui dati) in poco tempo ma con un altissimo costo di manutenzione, si, perchè qualunque modifica ai dati, costerà modificare tutte le applicazioni che li usavano a mano rilanciando i vari wizard di creazione dei vari controlli usati…..
Quando usare il RAD? Quando sappiamo che dobbiamo usarlo per qualcosa ke non cambia mai, la cui complessità è irrisoria, il cui DB è praticamente nelle nostre mani, e dove ovviamente non c’è logica di business (perchè praticamente è impossibile iniettarla in quei controlli)
Alternative?
Al crescere della complessità del problema (accesi concomitanti, logica di business, validazione, modifiche frequenti alle entità, etc) crescono le soluzioni per potenza e complessità (o numero di classi da usare) e ovviamente più andiamo avanti meno controlli automatici avremo
In ordine, troveremo per la business logic
TransactionScript
ActiveRecord
DomainModel
E per le UI:
MVC (ASP.NET MVC per i più)
MVVM (per WPF e SilverLight)
Senza dimenticare il fatto che ormai quasi sempre la logica di business risiede in dei servizi ad hoc secondo lo standard SOA
a presto