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 ]

Full .NET Archive

Powered by:
Powered By Subtext Powered By ASP.NET