C#

WPF in salsa MVVM e i template

Uno degli aspetti di WPF che più mi piace sono i template. Qui si trova una panoramica su ciò che si può fare. I DataTemplate sono molto comodi quando usiamo MVVM; a parer mio, sono la risposta alla domanda: "Bene ora ho il ViewModel e la View. Come li relaziono tra loro?". Come funzionano? Tramite i DataTemplate puoi creare una associazione tra uno specifico tipo di dato ed un template che lo rappresenta. Facciamo qualche esempio: supponiamo di avere un ViewModel di tipo CustomerViewModel e di volerlo associare alla sua View, uno UserControl chiamato CustomerDetailView; potremmo scrivere qualcosa...

XmlSerializer e serializzazione personalizzata

Personalizzare l'XML prodotto dalla serializzazione di una classe con XmlSerialization è motlo semplice; è sufficiente infatti far implementare alle classi coinvolte nella serializzazione l'interfaccia IXmlSerializer. Voglio mostrarvi un esempio: ho avuto la necessità di serializzare una classe che conteneva alcune liste di altre classi; il documento prodotto non doveva raggruppare le varie liste in nodi che rappresentavano le proprietà, ma elencare tutte le istanze sotto il nodo radice. La classi di esempio: public class InterfaceIn : IXmlSerializable { public List<Field>...

Aprire un file col programma predefinito

Ecco un piccolo tip per aprire un file in c#, in modo del tutto analogo alla cara vecchia ShellExecute System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = path; proc.StartInfo.UseShellExecute = true; proc.Start(); Non so se sia l'unico modo; sicuramente è un modo semplice ed efficace   Matteo   Technorati Tag: ShellExecute

SqlServer Compact 32 bit in ambiente a 64 bit

Se vi capita di usare Visual Studio 2008 su una macchina con, ad esempio, un Windows Vista a 64 bit per creare una applicazione con SqlServer Compact a 32 bit, potreste imbattervi in un errore col seguente messaggio: ...Could not load file or assembly or one of its dependencies. An attempt was made to load a program with an incorrect format... A me è successo e ci ho messo un po a capire che era colpa della mia disattenzione. Le soluzioni sono due: la prima è che se...

Routed Event e TreeView

I Routed Event sono stati introdotti con l'avvento di WPF; molto in sintesi, sono eventi che vengono propagati lungo tutto l'albero di controlli della nostra Window, ammettendo quindi gestori multipli: per esempio se abbiamo uno StackPanel con dentro un Button con dentro una Image, l'evento click generato dal click del mouse sulla Image verrà propagato anche al Button e in seguito allo StackPanel. Qui potrete trovare maggiori info. Di seguito invece un piccolo tip per l'uso delle TreeView. Ho implementato un piccolo programmino che prevede la rappresentazione di dati in un albero e la gestione del Drag and Drop....

Program to an Interface, sempre!

Proprio ieri ho avuto una grande conferma di come utilizzare interfacce anzichè classi concrete come dipendenze, paghi e molto! Se poi il tutto è gestito con un framework IoC ancora meglio. Perchè paga? Beh vi racconto una situazione, sicuramente non proprio comune, in cui mi sono trovato. Ultimamente sto seguendo un progetto distribuito su vari stabilimenti dello stesso cliente e per questo motivo è basato su servizi. Oggi il progetto andava in demo presso uno stabilimento, in modo che gli utenti cominciassero a prendere dimistichezza con la UI e validassero i requisiti; purtroppo le macchine virtuali di test...

Deploy del Framework .NET 3.5 SP1 - Part II

Mi rifaccio al post precedente per una importante aggiunta Se dopo aver pubblicato l'applicazione, eseguendo l'installer da remoto, il download dei file dovesse interrompersi col seguente errore: Downloading failed with HRESULT=-2146697210 dovete controllare che il vostro application server (il server su cui l'applicazione è pubblicata) abbia i seguenti MIME impostati .msp --> application/microsoftpatch .msu --> application/microsoftupdate Il mio non li aveva e, aggiungendoli e riavviando il sito web che ospita l'applicazione, il download ha ripreso dal punto in cui si era fermato ;) !   Matteo ...

Deploy del Framework .NET 3.5 SP1

Chi volesse includere nelle applicazioni pubblicate tramite ClickOnce il Framework .NET 3.5 SP1, per renderlo scaricabile direttamente dal sito dell'applicazione, trova a questo link informazioni utili.   Matteo     Technorati Tag: .Net Framework 3.5 SP1,ClickOnce,Deploy

Linq e il metodo Distinct

Ultimamente ho avuto la necessità di estrarre tutti gli elementi distinti di una query Linq. La query in questione interroga un EntitySet e restituisce come risultato una proiezione dei dati di una Entity all'interno di una classe; si presenta all'incirca così: var result = (from c in dataContext.CaratteristicheChimicheSet where codition orderby order descending select new Chemical() { ...

Muovendo i primi passi con Unity

Unity è il framework di IoC messo a disposizione dal team di Microsoft Pattern&Practices; in linea col pattern, unity permette di disaccopiare l'implementazione dal suo contratto, rimuovendo le dipendenze a compile time e risolvendole dinamicamente a run time. Cominciare ad usarlo non è per nulla complesso. Ci sono riuscito pure io ;) Cosa si può fare per cominciare: possiamo definire quali implementazioni concrete utilizzare in risposta alla richiesta di determinate interfacce di queste implementazioni definire il lifecycle tramite dei tipi particolari Vediamo un esempio di file di configurazione che...

Full C# Archive