Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Quanto costa l’inversione di controllo

Tempo fa si discuteva sul blog di Ayende, sul discorso tecniche di inversione di controllo etc etc, in sostanza ci si chiedeva se questi concetti sono alla portata dello sviluppatore medio, oppure se sia possibile "far digerire" ai project manager l'idea di usare librerie Open Source (Spring.Net o Castle) in progetti reali. Questo ultimo punto è particolarmente sensibile, perché talvolta la reticenza è alta, la diffidenza verso l'Open Source è ancora radicata in certi casi. Questo però non vuole dire rinunciare in partenza a scrivere codice basandosi sui sani principi della IoC dato che alla fine con tre righe di codice si può comunque fare IoC rudimentale.

private static IConnector CreateConnector() {
   
String ConnectorTypeName = ConfigurationManager.AppSettings["IConnectorService"];
   
Type ConnectorType = Type.GetType(ConnectorTypeName, true);
   
return (IConnectorActivator.CreateInstance(ConnectorType);
}

Ok, non si ha il controllo sul ciclo di vita dell'oggetto, bisognerebbe gestire le eccezioni per generare un errore significativi e mancano tante altre cose tipo la configurazione delle proprietà, ma il suo sporco lavoro lo fa, mi permette di specificare da file di configurazione la classe da utilizzare per soddisfare l'interfaccia IConnector e questo mi permette ad esempio di specificare dal file di configurazione una classe apposita per fare i test. Siamo ben lontani dalla potenza di Spring o Castle, ma il risultato è soddisfacente e non si debbono iniziare epiche discussioni sul codice Open Source.

Alk.

Print | posted on lunedì 19 novembre 2007 15:16 | Filed Under [ .NET ]

Feedback

Gravatar

# re: Quanto costa l’inversione di controllo

proprio la strada che ho preso io in questi giorni per un progetto semplice che faceva da supporto per un corso base di architettura .NET
19/11/2007 17:00 | Adrian Florea
Gravatar

# re: Quanto costa l’inversione di controllo

Alla fine io utilizzo IoC spesso per il testing, non sempre è necessario avere differenti implementazioni per una data interfaccia, ma nel caso specifico ho un componente che genera codici in base ad un lettore Rfid, per cui è fondamentale che io sia in grado di testare le logiche quando il lettore fisico non è presente, in questo modo da un semplice file di configurazione posso decidere il comportamento, gestore del lettore fisico, oppure componente dummy che mi apre una form e io decido quali codici tornare...tutto questo senza che nessuno possa questionare su Castle, Spring.NET o similari.

Alk.
19/11/2007 19:10 | Gian Maria
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET