Invest in people before investing in tools

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

.NET

Microsoft Community Tour: adesso tocca alla Toscana!

    Oggi molti di voi saranno rientrati dalle ferie, quindi ne approfitto per ricordare che Martedì 12 Gennaio si terrà a Navacchio (PI) la tappa Toscana del Community Tour. L’evento è interamente dedicato allo Sviluppo Web, se volete registrarvi o ricevere maggiori informazioni su sessioni e location, visitate l’apposita pagina dell’evento sul nostro sito. Vi aspettiamo!!   Technorati Tag: Community Tour,DotNetToscana,Eventi

posted @ giovedì 7 gennaio 2010 17:43 | Feedback (0) | Filed Under [ .NET Community ]

WPF Functional Testing With White

(@ Dario: accetto la sfida!!! ) Nel mio ultimo post ho annunciato il rilascio di un framework per effettuare test funzionali per applicazioni desktop in maniera del tutto automatica. Dario ha accettato la mia richiesta rispondendo con un bel post su TestApi e Input Injection. Tutto ciò mi ha messo voglia di provare a rifare il solito test da lui proposto, però utilizzando white, così possiamo confrontare i due framework. Cominciamo!! Prima di tutto lo screenshot della mia applicazione, non è proprio identica a quella di Dario, ma va benissimo! Come sappiamo, lo...

posted @ giovedì 18 dicembre 2008 23:23 | Feedback (2) | Filed Under [ .NET OpenSource Agile ]

WPF UI Test Framework

Ivo Manolov annumcia sul proprio blog il rilascio di un tool open source per automatizzare il test della UI sia essa in WPF pittosto che WinForm. Sempre sul suo blog potete leggere il primo post guida del tool. Da questi post ho scoperto che esiste un blog su MSDN dedicato al testing di WPF. Esisteva già un tool open surce simile si chiama white ed anche questo è hostato su CodePlex. Technorati Tag: UnitTest,UI Test

posted @ martedì 16 dicembre 2008 17:02 | Feedback (3) | Filed Under [ .NET OpenSource Agile ]

Pattern Model-View-ViewModel, INotifyPropertyChanged, Static Reflection e Extension methods

Anch’io nei miei progetti WPF per rendere testabile la logica della mia applicazione senza rinunciare alla pontenza del DataBinding utilizzo (anche) il Pattern Model-View-ViewModel. L’interfaccia INotifyPropertyChanged gioca un ruolo fondamentale nell’implementazione di questo pattern quindi ne faccio un uso massiccio. Quello che non mi è mai piaciuto di questa interfaccia è l’uso delle stringe per indicare qual è la proprietà modificata, vediamo un semplice esempio dell’uso di INotifyPropertyChanged: 1: public class Person : INotifyPropertyChanged { 2: public event PropertyChangedEventHandler PropertyChanged; 3:...

posted @ venerdì 28 novembre 2008 16:06 | Feedback (13) | Filed Under [ .NET ]

WPF Effects Library

Una delle novità di WPF 3.5 SP1 sono gli Shader Effects, adesso il Team di WPF ha pubblicato su CodePlex la Windows Presentation Foundation Pixel Shader Effects Library, una libreria  contenente molti Shader Effects, direttamente dalla home del progetto: Initial seed includes: Effects: BandedSwirl, Bloom, BrightExtract, ColorKeyAlpha, ColorTone, ContrastAdjust, DirectionalBlur, Embossed, Gloom, GrowablePoissonDiskEffect, InvertColor, LightStreak, Magnify, Monochrome, Pinch, Pixelate, Ripple, Sharpen, SmoothMagnify, Swirl, Tone, Toon, and ZoomBlur Transition Effects: BandedSwirl, Blings, Blood, CircleReveal, CircleStretch, CircularBlur, CloudReveral, Cloudy, Crumble, Dissolve, DropFade, Fade, LeastBright, LineReveal, MostBright,...

posted @ giovedì 23 ottobre 2008 10:47 | Feedback (1) | Filed Under [ .NET ]

Pubblicati i sorgenti del controllo WatermarkedTextBox

Fra i vari controlli presenti nelle prime versioni di Silverlight c’era la WatermarkedTextBox. Dalla release Beta2 tale controllo è stato rimosso. Adesso, pressati dalle forti richieste, il team di Silverlight ha rilasciato il codice sorgente del suddetto controllo. Sorgenti: WatermarkedTextBox-Source.zip Binari: WatermarkedTextBox-Binary.zip Fonte: Silverlight 2 Watermarked TextBox Control Technorati Tag: Silverlight

posted @ mercoledì 22 ottobre 2008 22:27 | Feedback (0) | Filed Under [ .NET ]

[WPF] Intercettare l’evento MouseDoubleClick di un ListBoxItem

Visual Studio 2008 Sp1 non visualizza l’evento MouseDoubleClick per un ListBoxITem, come se non esistesse:   In realtà tale evento esiste, è solo un problema di IntelliSense, quindi basta digitare il nome e tutto funziona:   Al seguente url è disponibile una piccola demo: ListItemDoubleClickDemo Technorati Tag: WPF,Windows Presentation Foundation

posted @ mercoledì 22 ottobre 2008 22:27 | Feedback (1) | Filed Under [ .NET ]

XAML - differenze fra Silverlight e WPF

XAML è un linguaggio dichiarativo general-purpose, sviluppato da Microsoft e derivato dall’XML, atto alla rappresentazione di gerarchie di oggetti. Attualmente XAML è utilizzato in Silverlight, Windows Presentation Foundation (WPF) e Windows Workflow Foundation (WF), ognuno con il proprio parser e runtime. Sul sito MSDN possiamo trovare un articolo che spiega le differenze fra il parser di Silverlight e quello di WPF. Technorati Tag: Silverlight,WPF,Windows Presentation Foundation,XAML

posted @ mercoledì 22 ottobre 2008 22:14 | Feedback (1) | Filed Under [ .NET ]

[WPF] RadioButton+Binding=BUG

Questo post doveva essere pubblicato già da po’ di settimane, ma gli impegni sono sempre pronti a mettere il bastone fra le ruote. In WPF se mettete in Binding una proprietà di tipo boolean con un controllo RadioButton vi accorgerete presto di un bug nel motore di Binding. Maggiori info su questo thread sul newsgroup di C#. Grazie a Corrado per la segnalazione Technorati Tag: Windows Presentation Foundation,WPF

posted @ lunedì 20 ottobre 2008 22:22 | Feedback (1) | Filed Under [ .NET ]

Expression Blend framework vs CompositeWPF framework

Un interessante confronto tra il framework di una WPF Composite Application (Expression Blend) e un framework per creare WPF Composite Application (CompositeWPF). Fonte: Expression Framework versus Composite WPF Technorati Tag: ExpressionBlend,CompositeWPF,WPF,Windows Presentation Foundation

posted @ lunedì 20 ottobre 2008 21:51 | Feedback (1) | Filed Under [ .NET Architecture ]

Adesso ci siamo anche noi!!

Non sono bravo a fare gli annunci formali quindi vado dritto al sodo, insieme ad un gruppo di amici abbiamo dato vita allo User Group Toscano su .NET, il sito è ufficialmente online da Venerdì 10 Ottobre. Alcuni di noi erano presenti alla tappa Toscana dell’evento Microsoft Days dove Pietro Brambati ha accettato la nostra proposta di sfruttare l’occasione per presentare il neonato gruppo (con tanta insistenza da parte nostra non poteva rifiutare ). Pietro si è dimostrato molto disponibile ed alla fine ha fatto molto di più di quello che abbiamo chiesto… Sempre in quell’occasione ho avuto il piacere di...

posted @ lunedì 20 ottobre 2008 15:47 | Feedback (0) | Filed Under [ .NET Community ]

Usare RhinoMocks per testare applicazioni multithreading

Interessato dal post di Antonio sull'uso del TDD per progettare applicazi multithreading ho deciso di riprovare senguendo il percorso logico da lui espresso, usando RhinoMocks come framework di mocking piuttosto che i mocks manuali usati da Antonio per non complicare il codice di test. La versione di RhinoMocks utilizzata è la 3.5 RC che potete scaricare a questo url, questa versione della libreria supporta la sintassi Arrange/Act/Assert permettendo di scrivere test molto più chiari, per maggiori info visitate questa pagina. Adesso vediamo e commentiamo i vari metodi di test, cominciamo con il primo: ...

posted @ lunedì 25 agosto 2008 12:19 | Feedback (1) | Filed Under [ .NET Agile ]

Mixin, POCO e INotifyPropertyChanged mito o realtà?

Dopo aver chiesto ad i CDays2008 a Mauro cosa pensava dei mixin, dopo aver letto i vari post di Andrea, Raffaele e Gian Maria che parlano di POCO e dopo aver letto i due post (qui e qui) nel blog inglese di Gian Maria ho deciso di spiegare meglio cosa intendevo con il mio commento al post di Andrea. Gian Maria mostra due modi diversi per rivolvere il "problema" dell'interfaccia INotifyPropertyChanged creando proxy a run-time, io avevo risolto il solito problema usando Spring.NET AOP. Questo dimostra che come al solito ci sono svariati modi per ottenere il solito risultato....

posted @ giovedì 7 agosto 2008 00:54 | Feedback (8) | Filed Under [ .NET Architecture ]

Extension Methods and Instace Methods Conflicts

Leggendo il libro LINQ in Action vinto ai Community Days 2008 (consegnato direttamente da Andrea) ho scoperto un comportamento degli Extension Methods che non conoscevo. Il quesito posto nel libro è: cosa succede se un Extension Method va in conflitto con un Instace Method? Semplicemente "perde la battaglia" in quanto un Extension Method ha una priorità più bassa. Riporto lo snippet e l'output presenti nel libro: 1: using System; 2:  3: namespace ExtensionMethods ...

posted @ lunedì 14 luglio 2008 22:33 | Feedback (2) | Filed Under [ .NET ]

Object Oriented Design Principles e Refactoring

Nella sessione Realizzare applicazioni estendibili e configurabili di Mauro si è parlato prima di tutto dei principi di design che permettono di rendere una applicazione estendibile e come migliorare tale design grazie al refatoring. A sessione finita mi sono soffermato fuori dalla sala con Mauro a discutere di come queste pratiche siano fondamentali per non rendere la nostra applicazione un monolite e come il TDD può aiutare a disegnare il proprio software rispettando i principi di design. Quindi mi sono deciso a scrivere questo post per fornite un po di risorse utili sull'argomento. Naturalmente questa lista pretende solo di far...

posted @ venerdì 11 luglio 2008 13:35 | Feedback (2) | Filed Under [ .NET Architecture ]

[WPF] Accedere alla UI da un thread secondario

Nicolò commentando il mio ultimo post mi ha chiesto di mostrare: "...un esempio in cui si accede da un thread secondario a quello che gestisce l'interfaccia utente?" niente di più facile! Per la (piccola) demo ho creato un'applicazione WPF, all'interno della Window ho inserito uno StackPanel con un TextBlock (da aggiornare) e due Button, il primo che mosta l'eccezione che viene scatenata se si prova ad accedere alla UI da un thread secondario ed il secondo che mostra come utilizzare la classe System.Windows.Threading.Dispatcher per accedere nella maniera corretta alla UI. Di seguito lo XAML: <Window x:Class="AccessUIThreadDemo.Window1" ...

posted @ lunedì 26 maggio 2008 11:46 | Feedback (1) | Filed Under [ .NET ]

DispatcherTimer, Yet Another Timer Class

Chiunque lavori da diverso tempo con il .NET Framework saprà che esistono diverse implementazioni della classeTimer, le quali sono: System.Threading.Timer System.Timers.Timer System.Windows.Forms.Timer Per maggiori informazioni leggete questo articolo di MSDN Magazine: http://msdn.microsoft.com/en-us/magazine/cc164015.aspx. Con l'arrivo di WPF è stata introdotta un'altra classe Timer: System.Windows.Threading.DispatcherTimer. Come ogni Timer che si rispetti la classe non fa altro che eseguire un operazione (metodo) allo scadere di un intervallo di tempo. Quindi la domanda che viene subito in mente è: perchè introdurre un'altra classe Timer?? Seplice, questa implementazione utilizza l'oggetto System.Windows.Threading.Dispatcher...

posted @ venerdì 23 maggio 2008 13:01 | Feedback (2) | Filed Under [ .NET ]

[Spring.NET #33] Spring.Aop, Advice

Rappresenta la modalità di intercettamento di un motodo e quindi la modalità di intruduzione del codice. I tipi di Advice sono quattro: AroundAdvice: implementa l'interfaccia IMethodInterceptor e permette il massimo controllo su un metodo dato che possiamo aggiungere logica primo e dopo l'invocazione del metodo target. Questo è  l'Advice più potente ma anche il più richioso, dato che possiamo dimenticare di chiamare il metodo Proceed() che rappresenta l'invocazione del metodo target. BeforAdvice: implementa l'interfaccia IBeforAdvice e permette di introdurre codice soltanto prima dell'invocazione del metodo target. AfterReturningAdvice: implementa...

posted @ sabato 10 maggio 2008 11:42 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #32] Spring.Aop, Pointcut e Advisor

Un Pointcut definisce una regola di individuazione di un Joinpoint. Spring.NET offre diverse implementazioni di Pointcut, forniti come moduli indipendendi, implementati come singole entità in modo da renderli riutilizzabili ed intersecabili per diversi Advice. Ogni Pointcut implementa l'interfaccia IPointcut, la quale tramite i due membri ITypeFilter e IMethodMatcher permette di filtrare in base al tipo ed alla firma del metodo. Nella maggior parte dei casi le implementazioni dei Pointcut sono gestite in maniera statica (StaticPointcut), in modo da effettuare il caching del risultato di una valutazione di matching (operazione costosa in termini di performance) la prima volta che...

posted @ mercoledì 7 maggio 2008 20:25 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #31] Spring.Aop, Aspect Oriented Programming Framework Overview

Altra parte fondamentale di Spring.NET è l' AOP Framework. Questo post non vuole spiegare che cosa è o non è l'AOP, ma vuole focalizzarsi soltanto su gli strumenti forniti da Spring.NET per utilizzare questo paradigma di programmazione nelle nostre applicazioni .NET. Tutta via, un minimo di infarinatura è obbligatoria, in poche pareloe l'Aspect Oriented Programming è un paradigma complementare all'Object Oriend Programming e permette di modularizzare gli aspetti ed i comportamenti trasversali della nostra applicazione, separandoli dal dominio applicativo. L' AOP è composta da i senguenti concetti non legati al framework utilizzato ma al paradigma stesso: ...

posted @ mercoledì 16 aprile 2008 09:03 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

Evolutionary Databases - Design and Deployment

Esistono diversi tools di Refactoring, in continua evoluzione, che aiutano uno sviluppatore agile ad evolvere in maniera incrementale il proprio codice. Lo stesso non si può dire per quanto riguarda il refactoring del database, si perchè anche quest'ultimo vuole la sua parte, quindi anche il design della del database deve evolvere in maniera incrementale, user story dopo user story. A questo punto nasce il probleblema di gestire questa naturale evoluzione all'interno del processo di sviluppo software. L'approccio generalmente usato è quello di partire da uno script di base di crazione del database, da lì in poi per ogni user story che...

posted @ mercoledì 26 marzo 2008 14:09 | Feedback (5) | Filed Under [ Database .NET OpenSource Agile ]

[Spring.NET #30] Spring.Core, Definire oggetti tramite ObjectDefinitionBuilder fluent interface

Spring.NET grazie alla classe ObjectDefinitionBuilder espone delle flunt interface API che permettono di definire oggetti da registrare nell' ApplicationContext. Per mostrare questa funzionalità non documentata replicherò l'esempio mostrato nel post [Spring.NET #14] Spring.Core, IoC e DI (Setter Injection) : 1: using System; 2: using Spring.Context.Support; 3: using Spring.Objects.Factory.Support; 4:  5: namespace SpringSeries.Core.ObjectDefinitionBuilderFluentInterface 6: { ...

posted @ mercoledì 12 marzo 2008 01:51 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #29] Spring.Core, Loosely Coupled Event Wiring

Grazie al motore di IoC, Spring.NET offre la funzionalità di Loosely Coupled Event Wiring, vale a dire la possibilità di scatenare ed intercettare eventi senza un legame diretto fra il publisher ed il subscriber. Il meccanismo avviene grazie ad un Registry mantenuto da Spring.NET, dentro al quale il publisher registra i propri aventi, rendendoli pubblici, a questo punto il subscriber potrà "dire" a Spring.NET quale eventi sottoscrivere. Passiamo subito ad un esempio pratico, creiamo una ConsoleApplication ed aggiungiamo la reference a Spring.Core.dll. Procediamo con l'oggetto publisher, come prima cosa aggiungiamo una classe CustomEventArgs, la quale sarà utilizzata nell'evento scatenato dalla...

posted @ domenica 9 marzo 2008 13:40 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Usare LINQ to Objects in progetti .NET 2.0/3.0

Come fare ad usare LINQ to Objects, quindi .NET 3.5, se lavorate su un progetto .NET 2.0/3.0 con Visual Studio 2008 (grazie alle funzionalità di multi-targeting) ?? Semplice, basta reimplementare tutti i query operators . Oppure utilizzare la libreria LINQBridge scritta da Joseph Albahari: With Studio's multi-targeting and LINQBridge, you'll be able to write local (LINQ to Objects) queries using the full power of the C# 3.0 compiler—and yet your programs will require only Framework 2.0. LINQBridge is a reimplementation of all the standard query operators in Framework 3.5's Enumerable class. It's designed to work with the C#...

posted @ venerdì 29 febbraio 2008 22:07 | Feedback (1) | Filed Under [ .NET ]

[Spring.NET #28] Spring.Core, Validation Framework e WinForm

Il framework di supporto per le WinForms si chiama Spring.NET RichClient ed è un progetto disponibile a parte rispetto a Spring.NET, sviluppato da Harald Radi. Ad oggi l'ultima versione scaricabile dal sito, la 0.2.1, è un po vecchiotta e presenta diversi problemi, quindi vi consiglio di scaricare l'ultima versione del codice sorgente direttamente dal trunk. Anche in questo questo post mi limiterò a parlare solo dell'integrazione fra le WinFroms ed il Validation Framework, altri aspetti riguardanti le applicazioni Windows e Spring.NET verrànno trattati in post futuri. Finite queste precisazioni iniziamo creando un'applicazione Windows ed aggiungendo i riferimenti alle librerie Spring.Core...

posted @ sabato 16 febbraio 2008 18:53 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

Aggiungere un Web Reference .NET 2.0 in Visual Studio 2008

Con Visual Studio 2008 non abbiamo più l'opzione Add Web Reference nel menu contestuale, la quale è stata sostituita da Add Service Referece. Questa nuova opzione però crea codice per accedere a Servizi (non solo Web) utilizzando WCF. E se lavoriamo su vecchio un progetto .NET 2.0 come faccio?? Nessun problema!! Visual Studio 2008 per mantenere la compatibilità con le vecchie applicazioni dispone sempre della funzionalità Add Web Reference, basta seguire questi semplici passi: Menu contestuale del progetto, quindi Add Service Reference. Cliccare su Advanced.   Cliccare su Add Web Reference.   ...

posted @ domenica 27 gennaio 2008 23:16 | Feedback (1) | Filed Under [ .NET ]

[Spring.NET #27] Spring.Core, Validation Framework e ASP.NET

In questo post affronteremo l'integrazione del Validation Framework di Spring.NET con le WebForm di ASP.NET. L'integrazione di Spring.NET con ASP.NET è molto ampia e non tocca solo il discorso della validazione, però in questo post mi limiterò su questo argomento. Fatta questa premessa cominciamo creando in Visual Studio un nuovo progetto ASP.NET Web Application, aggiungiamo le classi Person, AnddressInfo utilizzate nei post precedenti. Facciamo uguale con il file di risorsa Message.resx (introdotto in questo post), aggiungendolo nella directory App_GlobalResources. Eliminiamo Default.aspx ed aggiungiamo le pagine PersonEdit.aspx e...

posted @ sabato 26 gennaio 2008 21:24 | Feedback (2) | Filed Under [ .NET OpenSource Spring.NET ]

Cliccare via codice un button contenuto in un controllo WebBrowser

Coma facciamo a cliccare via codice un button contenuto in una pagina web caricata in un controllo WebBrowser ? La soluzione è molto semplice però, almeno per me , non immedieta, vediamo come fare. Supponiamo di avere in una applicazipone WinFroms un controllo WebBrowser con nome webBrowser1, tramite il metodo Navigate carichiamo la pagina web al suo interno. Come prima cosa dobiamo ottenere un istanza dell'elemento Html: 1: HtmlElement _btn = webBrowser1.Document.GetElementById("button_id"); la proprietà Document del controllo WebBrowser restituisce un' istanza della classe HtmlDocument la quale espone una serie di metodi getter per...

posted @ domenica 6 gennaio 2008 12:33 | Feedback (0) | Filed Under [ .NET ]

[Spring.NET #26] Spring.Core, Validator Actions e Validation Errors

Altro nodo molto importante del Validation Framework sono le Validator Actions, le quali permettono di eseguire un operazione come consequenza del risultato della validazione. Lo scenario più frequente è quello di utilizzare una Error Message Actions per aggiugre un messaggio di errore alla collezione degli errori, gestita da Spring.NET. Nell'esempio mostrato nel primo post sul Validation Framework ho volutamente omesso questa parte per far capire meglio le due fasi distinte del processo di validazione, la prima dove vengono applicate le regole e la seconda dove vengono eseguite una serie di operazioni di conseguenza. Come intuibile la seconda fase è dipendente...

posted @ domenica 23 dicembre 2007 18:25 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #25] Spring.Core, Impostare le regole di validazione in maniera programmatica

Come già detto in un post precedente possiamo definire il set di regole di validazione anche in maniera programmatica utilizzando le API fornite da Spring.NET. Vediamo come creare via codice le regole dichiarate nel file XML nell'esempio del post precedente: 1: using System; 2: using Spring.Validation; 3: using Spring.Expressions; 4:   5: namespace SpringSeries.Core.ValidationObjectModel { ...

posted @ domenica 16 dicembre 2007 15:24 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #24] Spring.Core, Validators e Validator Groups

La validazione di un'oggetto avviene grazie alla definizione di un insieme di regole. In Spring.NET la singola regola si chiama Validator e l'insieme di regole si chiama Validator Groups. Come è facile immaginare esistono già built-in diversi tipi di Validators e di Validator Groups adatti ai più disparati scenari di validazione però se in certi casi non sono adatti ai nostri bisogni possiamo sempre crearne di nostri implementando l'interfaccia IValidator oppure la classe base BaseValidator. Analiziamo i Validators cominciando dal più semplice, il Required Validator, il quale verifica che un determinato campo sia valorizzato: <v:required id="PersonFirstNameValidator" test="FirstName" /> procediamo...

posted @ sabato 15 dicembre 2007 17:22 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #23] Spring.Core, Introduzione al Validation Framework

Iniziamo a parlare del Validation Framework contenuto in Spring.NET, un framework molto completo e varsatile adatto a molti scenari. I motivi che hanno spinto il team di Spring.NET ha creare questo framework sono svariati, descritti dettagliatamente in qui e qui. Il più grande problema della maggior parte dei framework di validazione disponibili oggi è che sono troppo legati alla tecnologia di presentazione, come le stesse funzionalità di validazione fornite dal .NET Framework per ASP.NET e WinForm. Grazie a Spring.NET possiamo effettuare la validazione dei dati non più solo nel presentation layer ma in tutti i layer che compongono la nostra...

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

[Spring.NET #22] Spring.Core, IMessageSource by ResourceSetMessageSource

Nel post precedente ho parlato dell'interfaccia IMessageSource e della sua implementazione più semplice, StaticMessageSource. In questo post invece vedremo la più utile implementazione ResourceSetMessageSource, la quale permette di leggere le risorse in maniera localizzata da file .resx direttamente con l' ApplicationContext, definendo il funzionamento tramite il file di configurazione. Come di consueto creiamo una Console Application ed in seguito aggiungiamo due file di risorse di nome AppRescource.resx ed AppResource.en-US.resx, nel primo inseriamo, utilizzando come chiave la stringa "HelloMessage", la frase localizzata in italiano, nel secondo invece, sempre con la solita chiave, inseriamo la frase localizzagta in inglese. Adesso aggiungendo un...

posted @ lunedì 10 dicembre 2007 20:55 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #21] Spring.Core, IMessageSource by StaticMessageSource

Spring.NET offre anche funzionalità di localizzazione/internazionalizzazione delle risorse. Tutta la gestione avviene tramite l'interfaccia IMessageSource, che è parte integrante dell' ApplicationContext, con i seguenti metodi: GetMessage: esistono molti overload di questo metodo i quali permettono di ottenere una risorsa di tipo stringa indicando la chiave, la CultureInfo, ed un'insieme di argomenti che verranno utilizzati come valori di replace per la stringa. GetResourceObject: permette di ottenere una quasiasi risorsa, per esempio un immagine. Anche in questo caso esistono più overload del metodo ed i possibili parametri sono la chiave, la CultureInfo. ...

posted @ domenica 9 dicembre 2007 12:23 | Feedback (621) | Filed Under [ .NET OpenSource Spring.NET ]

Rilasciato Spring .NET 1.1 Final Release

Ieri è stata rilasciata la versione finale di Spring .NET 1.1 . Potete effettuare il download da SourceForge, leggere il dettagliato changelog oppure la  nuova documentazione. Colgo l'occasione per ricordarvi che Spring.NET è un software Open Source che offre un supporto commerciale tramite l'azienda SpringSource. Technorati Tag: Spring.NET

posted @ sabato 8 dicembre 2007 19:51 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #20] Spring.Core, Expression Language

Expression Language è un linguaggio di interrogazione e manipolazione di grafi di oggetti. Questa funzionalità è molto utile in tutti quei casi di verifica dello stato di un oggetto a runtime. Spring.NET utilizza questo linguaggio per l' IoC Container, Data Validation ed il Data Binding per ASP.NET. Questo linguaggio utilizza la libreria ANTLR per costruire il Lexer ed il Parser dell'espressione. Tutta la grammatica utilizzabile all'interno di una espresione è definita nel file Expression.g . Facciamo subito un esempio per capiere meglio di cosa parliamo, all' interno una Console Application aggiungiamo una classe Student: 1: using System; 2:   ...

posted @ sabato 24 novembre 2007 18:56 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Visual C# 2008 Keybinding Reference Poster

Siete dei fanatici dei keyboard shortcuts?? Allora questo poster fa per voi!! Visual C# in Visual Studio 2008 and Visual C# 2008 Express EditionWall chart showing useful keyboard shortcuts for Visual C# programming language A high quality, print-ready PDF containing the useful keybindings for developers that choose the C# developer profile in Visual Studio 2008 or use Visual C# Express.

posted @ lunedì 19 novembre 2007 12:44 | Feedback (1) | Filed Under [ .NET ]

[Spring.NET #19] Spring.Core, Object Pooling

Oggi parlerò delle funzionalità di Object Pooling esposte da Spring.NET, la spiegazione di questo pattern esula dallo scopo del post quindi per maggiori informazioni vi rimando a questo link: Object Pooling Pattern. Il namespace Spring.Pool espone due interfacce che permettono di creare un pool di qualsiasi oggetto: IPoolableObjectFactory: definisce i metodi per la gestione del lifecycle dell'oggetto che sarà utilizzato nel pool. IObjectPool: definisce i metodi per utilizzare e monitorizzare il pool di oggetti ed utilizza l'interfaccia sopra citata per istanziare gli oggetti del pool. Inoltre Spring.NET tramite la classe SimplePool offre una semplice implementazione dell'interfaccia IObjectPool. Vediamo come sfruttare...

posted @ giovedì 8 novembre 2007 18:23 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

F# diventerà un linguaggio ufficiale

Leggendo il blog di Marco Russo ho scoperto che F# diventerà un prodotto supportato da Microsoft ed integrato in Visual Studio. Concordo pienamente con Marco quando dice: [...cut...] La direzione che prenderanno i linguaggi dalla versione successiva a Orcas (dopo il 2010 insomma...) sembra quindi essere la seguente: C# come linguaggio object-oriented,VB come linguaggio dinamico, F# come linguaggio funzionale, C++/CLI come linguaggio per programmazione in codice "nativo" e per risolvere problemi di interoperabilità. Avremo un solo framework ma tanti linguaggi. [...cut...] Certezze per il futuro ce n'è poche, l'unica che ho io è che restare arroccati a difendere il fortino dove ci si è...

posted @ lunedì 5 novembre 2007 13:21 | Feedback (2) | Filed Under [ .NET ]

[Spring.NET #18] Spring.Core, Thread Synchronization

La sincronizzazione dell'accesso alle risorse in ambiente multi-thread viene gestito tramite interfaccia ISync, composta da tre metodi: Acquire: ottiene il lock sulla risorsa desiderata. Release: rilascia il lock precedentemente acquisito. Attempt: ottiene il lock sulla risorsa desidera per un tempo massimo espresso in millisecondi, al termine del quale viene automaticamente rilasciato il lock. Spring.NET offre due implementazione della suddetta interfaccia: Latch: rappresenta una condizione booleana. Questa classe viene tipicamente utilizzata per "dare" il segnale di partenza ad un gruppo di thread. Semaphore: rappresenta l'implementazione di un semaforo. Questa classe viene tipicamente utilizzata per limitare il numero...

posted @ martedì 30 ottobre 2007 23:12 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Costruire una griglia in WPF

Tempo fa scrissi un post che rimandava ad una pagina su MSDN dove venivano messi a confronto i controlli disponibili in WinForms e quelli disponibili in WPF. Su Channel9 è stato pubblicato un video, Pascal Bourque - Building a rich datagrid in WPF,  che mostra come creare uno dei componenti mancanti in WPF, la griglia. Abstract: Last week I met up with Pascal Bourque from Xceed.  Pascal is senior developer who has been developing with WPF for two years.  Xceed is a controls company famous for their free WPF Datagrid.We talk about what its like to develop a rich control using...

posted @ mercoledì 24 ottobre 2007 13:49 | Feedback (0) | Filed Under [ .NET ]

[Spring.NET #17] Spring.Core, Astrazione del Thread Local Storage

Cominciamo a scoprire il supporto che Spring.NET offre nel campo delle applicazioni asincrone. Nonostante la Base Class Library fornisca già un vasto insieme di classi per il Multi-threading il team di Spring.NET anche in questo caso ha introdotto una serie di classi che permettono di lavorare con una maggiore astrazione  ed in più offrono funzionalità assenti nelle versioni precedenti alla 2.0 del .NET Framework come il Semaphore . La prima parte che analizziamo riguarda il thread local storage, il quale cambia a seconda del tipo di applicazione che stiamo sviluppando, infatti se ci troviamo in un contesto Web useremo la classe System.Web.HttpContext.Current...

posted @ lunedì 22 ottobre 2007 23:09 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #16] Spring.Core, Gestire le risorse con IResource

Il Core di Spring.NET offre, tramite l'interfaccia IResource, la possibilità di accedere a diverse tipologie di risorse in maniera polimorfica ed indipendente. Grazie a questa inferfaccia possiamo accedere ad un file di testo o ad un assembly nella stessa modalità. Per caricare le risorse possiamo utilizzare una implementazione dell'interfaccia IResourceLoader oppure nella maniera più pratica e veloce utilizzando il metodo GetResource dell'interfaccia IApplicationContext. La localizzazione della risorsa avviene trame URI (Uniform Resource Identifier), Spring.NET fornisce un insieme di schema aggiuntivi rispetto a quelli forniti dal .NET Framework tramite la classe URI, l'elenco completo è consultabile a questa pagina Built-in IResource implementations. Passiamo subito alla pratica creando...

posted @ mercoledì 17 ottobre 2007 21:23 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #15] Spring.Core, Type Conversion

Il .NET Framework per convertire un oggetto da un tipo ad un'altro utilizza i TypeConverter. Lo stesso sistema viene utilizzato da Spring.NET per convertire i valori stringa inseriti nel file di configurazione in tipi concreti. Il framework Spring.NET fornisce già un'insieme di custom TypeConverter (a questa pagina potete trovare l'elenco completo) come il FileInfoConvert che serve a convertire una stringa in una istanza di System.IO.FileInfo. Se abbiamo la necessità possiamo creare un nostro custom TypeConverter, per maggiori informazioni leggete questo articolo How to: Implement a Type Converter. Come esempio modifichiamo la classe Person vista in alcuni post precedenti aggiungendo un riferimento ad una nuova calsse AddressInfo: ...

posted @ venerdì 5 ottobre 2007 02:43 | Feedback (0) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #14] Spring.Core, IoC e DI (Setter Injection)

In questo post vediamo come applicare alla classe PhraseTranslator un banale sistema di log. Itroduciamo una nuova interfaccia che farà da contratto per le varie implementazioni di log (es: Console, File di testo): 1: public interface ITranslatorLog 2: { 3: void LogTranslation(string phraseToTranslate, string phraseTranslated); 4: } come prima cosa creiamo un NullTranslatorLog applicando il pattern NullObject, il quale farà da default logger per la classe PhraseTranslator: 1: public sealed class NullTranslatorLog : ITranslatorLog 2: { 3: public void...

posted @ mercoledì 3 ottobre 2007 20:39 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Nuova FxCop Rule per il controllo del Multi-Targeting

Krzysztof Cwalina ha scritto un post nel quale discute di una delle nuove funzionalità di Visual Studio 2008, il Multi-Targeting, e spiega qualche debolezza del sistema: I worked on this feature in the planning phase (read “long time ago”), and so I am quite thrilled to see it finally in the hands of developers. [...cut...] But now I have to confess, there are some limitations in this design that we accepted when we made the original simplifying assumption. There is a very limited number of APIs being added to the Red assemblies and the multi-targeting system is currently not able to detect these. Nel...

posted @ mercoledì 3 ottobre 2007 16:59 | Feedback (0) | Filed Under [ .NET ]

[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 ]

[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 ]

[Spring.NET #1] Panoramica dei Moduli

Il framework Spring.NET è ideato per non essere intrusivo, proprio per questo motivo è composto da una serie di macro funzionalità suddivise in moduli, utilizzabili anche singolarmente a seconda delle nostre esigenze. Essi sono: Spring.Core: Rappresenta il punto contrale del framework, questo blocco è composto da un Inversion of Control Container e da una serie di "utility" per vare arie funzionali come Collection, Threading e Pooling. Spring.AOP: In questo modulo sono implementate le funzionalita di Aspect Oriented Programming. Spring.Web: qui troviamo una serie di estenzioni per migliorare lo sviluppo di applicazioni ASP.NET. Spring.Services: questa area integra le tecnologie a servizi come Windows Services,...

posted @ giovedì 30 agosto 2007 21:04 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

[Spring.NET #0] Cominciamo a parlare di...

Con questo post inauguro una nuova serie dedicata a questo application framework open source che ci aiuta nello sviluppo di applicazioni di tipo enterprise. Spring.NET, sviluppato da Mark Pollack e dal suo team, attualmente in versione 1.1 RC1 (Release Candidate 1), è il porting idiomatico del più noto e famoso framework Spring per Java. Per iniziare ecco una serie di link: Home Spring.NET Source Forge Project Download Documentation Issue Tracker Forum Podcast - .NET Rocks! Per tutti quelli interessati ho creato una nuova categoria ad-hoc: Spring.NET (rss) Technorati Tags: Spring.NET

posted @ martedì 28 agosto 2007 21:50 | Feedback (1) | Filed Under [ .NET OpenSource Spring.NET ]

Repository Factory

Il team di patterns & practices ha messo in cantiere una nuova Software Factory, per la precisione la Repository Factory! Direttamente dalla home page del progetto: The Repository Factory is a guidance package that automates creation of entity classes that map to database tables and repository classes to read and write those entity classes. The generated code removes the tedium of writing a persistence-ignorant domain model. [...] The Repository Factory is not intended to be a be-all-does-everything ORM solution. Instead, it's a lightweight code generator that automates most of the hand-coding needed to build domain model object and persist them to a database. Questa...

posted @ giovedì 23 agosto 2007 10:55 | Feedback (0) | Filed Under [ .NET OpenSource patterns & practices ]

SharpDevelop 2.2.1

E' stata da poco rilasciata una nuova versione di SharpDevelop, per l'esattezza la versione 2.2.1 . Per conoscere le novità di questa release leggete direttamente il post alla fonte. Fonte: SharpDevelop 2.2.1 Technorati tags: SharpDevelop

posted @ mercoledì 8 agosto 2007 15:56 | Feedback (0) | Filed Under [ .NET OpenSource ]

ADO.NET Entity Framework June 2007 CTP

E' stata rilaciata dal team di ADO.NET una nuova CTP di Entity Framework. Inoltre sono stati pubblicati una serie di esempi su CodePlex. Fonte: New EF CTP! ADO.NET Entity Framework June 2007 CTP is Available Technorati tags: Entity Framework, ADO.NET

posted @ martedì 3 luglio 2007 09:43 | Feedback (1) | Filed Under [ .NET ]

Video Model View Presenter

Sono disponibili a questa pagina un insieme di screencast e podcast sul Pattern Model View Presenter. Technorati tags: Model View Presenter, MVP

posted @ lunedì 2 luglio 2007 20:29 | Feedback (0) | Filed Under [ .NET Architecture ]

Controlli Windows Forms e gli equivalenti controlli WPF

A questa pagina troviamo un confronto tra i controlli Windows Forms ed i controlli Windows Presentation Foundation (WPF). Utile per capire quali controlli non sono presenti, come il NotifyIcon, e quali sono "componibili" come il controllo CheckedListBox. Technorati tags: .net 3.0, WPF, Windows Presentation Foundation, Windows Forms

posted @ sabato 30 giugno 2007 09:59 | Feedback (1) | Filed Under [ .NET ]

Video Presenter First

Su ARCast.tv sono stati pubblicati tre video, fatti dal team di Atomic Object, che parlano del Pattern Presenter First, specializzazione del noto Model View Presenter (MVP). Presenter First Pattern (Part 1) Presenter First Pattern (Part 2) Presenter First Pattern (Part 3) Technorati tags: Presenter First, MVP

posted @ sabato 30 giugno 2007 09:59 | Feedback (4) | Filed Under [ .NET Architecture ]

Video Tutorial su Expression Blend

Su Channel9 sono stati recentemente pubblicati quattro video tutorial per creare interfacce grafiche con Expression Blend: Real-world WPF: Introduction to Blend (Part1) Real-world WPF: Introduction to Blend (Part2) Real-world WPF: Introduction to Blend (Part3) Real-world WPF: Introduction to Blend (Part4) Technorati tags: Expression Blend

posted @ martedì 26 giugno 2007 10:34 | Feedback (0) | Filed Under [ .NET ]

Implementare Silverlight in 21 giorni

Il team di Mono ha implementato la prima versione di Moonlight il "clone" di Silverlight per Linux. Miguel De Icaza, fondatore di Mono, ha scritto un post per riassumere e raccontare questi 21 giorni di lavoro intenso per realizzare Moonlight. Molto interessanti sono le statistiche finali: Made 1,228 commits to the SVN repository (Everaldo was the lucky commiter for revision r80000 in our tree). Wrote 24,373 lines of C++ Wrote 1,367 lines for the C# binding to Gtk# and the Mozilla C# host. Wrote 13,207 lines of C# class libraries (not including the ongoing work on an open source Javascript...

posted @ giovedì 21 giugno 2007 13:06 | Feedback (0) | Filed Under [ .NET OpenSource ]

Nuova Collection nel .NET Framwork 3.5

Nella versione attuale del .NET Framework c'è la mancanza di un tipo di collezione fra quelle "accademicamente" conosciute ed è il tipo Set, il quale rappresenta una lista non ordinata, i cui elementi sono presenti una sola volta. Leggendo il white paper su Orcas ho scoperto che questa mancanza è stata colmata nella prossima versione del .NET Framework, la 3.5, introducendo una nuova collezione nel namespace System.Collections.Generic, la HashSet. Technorati tags: .net 3.5

posted @ giovedì 14 giugno 2007 16:56 | Feedback (3) | Filed Under [ .NET ]

Nuova versione di Threat Analysis and Modeling

E' stata rilasciata una nuova versione del tool Microsoft per l'analisi delle nostre applicazioni dal punto di vista della sicurezza. Potete scaricarlo dalla pagina di download. Chi non conosce il tool può guardate i video tutorials oppure la registrazione e le slide della sessione "Security by Design", tenuta da Raffaele Rialdi all'ultimo workshop UGIdotNET. Technorati tags: Threat Analysis and Modeling

posted @ giovedì 5 aprile 2007 11:46 | Feedback (1) | Filed Under [ .NET Security ]

Guidare la UI utilizzando WF

Il PM di Windows Workflow Foundation, Moustafa Khalil Ahmed, ha creato uno screencast, pubblicato su Channel9, dove mostra come utilizzare il Rules Engine di WF per guidare la UI della nostra applicazione. E' stato pubblicato anche il codice sorgente. Technorati tags: .net 3.0, WF, Workflow Foundation

posted @ lunedì 12 marzo 2007 13:34 | Feedback (0) | Filed Under [ .NET ]

WPF Wiki

A Gennaio su Channel 9 è stato aperto un wiki su WPF per raccogliere e condividere risorse riguardanti Windows Presentation Foundation. Questa iniziativa si affianca al wiki di WPF su MSDN. Fonte: The WPF Wiki Technorati tags: .net 3.0, WPF, Windows Presentation Foundation

posted @ venerdì 9 marzo 2007 12:55 | Feedback (1) | Filed Under [ .NET ]

Policy Injection Application Block vs Windsor Container

Nel mio precedente post ho parlato del nuovo Policy Injection Application Block. Il mitico Ayende dopo aver letto il post di David Hyden che introduceva le funzionalità del nuovo Application Block si è chiesto..."perchè non usare le capacità di Windsor Container per implementare le solite funzionalità del Policy Injection Application Block?". Nemmeno il tempo di pensarci ed in 40 minuti con 400 righe di codice ha aggiunto le stesse funzionalità al Windsor Container, il suo progetto è scaricabile a questo indirizzo.  Technorati tags: Enterprise Library, CastleProject, patterns&practices

posted @ giovedì 8 marzo 2007 19:08 | Feedback (1) | Filed Under [ .NET OpenSource patterns & practices ]

Policy Injection Application Block

Nella CTP di Febbraio di Enterprise Library 3.0 è stata introdotta la prima versione di un nuovo blocco, il  Policy Injection Application Block. Questo blocco permette di separare la logica di business da quelle che sono le problematiche trasversali della nostra applicazione, come il logging e l'exception handling, in pratica introduce delle funzipnalità AOP-like. Il suo funzionamento è molto semplice, intercetta le chiamete ad un metodo utilizzando delle regole di matching ed esegue una serie di operazioni (handler) prima e dopo l'esecuzione del metodo. Come per tutti gli altri blocchi il funzionamento va impostato nel file di configurazione specificato l'elenco delle policy, per...

posted @ giovedì 8 marzo 2007 11:50 | Feedback (5) | Filed Under [ .NET OpenSource patterns & practices ]

SharpDevelop 2.1

Oggi è stata rilasciata la Final Release di SharpDevelop 2.1 , scaricabile dall' apposita pagina di download. L' elenco delle nuove features è molto corposo. Potete effettuare anche un tour di tutte le features di SharpDevelop 2.1 . Technorati tags: SharpDevelop

posted @ mercoledì 7 marzo 2007 15:10 | Feedback (1) | Filed Under [ .NET OpenSource ]

Behaviour Specification Framework for .Net

Segnalo due framework open source per sviluppare le proprie applicazioni utilizzando Behaviour-Driven Development. Il primo è NSpec ed è sviluppato da Tigris, il secondo invece è nunit-spec sviluppato da Scott Bellware. Quest' ultimo estende la sintassi di NUnit utilizzando gli extension methods di C# 3.0 . Technorati tags: Behaviour-Driven Development, BDD, Testing, NSpec

posted @ martedì 6 marzo 2007 03:12 | Feedback (0) | Filed Under [ .NET OpenSource ]

.NET Micro Framework 2.0 Whitepaper

A questo indirizzo è possibile scaricare un interessante whitepaper sul .NET Micro Framework 2.0 Technorati tags: .NET Micro Framework

posted @ lunedì 5 marzo 2007 19:27 | Feedback (0) | Filed Under [ .NET ]

Enterprise Library 3.0 February 2007 CTP

E' stata da poco rilasciata la CTP di Febbraio di Enterprise Library. Sul blog di David Hayden a questo indirizzo potete trovare l'annuncio ufficiale e l'elenco delle novità. Technorati tags: Enterprise Library, patterns&practices

posted @ giovedì 1 marzo 2007 20:09 | Feedback (0) | Filed Under [ .NET OpenSource patterns & practices ]

Powered by:
Powered By Subtext Powered By ASP.NET