Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1902, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

luglio 2008 Blog Posts

VB 2008: Accedere a parti di documenti Open XML con Open XML SDK

Ancora una perla della grande Beth Massi del Visual Basic Team che, in questo suo ultimo post, mostra l'utilizzo congiunto di Visual Basic 2008, Open XML SDK e LINQ per accedere e modificare i documenti di Microsoft Word 2007 in formato Open Xml tramite codice. Ultimamente l'argomento ha riscosso un certo interesse anche nei forum della nostra amata Community, quindi, nonostante sia in inglese, vi consiglio di dargli un'occhiata, sia perchè è più il codice che il resto, sia perchè la semplicità espositiva di Beth rende sempre tutto più semplice. Bello davvero, quasi quasi ne prendo spunto! ;-) Alessandro

posted @ giovedì 31 luglio 2008 22:25 | Feedback (2) | Filed Under [ Visual Basic LINQ ]

Referenziare assembly .NET in cartelle diverse

Mi è stato chiesto come sia possibile fare riferimento ad assembly .NET nelle proprie applicazioni, aggirando la necessità di farli risiedere nella directory dell'eseguibile o nella Global Assembly Cache. Il metodo più utilizzato è quello di specificare una sezione runtime nel file di configurazione. Si aggiunge al progetto, quindi, un file App.Config (Windows) o Web.Config (Web) nel quale si aggiunge una sezione di questo tipo: <runtime>      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">            <probing privatePath="bin;bin\DllFirstFolder;bin\DllSecondFolder;" />      </assemblyBinding> </runtime> Dove DllFirstFolder e DllSecondFolder sono le directory dove risiedono gli assembly. Il concetto di probing è correlato a quello di codebase, entrambi meglio descritti in questo articolo della libreria MSDN che riporta...

posted @ mercoledì 30 luglio 2008 23:04 | Feedback (1) | Filed Under [ .NET Framework ]

WPF Forms over Data - 3° e 4° video

La mitica Beth Massi ha realizzato il terzo e il quarto video della serie degli How-do-I inerenti l'accesso ai dati in applicazioni WPF in Visual Basic 2008. Potete leggere il post di presentazione dei due nuovi media a questo indirizzo oppure dirigervi direttamente all'elenco completo disponibile a questa pagina della Code Gallery di MSDN. Alessandro

posted @ domenica 27 luglio 2008 18:42 | Feedback (1) | Filed Under [ Visual Basic Windows Presentation Foundation ]

LINQ: il mio codice di luglio 2008 in formato Code Snippet

Ho appena pubblicato in area download di Visual Basic Tips & Tricks tutti i frammenti di codice dedicati a LINQ per Visual Basic 2008 pubblicati su questo blog nel mese di luglio. Troverete un file in formato .Vsi che installerà i code snippet sul vostro pc, rendendoli utilizzabili in Visual Studio 2008 e Visual Basic 2008 Express tramite l'Intellisense. I code snippet sono ripresi dai seguenti post: LINQ: Interrogare il registro con VB 2008 LINQ: enumerare i controlli di un form (VB 2008) LINQ: Interrogare l'elenco dei file recenti con VB 2008 LINQ e la Reflection (VB 2008) LINQ: ottenere gli argomenti della riga di comando Mentre il...

posted @ domenica 20 luglio 2008 13:41 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

LINQ: Interrogare il registro con VB 2008

Un altro possibile utilizzo di LINQ-to-Objects è quello che concerne l'interrogazione del registro di sistema, utilizzando le metodologie sintattiche già note. Per esempio, il seguente frammento di codice ottiene l'elenco di tutte le sottochiavi, figlie della chiave HKEY_LOCAL_MACHINE\Software, che iniziano con la lettera "M":         Dim registryKeys = My.Computer.Registry.LocalMachine.OpenSubKey("Software").GetSubKeyNames           Dim query = From key In registryKeys _                     Where key.StartsWith("M") _                     Order By key           'Solita iterazione per mostrare il risultato         For Each item In query             Console.WriteLine(item)         Next Come dire, LINQ everywhere! Alessandro

posted @ sabato 19 luglio 2008 09:48 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

Microsoft Expression Studio 2 disponibile in italiano

Già disponibile in versione completa per gli abbonati MSDN, ora è disponibile per il download pubblico la Trial di Microsoft Expression Studio 2 in italiano. Come sapete, si tratta di una suite di strumenti per designer, che affiancano gli strumenti per developer come Visual Studio 2008. I link li trovate in questa pagina del blog di MSDN Italia, mentre ulteriori info sui singoli prodotti le potete trovare in questo post di Roberto Cavallini. Io vi consiglio di provare la suite o i singoli strumenti, perchè sono davvero stupefacenti. Se poi vi intriga il mondo di Microsoft Silverlight, Expression Blend ed Expression Encoder...

posted @ domenica 13 luglio 2008 22:16 | Feedback (1) | Filed Under [ .NET Framework Windows Presentation Foundation ]

Microsoft SandCastle torna su CodePlex, con codice a corredo

Leggo solo ora questo post di Marco Minerva, il quale ci porta a conoscenza di una notizia che, a mio avviso, è a dir poco meravigliosa. :-) Microsoft SandCastle, il noto tool per la generazione di file della guida compilati per la documentazione del proprio codice sorgente, torna su CodePlex dopo che era stato rimosso perchè non rispettava la regola della pubblicazione del codice sorgente. Ora la regola è rispettata e il codice sorgente in C# è disponibile. Non so quando, ma non mi lascio scappare la ghiotta occasione di guardare il codice di un'applicazione del genere! L'indirizzo da visitare è questo. Alessandro

posted @ domenica 13 luglio 2008 01:15 | Feedback (1) | Filed Under [ Help Authoring ]

WPF: trascinare una Window senza bordo

Quando in Windows Presentation Foundation facciamo sì che la nostra Window sia senza bordo, indipendentemente dalla sua forma, quindi nel momento in cui impostiamo la sua proprietà WindowStyle come None, la finestra non è più trascinabile sullo schermo. Una piccola soluzione a questo problema può essere implementata gestendo l'evento MouseLeftButtonDown, nel quale verificheremo la pressione del tasto sinistro del mouse e conseguentemente invocheremo il metodo relativo al trascinamento:     Private Sub Window1_MouseLeftButtonDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles Me.MouseLeftButtonDown           If e.ButtonState = MouseButtonState.Pressed Then Me.DragMove()     End Sub Alessandro

posted @ sabato 12 luglio 2008 17:31 | Feedback (2) | Filed Under [ Visual Basic Windows Presentation Foundation ]

LINQ: work-around per il metodo Last in LINQ-to-SQL

In un vecchio post parlammo dei metodi extension Last e LastOrDefault, dicendo che permettono di ottenere l'ultimo elemento di una sequenza che soddisfi la condizione specificata e che, però, non sono supportati in LINQ-to-SQL. Oggi vediamo un possibile work-around. In primo luogo, creiamo un nuovo progetto, eseguiamo la connessione al database (nell'esempio proposto, il famoso Northwind) e aggiungiamo una classe LINQ-to-SQL al progetto, chiamata Northwind.dbml. Quando il designer OR/M è attivo, trascinate la tabella Customers su di esso dalla finestra Esplora Server. Quindi, ipotizziamo di voler conoscere l'ultimo dei clienti tra quelli che risiedono nella città di Londra. Negli altri provider LINQ...

posted @ venerdì 11 luglio 2008 20:16 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

LINQ: enumerare i controlli di un form con extension methods

Nel precedente post, abbiamo visto come enumerare i controlli contenuti in un Windows Form tramite una semplice query LINQ. Lo stesso identico risultato si può ottenere sfruttando due metodi extension: OfType e Select. Il primo si comporta come la keyword TypeOf, sotto forma di estensione. Il secondo, si comporta come la clausola Select delle query. Vediamo come ottenere tutte le TextBox in un form con questa metodologia, per poi commentarla: Dim query = Me.Controls.OfType(Of TextBox).Select(Function(txtBox) txtBox.Name) OfType fa parte degli operatori di conversione di LINQ e riceve, come argomento, il tipo da ottenere. Select, invece, nella...

posted @ venerdì 11 luglio 2008 14:48 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

LINQ: enumerare i controlli di un form (VB 2008)

Oggi vediamo come sia possibile, tramite una query LINQ, enumerare i controlli contenuti in un oggetto System.Windows.Forms.Form. Supponendo di avere sulla nostra finestra diversi tipi di controlli, il seguente snippet ottiene tutte le TextBox, selezionando, per ciascuna di esse, il valore della proprietà Name:         Dim query = From controllo In Me.Controls _                     Where TypeOf (controllo) Is TextBox _                     Let txtBox = DirectCast(controllo, TextBox) _                     Select txtBox.Name L'operatore DirectCast ci occorre perchè noi vogliamo conoscere le informazioni delle TextBox, quindi dobbiamo convertire ciascun Control in questo particolare oggetto; in questo caso forse si apprezza meglio...

posted @ venerdì 11 luglio 2008 14:31 | Feedback (4) | Filed Under [ Visual Basic LINQ ]

LINQ: Interrogare l'elenco dei file recenti con VB 2008

Tra le migliaia di utilizzi possibili di LINQ-to-Objects, oggi vediamo come ottenere l'elenco dei file recenti. In primo luogo, otteniamo la cartella di sistema ove risiedono i collegamenti: Dim RecentFilesFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Recent) Dopodichè effettuiamo una query per conoscere, ad esempio, il nome di ciascun file e la data di ultimo accesso: Dim RecentFiles = From recentFile In My.Computer.FileSystem.GetDirectoryInfo(RecentFilesFolder).GetFiles _                   Let NomeFile = recentFile.Name, UltimoAccesso = recentFile.LastAccessTime _                   Select NomeFile, UltimoAccesso L'oggetto RecentFile è determinato come di tipo FileInfo. Come potete osservare, abbiamo utilizzato la parola chiave Let per assegnare un identificatore specifico a una determinata...

posted @ giovedì 10 luglio 2008 20:08 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

LINQ: ottenere gli argomenti della riga di comando

Se la vostra applicazione riceve argomenti dalla riga di comando, niente di meglio che interrogarli con LINQ. Il seguente snippet ottiene il numero degli argomenti che iniziano con il simbolo /:         Dim arguments = Aggregate argument In My.Application.CommandLineArgs _                         Where argument.StartsWith("/") _                         Into Count() Sostituendo Aggregate con From e Into Count con Select o gli altri operatori del caso, potrete filtrare gli argomenti come preferite. Carino no? J Alessandro

posted @ mercoledì 9 luglio 2008 00:22 | Feedback (2) | Filed Under [ Visual Basic LINQ ]

LINQ e la Reflection (VB 2008)

E' interessante come LINQ-to-Objects possa essere utilizzato nei confronti dei più disparati oggetti .NET. Negli esempi di codice "iniziatici" troviamo spesso query nei confronti di array o collection molto semplici, ma LINQ può essere utilizzato anche verso altri oggetti della libreria di classi base di .NET Framework. Un esempio è la Reflection. Per esempio, è possibile ottenere l'elenco di tutti gli assembly caricati dalla propria applicazione con una semplice espressione di questo tipo:         Dim assemblyList = From dll In My.Application.Info.LoadedAssemblies _                            Select dll.GetName.Name           For Each item In assemblyList             Console.WriteLine(item.ToString)         Next           Console.ReadLine() Con un po' di...

posted @ lunedì 7 luglio 2008 23:27 | Feedback (1) | Filed Under [ Visual Basic LINQ ]

Aggiungere link di disinstallazione ai progetti di distribuzione in Visual Studio 2008

Una delle domande più ricorrenti che mi è capitato di leggere nei vari forum e newsgroup che frequento, con riferimento alla creazione di progetti di distribuzione basati su Windows Installer in Visual Studio .NET/2005/2008, riguarda la possibilità di aggiungere un collegamento per la rimozione dell'applicazione direttamente nella cartella di collegamenti per il menu Start|Programmi di Windows. Prendendo spunto da un paio di articoli in inglese che ho visto in giro ma che secondo me sono carenti nella spiegazione di un paio di punti, riprendo il discorso in italiano e descrivo ora, a mio modo, la procedura da seguire. In primo luogo, create il vostro progetto...

posted @ domenica 6 luglio 2008 16:31 | Feedback (5) | Filed Under [ Visual Basic C# Setup & Deployment Visual Studio 2008 ]

WPF e Blend: applicare stili agli elementi di una ListBox

In WPF, come ormai sapete, i controlli utente sono altamente personalizzabili. È questo il caso anche della ListBox, in cui è possibile modificare l’aspetto dei singoli elementi dell’elenco, per esempio quando si seleziona ciascun elemento. In questo post vedremo come far sì che alla selezione, lo sfondo di ciascun elemento sia riportato come gradiente lineare.   Utilizzando codice XAML puro, il lavoro, sebbene ovviamente fattibile, diventa un po’ improbo. Utilizzeremo, quindi, uno strumento di design specifico, come Microsoft Expression Blend nella sua versione June 2005 CTP, scaricabile a questo indirizzo.   Una volta aperto, create un nuovo...

posted @ domenica 6 luglio 2008 16:08 | Feedback (3) | Filed Under [ Visual Basic Windows Presentation Foundation ]

WPF Forms over Data Videos dal Visual Basic Developer Center

Se siete interessati alla realizzazione di applicazioni WPF, imparando le tecniche di accesso ai dati, niente di meglio dei nuovi How-do-I video realizzati dalla mitica Beth Massi, che godono di uno spazio sulla Code Gallery di MSDN a questo indirizzo. Disponibili per il download i video e il codice sorgente in Visual Basic 2008/C# 2008. Un ottimo modo per iniziare lo studio di applicazioni data-centric in WPF, in considerazione anche della notevole capacità espositiva di Beth. Alessandro

posted @ mercoledì 2 luglio 2008 18:07 | Feedback (1) | Filed Under [ Visual Basic Windows Presentation Foundation ]

Da VB 6 a VB 2008 in pillole: usare file temporanei

In questo suo post, Andrea Lisi ci mostra come, in Visual Basic 6, sia possibile creare file temporanei ricorrendo ad alcune API di Windows. In totale, commenti esclusi, una quindicina di righe di codice e ricorso alle API. In Visual Basic 2008, lo stesso risultato si ottiene con una sola riga di codice, grazie al metodo condiviso GetTempFileName della classe System.IO.Path:         'Ottiene un file temporaneo univoco e ne restituisce il nome         Dim tempFile As String = System.IO.Path.GetTempFileName Il metodo restituisce un tipo String, che contiene il percorso completo del file temporaneo. Una volta ottenuto il...

posted @ martedì 1 luglio 2008 17:53 | Feedback (4) | Filed Under [ Visual Basic ]

Powered by:
Powered By Subtext Powered By ASP.NET