ottobre 2007 Blog Posts
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...
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...
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...
Come si suol dire, la miglior difesa è l'attacco!! Su Firmiamo.it è già stata aperta una petizoine online contro il nuovo disegno di legge. Io ho firmato, fatelo anche voi! Sara grazie per la segnalazione!!
La politica italiana fa sempre più schifo!! Io ancora non riesco a creadere a quello che ho letto! Anche un bambino capisce i problemi che il nuovo disegno di legge porterà a tutte le persone che hanno un blog o un sito personale. Parlano di regolamentare l'editoria sul web...BALLE!!! QUESTA E' CENSURA!!! QUESTO VUOL DIRE NON CAPIRE NULLA, MA PRORPIO NULLA DI COSA E' INTERNET E DEL SUO POTENZIALE!!! Vogliono controllare la rete semplicemente perchè uno dei pochi mezzi che ha un cittadino libero per far sentire la propria voce, il proprio dissapore verso un italia che sprofonda sempre di più!! Di questo...
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...
E' stato pubblicato oggi su ARCast.TV il video-intervista fatta a Mark Pollack (fondatore di Spring.NET) durante il Tech-Ed. Infatti ci tengo a ricordare che è la prima volta al Tech-Ed viene presentato un Framework Open Source e che i "ragazzi" di Spring.NET hanno tenuto due sessioni, sul forum è possibile leggere l'abstract. Spring is a popular Java framework for building applications that Mark Pollack had become quite familiar with. However he wanted to write applications in .NET so Spring.NET was born. In this episode I caught up with Mark at Tech-Ed US where we told me all about it. Trovate il video...
Stasera appena esco da lavoro parto in compagnia di un amico alla volta di SanMarino per assistere al fantastico Rally Legend, unica manifestazione del suo genere in Italia, è un rally come quelle dei giorni d'oggi però con piloti e macchine che hanno corso negli anni d'oro di questo sport e che hanno fatto la storia dei rally, nomi come BIASION, KANKKUNEN e MUNARI a bordo di macchine potentissime senza nessun tipo di controllo che hanno acceso il fuoco della passione nel cuore delle persone che come me amano questo sport, sto parlando di vetture come la LANCIA STRATOS, il FIAT 131 ABARTH, il PEUGEOT 205...
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: ...
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...
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...