Invest in people before investing in tools

Il blog di Matteo Baglini
posts - 118, comments - 95, trackbacks - 697

settembre 2007 Blog Posts

[Spring.NET #13] Spring.Core, IoC e DI (Constructor Injection)

Grazie alle funzionalità di Constructor Argument Resolution viste nei post precedenti Spring.NET implementa l' IoC di tipo 3 (Constructor Injection).  Iniziamo estendendo la classe per tradurre frasi dall'inglese all'italiano in modo che supporti altri linguaggi, per fare questo applichiamo il Design Pattern Strategy. Creiamo l'interfaccia ITranslator la quale rappresenta il contratto: 1: public interface ITranslator 2: { 3: string Translate(string phraseToTranslate); 4: } procediamo implementando le classi che si occuperanno realmente di tradurre la frase, ne facciamo una dall'inglese all'italiano: 1: public class EnglishToItalianTranslator : ITranslator 2: { ...

posted @ mercoledì 26 settembre 2007 22:18 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Rilasciato Castle Project 1.0 RC3

E' stata rilasciata una nuova Release Candidate di CastleProject, scaricabile dalla pagina di download. Sul blog di Hammet potete leggere l'elenco delle novità rispetto alla versione 1.0 RC2. Technorati Tags: CastleProject

posted @ venerdì 21 settembre 2007 17:37 | Feedback (2) | Filed Under [ .NET OpenSource ]

[Spring.NET #12] Spring.Core, Setting properties

Grazie a Spring.NET possiamo settare le proprietà di un oggetto al momento della sua creazione sempre tramite il file di configurazione, basterà impostare il tag <property/>. Modifichiamo la classe Person dei post precedenti eliminando il costruttore parametrico e modifichiamo il file .config così:<object id="Matteo" type="SpringSeries.Core.SettingProperties.Person, 10.SettingProperties"> <property name="FirstName" value="Matteo" /> <property name="Age" value="24" /> </object> rispetto alla valorizzazzione dei parametri del costruttore in questo caso abbiamo a disposizione solo il Name Matching. Utilizzando il tag <null/> all'interno di <property/> possiamo impostare una proprietà a null. Per esempio supponiamo che Age...

posted @ giovedì 20 settembre 2007 22:10 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #11]Spring.Core, Constructor Argument Resolution a Run-time

Oggi un mio amico mi ha chiesto se è possibile valorizzare a run-time i parametri di un costruttore invece di usare il file di configurazione. Certo che si può fare! Basta definire il nostro oggetto con un qualsiasi tipo di matching visti nei post precedenti ed in fine istanziare la classe utilizzando un particolare overload del metodo GetObject, il quale accentta in ingresso un array di object contenente i valori da passare al costruttore. Quindi il file di configurazione rimane invariato:<object id="Matteo" type="SpringSeries.Core.RuntimeMatching.Person, 09.RuntimeMatching"> <constructor-arg name="firstName"...

posted @ lunedì 17 settembre 2007 21:59 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #10]Spring.Core, Constructor Argument Resolution via Name Matching

In questo post vedremo l'ultima modalità di matching dei parametri, il Name Matching. Come negli episodi precedenti per istanziare la classe Person basterà effettuare una piccola modifca ai tag constructor-arg :<object id="Matteo" type="SpringSeries.Core.NameMatching.Person, 08.NameMatching"> <constructor-arg name="firstName" value="Matteo" /> <constructor-arg name="age" value="24" /> </object> Technorati Tags: Spring.NET

posted @ lunedì 17 settembre 2007 02:01 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[OT] Addio Colin McRae...

...uno dei più forti piloti di Rally di tutti i tempi! http://www.racingworld.it/rally/notizia2.php?idtitolo=4500 Senza parole.

posted @ domenica 16 settembre 2007 13:53 | Feedback (2) | Filed Under [ OT ]

[Spring.NET #9]Spring.Core, Constructor Argument Resolution via Index Matching

Nel post precedente abbiamo visto come istanziare una classe con il costruttore parametrico utilizzando il Type Matching adesso vedremo come istanziare la solita classe utilizzando la modalità di Index Matching. Per farlo modificheremo il file di configurazione così:<object id="Matteo" type="SpringSeries.Core.IndexMatching.Person, 07.IndexMatching"> <constructor-arg index="0" value="Matteo" /> <constructor-arg index="1" value="24" /> </object> come vedete basta indicare l'indice zero-based della posizione del parametro all'interno della firma del costruttore. Technorati Tags: Spring.NET

posted @ domenica 16 settembre 2007 05:02 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #8]Spring.Core, Constructor Argument Resolution via Type Matching

In un post precedente abbiamo visto come instanziare un oggetto tramite il suo costruttore di default, quindi privo di paremetri, con Spring.NET possiamo anche creare oggetti che hanno un costruttore parametrico. La particolarietà sta nel fatto che possiamo valorizzare i parametri direttamente nel file di configurazione. Supponiamo di avere una classe Person definità così: 1: public class Person 2: { 3: private string _firstName; 4: private short _age; 5:   6: public string FirstName ...

posted @ sabato 15 settembre 2007 20:33 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #7] Spring.Core, Visibilità e Ciclo di vita degli oggetti

Gli oggetti creati con Spring.NET possono avere due tipi di visibilità e ciclo di vita: Singleton e Prototype (non-singleton). Quando impostiamo la creazione di un oggetto nella prima modalità indichiamo a Spring.NET che noi vogliamo utilizzare un unica istanza di esso condivisa per tutto il ciclo di vita dell'applicazione, quindi la prima volta che richiamiamo l'oggetto tramite il suo id esso viene creato e le volte successive viene restituita sempre la solita istanza. L' altra modalità invece indica a Spring.NET che ad ogni richiesta deve essere creata una nuova istanza dell' oggetto, quindi il suo ciclo di vita sarà gestito...

posted @ mercoledì 12 settembre 2007 21:21 | Feedback (2) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #6] Spring.Core, Type Aliases

Per rendere il file di configurazione più leggibile Spring.NET ha una funzionalità chiamata Type Aliases, la quale permette di attribuire un nome ad un tipo. Nel post precedente, abbiamo visto la difficolta di lettura della definizione di una collection Dictionary<string,<Dictionary<int,object>>, addesso definiamola utilizzando gli aliases. Prima di tutto dobbiamo aggiungere il relativo configuration handler al section group di Spring.NET, il quale risulterà così:<configSections> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/> <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" /> <section name="typeAliases" type="Spring.Context.Support.TypeAliasesSectionHandler, Spring.Core"/> </sectionGroup> </configSections> in seguito possiamo definire i nostri aliases all'interno dell' apposito tag:<typeAliases> <alias name="NestedDictionary" type="System.Collections.Generic.Dictionary&lt;int,object>"/> ...

posted @ martedì 11 settembre 2007 21:00 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #5] Spring.Core, Definire e Creare Generic Types

Spring.NET è basato sulla versione 2.0 del .NET Framework quindi permette l' utilizzo dei generics. Vediamo subito un paio di esempi per capire la sintassi, cominciamo dichiarando e creando una semplice lista di interi: <object id="ListInteger" type="System.Collections.Generic.List&lt;int>" /> per istanziare la collection utilizzeremo questa riga di codice: List<int> _col1 = (List<int>)_ctx.GetObject("ListInteger"); adesso dichiariamo una collection Dictionay con il tipo chiave string e il tipo valore object: <object id="DictionaryStringObject" type="System.Collections.Generic.Dictionary&lt;string,object>" /> di seguito...

posted @ domenica 9 settembre 2007 13:39 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Cacciuccata a Livorno il 29 Settembre!!!

Visto che la pizzoccherata è stata spostata al week-end successivo, e gli MVP sono riuniti a Pistoia, ho deciso di organizzare una super cena a base di cacciucco per riunire la community  in quel di Livorno per Sabato 29 Settembre. Per chi si trattiene anche dopo cena il programma offre bevuta sul lungo mare (zona molto consigliata ai single, vista l'abbondante quantita di gnocca ). L'invito naturalmente è rivolto a tutti, Toscani e non, quindi se qualcuno da lontano vuole venire ma non sa dove pernottare basta che me lo dica e provvederò subito!! Per iscriversi come al solito potete lasciare un commento a questo post, oppure rispondere a...

posted @ giovedì 6 settembre 2007 18:20 | Feedback (2) | Filed Under [ .NET Community ]

[Spring.NET #4] Spring.Core, Definire e Creare un Oggetto via Factory Method

Spesso nel nostro codice per creare un oggetto utilizziamo un semplice metodo statico (Factory Method) che si occupa di fare la new dell'oggetto interessato. In questo caso possiamo "dire" a Spring.NET di utilizzare il metodo factory per la creazione dell'oggetto desiderato, vediamo come fare. Per prima cosa aggiungiamo alla classe del post precedente il seguente metodo factory:public static EnglishToItalianTranslator CreateInstance() { return new EnglishToItalianTranslator(); } in fine andiamo a modificare il file di configurazione (.config) aggiungendo l'attributo factory-method ed indicando il nome del metodo da utilizzare:<object id="MyBasicTranslator" type="SpringSeries.Core.FactoryMethod.EnglishToItalianTranslator, 02.FactoryMethod" ...

posted @ mercoledì 5 settembre 2007 17:40 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #3] Spring.Core, Definire e Creare un Oggetto via Costruttore

Dopo tante chiacchere cominciamo ad entrare nel vivo e vediamo come configurare e creare un semplice oggetto tramite il suo costruttore di default. Prendiamo come esempio una classe, volutamente semplificata, che deve tradurre una frase dall'inglese all'italiano, essa verrà modificata ed evoluta nei futuri post. La classe risulterà simile alla seguente:public class EnglishToItalianTranslator { public EnglishToItalianTranslator() { } public string Translate(string phraseToTranslate) { string phraseTranslated; //qui va l'algoritmo di traduzione... ...

posted @ sabato 1 settembre 2007 12:19 | Feedback (6) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #2] Integrazioni con Visual Studio

Le possibili integrazioni sono due: Viene fornito un file XSD che ci aiuta nella scrittura (tramite IntelliSense) e nella validazione del file di configurazione di Spring.NET. Il file è raggiungibile a questo url: http://www.springframework.net/xsd/spring-objects.xsd e va salvato in una delle seguenti path di Visual Studio, a seconda della versione posseduta: VS2003: C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Packages\schemas\xml\ VS2005: C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas Se utilizzate il Setup verra registrata la documentazione delle API di Spring.NET.   Technorati Tags: Spring.NET

posted @ sabato 1 settembre 2007 11:42 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

Powered by:
Powered By Subtext Powered By ASP.NET