agosto 2007 Blog Posts
Spesso si parla male degli ambienti di sviluppo windows, ma spesso gli altri ambienti sono quantomeno misteriosi. Situazione, sto guardando joomla, un CMS in php, è molto carino e lo ho provato nel nostro hosting senza problemi. Stamane volevo giocarci un po di più ed allora mi sono detto che sarebbe stato meglio istallare tutto in locale perché cosi è più veloce.
Passo 1, istallo il supporto php, non lo avevo mai istallato, vado nel sito e prendo l'installer, lo istallo e tutto ok.
A questo punto IIS non è configurato, mi istallo manualmente la isapi e configuro l'estensione php per...
I progetti costruiti con TDD oppure pensati per il "design for testabiliy" sono creati e pensati per essere "testati" con facilità, purtroppo così non è per i sistemi legacy. Quando si mette mano ad un sistema preesistente per rifattorizzarlo è di primaria necessità costuire una batteria di test i più dettagliati possibile, ma spesso si incontrano difficoltà. Un caso tipico è una funzione di questo tipo:
In questo caso il SUT (System Under Test) esegue codice in base ad un settaggio che è memorizzato su un database. Questa tipologia di codice è molto comune e rende difficile effettuare il test, soprattutto...
Ho quasi finito di leggere il libro xUnit Test Patterns, il giudizio è sicuramente positivo, il libro è completo, tratta l'argomento dello unit testing in maniera decisamente approfondita presentando nel contempo numerosi pattern per organizzare i propri test nella maniera più efficiente possibile. Uno dei pregi maggiori è la formalità delle definizioni, che costituiscono un glossario utilissimo quando si parla dell'argomento Testing. L'unica pecca è la lunghezza del libro (più di 800 pagine) che lo rende in alcuni tratti decisamente ripetitivo e talvolta noioso. Alcuni concetti infatti sono espressi nella prima parte e ripresi nella seconda con solo pochissime aggiunte....
Uno dei problemi maggiori che si incontra nello unit testing di codice già esistente e non scritto secondo I principi del "design for testability" è l'impossibilità di verifcare lo stato interno di un oggetto. Talvolta infatti per verificare che un test è andato a buon fine è necessario andare a verificare il valore di una variabile privata del SUT (System Under Test), ma naturalmente questo non è possibile farlo dal test. Questa necessità emerge più spesso del previsto, ad esempio se il SUT è un oggetto a stati ed il chiamante non ha necessità di conoscere lo stato corrente, è...
Premesso che sono alle prime armi con LINQ, in questo post faccio vedere una prima ipotesi di come il nostro repository possa dare funzionalità di query per LINQ grazie al progetto LINQ to NHIbernate.
Alk.
Quarta parte degli articoli sul repository.
Terza parte della serie di post su come realizzare un repository pattern.
seconda parte del post sull'argomento "repository pattern"
Alk.
Prima parte di una serie di post sull'argomento "repository Pattern" In relazione ad un thread aperto su guisa. (http://www.guisa.it/forums/1258/ShowThread.aspx#1258)
Alk.
Nel precedente post ho spiegato come realizzare un provider custom per le connessioni in nhibernate al fine di potere iniettare una connessione in una sessione. Per completezza è il caso di citare che il metodo SessionFactory.OpenSession() ha una versione in overload che accetta un oggetto IDbConnection come parametro. Il risultato è praticamente analogo e sicuramente si scrive meno codice rispetto all'esempio precedente. Il contro di questa tecnica è che spesso si debbono eseguire dei test su classi che internamente creano una sessione (o prendono quella della conversazione corrente). Queste classi chiaramente invocano il metodo SessionFactory.OpenSession() senza preoccuparsi della gestione della...
Debbo dire che più conosco nhibernate più lo apprezzo veramente tanto. Stasera mi sono chiesto, posso iniettare una mia connessione in una sessione? Lo scopo di una simile operazione è vario, potrei ad esempio iniettare una connessione durante un test per potere poi fare query dirette al database e verificare che i dati siano scritti bene, oppure potrei volere eseguire codice SQL diretto assieme a nhibernate in una unica transazione etc etc. LA soluzione a questo problema è veramente banale :D.
Nhibernate definisce un interfaccia chiamata IConnectionProvider tramite la quale la sessionFactory recupera la connessione da dare in pasto alla sessione,...
Il CD-ROM è una periferica che per me è praticamente inesistente…..ma talvolta la uso, oggi vado a prendere il cd con gli esempi del libro del petzold, lo inserisco e quando provo ad accedere al contenuto windows vista mi propone di formattarlo……premendo annulla la finestra si chiude. Ho provato con tasto destro esplora, apri, espelli e reinserisce nulla…dopo 10 minuti di frustrazione apro una finestra DOS e magia
E:>
Risultato….ogni cd che metto posso leggerlo solo da dos, perché il vista mi dice che è da formattare e non mi fa vedere il contenuto L
Alk.
Una delle funzionalità di Castle.Windsor che non ho trovato su spring, e si fa anche un po fatica a simularla, è la possibilità di fare un override delle proprietà di un oggetto. In questo post viene mostrato come windsor permetta di iniettare manualmente a runtime le dipendenze degli oggetti.
Lo so che è gaurro :D, ma mi piace bloggare da word.
Alk.
Esempio di facility per configurare runtime un contenitore di IoC di Castle.Windsor.
Una delle domande principale che mi faccio talvolta parlando di IoC e di AOP è se utilizzare castle o spring...Spring è una libreria in giro da più tempo e più matura, la documentazione inoltre è migliore di quella di Castle effettivamente, ma se dovessi scegliere sceglierei Castle, per una serie di motivi. Il primo motivo è le API pubbliche che si utilizzano, Castle.Windsor è fortemente tipizzato, ad esempio per recuperare un istanza si usa questo codice MyInterface instance = _container.Resolve<MyInterface>();
dove naturalmente _container è un istanza di WindsorContainer che possiamo ottenere da un file xml di configurazione o da una...