Around and About .NET World

Il blog di Marco Minerva
posts - 1671, comments - 2232, trackbacks - 2135

My Links

News

Contattami su Live Messenger:


MCTS: Windows, Web, Distributed Applications & SQL Server

MCPD: Enterprise Applications

Tag Cloud

Archives

Post Categories

Links

C#

Su ioProgrammo il terzo articolo dedicato a .NET Gadgeteer

Continua la serie degli articoli dedicati a .NET Gadgeteer che sto scrivendo sulla rivista ioProgrammo. Questa volta tocca alla domotica: sul numero di Dicembre (181) mostro come creare un device embedded grazie al quale possiamo accendere una lampadina da remoto attraverso Windows Phone. Correte ad acquistarlo :-) Tag di Technorati: .NET,Programming,.NET Micro Framework,.NET Gadgeteer,C#,Windows Phone

posted @ giovedì 22 novembre 2012 15:51 | Feedback (3) | Filed Under [ C# .NET Micro Framework Windows Phone ]

Qualche parola sull'evento Natural User Interface con Kinect e .NET Gadgeteer

Finalmente trovo il tempo di scrivere due righe sull'evento Natural User Interface con Kinect e .NET Gadgeteer che si è svolto lo scorso 10 Novembre a Pisa. Secondo me, l'evento è andato molto bene, l'interesse sull'argomento è stato alto, e vedere Kinect all'opera è davvero uno spettacolo :-) E' stata la prima volta che ho avuto la possibilità di lavorare con Massimo Bonanni, e devo dire che è stato un vero piacere: sfruttando Team Foundation Service, siamo riusciti ad unire due progetti assolutamente eterogenei, uno su Gadgeteer e uno con Kinect. Per coordinarci, abbiamo fatto solo un paio di...

posted @ mercoledì 21 novembre 2012 18:42 | Feedback (1) | Filed Under [ C# .NET Micro Framework WPF Visual Studio 2012 ]

Text-To-Speech anche per Javascript e C++

Oggi ho finalmente trovato il tempo di aggiornare la mia libreria per la traduzione e il Text-To-Speech con il servizio Microsoft Translator. Questa release porta con sé un’importante novità: la versione per Windows Store adesso è un Windows Runtime Component, e quindi può essere utilizzata, oltre che da C#/VB .NET, anche con Javascript e C++. Come sempre, potete scaricarla da CodePlex oppure tramite NuGet (il nome del package è TranslatorService.Speech). Tag di Technorati: .NET,Programming,C#,VB.NET,Windows Phone,WinRT,CodePlex

posted @ giovedì 1 novembre 2012 22:02 | Feedback (4) | Filed Under [ C# VB .NET CodePlex .NET 4.0 Windows Phone WinRT & Windows 8 ]

Servizi Web con .NET Gadgeteer su ioProgrammo

Il secondo articolo dedicato a .NET Gadgeteer è stato pubblicato sul numero di Novembre (180) di ioProgrammo. Questa volta mi occupo della creazione di servizi Web sul dispositivo, per ottenere informazioni dal device oppure comandare il suo funzionamento. Il divertimento continua :-) Tag di Technorati: .NET,Programming,.NET Micro Framework,.NET Gadgeteer,C#

posted @ martedì 23 ottobre 2012 10:33 | Feedback (1) | Filed Under [ C# .NET Micro Framework Visual Studio 2010 ]

Un po' di chiarezza sull'in-place upgrade a .NET 4.5

Il .NET Framework 4.5 è rilasciato come un in-place upgrade della versione 4.0. Questo significa che .NET 4.5 sostituisce completamente la release precedente sul PC, senza modificarne il numero di versione. Come si può leggere nel post .NET 4.5 is an in-place replacement for .NET 4.0 di Rick Strahl: When you install .NET 4.5 your .NET 4.0 assemblies in the \Windows\.NET Framework\V4.0.30319 are overwritten with a new set of assemblies. You end up with overwritten assemblies as well as a bunch of new ones (like the new System.Net.Http assemblies for example). […] The 4.5 update completely replaces the .NET 4.0 runtime...

posted @ giovedì 13 settembre 2012 11:08 | Feedback (5) | Filed Under [ C# VB .NET ASP .NET .NET 4.5 Visual Studio 2012 ]

Introduzione a .NET Gadgeteer su ioProgrammo

Sul numero di Settembre di ioProgrammo (178) è stato pubblicato il mio articolo Introduzione a .NET Gadgeteer. Si tratta del primo di una serie in cui illustrerò le caratteristiche della piattaforma, dal punto di vista hardware e software, e come utilizzarla per realizzare dispositivi embedded in modo estremamente facile e veloce, anche senza avere conoscenze di elettronica.   Spero che il mio lavoro possa contribuire ad aumentare la conoscenza e la diffusione di questa fantastica piattaforma, con cui personalmente mi diverto da matti! Tag di Technorati: .NET,Programming,.NET Micro Framework,.NET Gadgeteer,C#

posted @ martedì 21 agosto 2012 14:08 | Feedback (2) | Filed Under [ C# .NET Micro Framework Visual Studio 2010 ]

Da Apress sconto del 40% per gli utenti di DotNetToscana

In questa calda estate, mentre molti hanno appena scaricato o stanno scaricando le RTM di Windows 8 e Visual Studio 2012, DotNetToscana, grazie alla sponsorizzazione di Apress, offre uno sconto del 40% sull'acquisto dell'e-book Pro C# and the .NET 4.5 Framework. L'offerta è valida fino al 15 Settembre. Per approfittarne, è sufficiente registrarsi sul sito DotNetToscana e scaricare il coupon disponibile nella sezione Benefit. Tag di Technorati: Community,.NET,Programming,Visual Studio,C#,Windows 8,WinRT

posted @ venerdì 17 agosto 2012 14:09 | Feedback (3) | Filed Under [ C# Community .NET 4.5 WinRT & Windows 8 Visual Studio 2012 ]

TranslatorService su ioProgrammo

Sul numero di Agosto (177) di ioProgrammo è presente un articolo di Mario De Ghetto dedicato agli strumenti di traduzione e Text-to-speech. Quest'ultimo aspetto è illustrato sfruttando la mia libreria TranslatorService.Speech. Ringrazio di cuore Mario per aver scelto di inserire il mio lavoro nel suo articolo! Tag di Technorati: CodePlex

posted @ venerdì 27 luglio 2012 11:55 | Feedback (3) | Filed Under [ C# CodePlex .NET 4.0 ]

[.NET Gadgeteer] Il mio Robot controllato da Windows Phone

I miei esperimenti con .NET Gadgeteer continuano senza sosta, perché mi diverto troppo… Questa volta, ho realizzato un Robot controllato via Wi-Fi da un'applicazione Windows Phone, con streaming delle immagini catturate dalla camera installata nella sua parte frontale: Tutti i dettagli di realizzazione, insieme al codice dell'applicazione .NET Gadgeter e di quella per Windows Phone, sono disponibili nell'articolo Wi-Fi Gadgeteer Robot controlled by Windows Phone with image streaming. Tag di Technorati: .NET,Programming,.NET Micro Framework,.NET Gadgeteer,Windows Phone

posted @ mercoledì 11 luglio 2012 11:38 | Feedback (0) | Filed Under [ C# .NET Micro Framework Windows Phone ]

Text-To-Speech su CodePlex

Come anticipato nei giorni scorsi, ho spostato su CodePlex la mia libreria per il Text-To-Speech con il servizio Microsoft Translator. Per l'occasione, ho fatto un piccolo aggiornamento, portandola alla release 1.3.1, e, cosa più importante, ho rilasciato anche la versione per Windows Phone. Naturalmente, il package su NuGet è anch'esso aggiornato. Tag di Technorati: .NET,Programming,C#,Windows Phone,CodePlex

posted @ venerdì 1 giugno 2012 11:56 | Feedback (3) | Filed Under [ C# CodePlex .NET 4.0 Windows Phone ]

Nuova versione della libreria per il Text-To-Speech

La mia libreria per il Text-To-Speech con Microsoft Translator è giunta alla versione 1.3. In questa nuova release ho aggiunto una funzionalità di riconoscimento automatico della lingua. Come sempre, può essere scaricata tramite NuGet. Nell’esempio disponibile su MSDN Code Gallery, inoltre, è adesso presente anche un’applicazione WPF di esempio, che si affianca alla classica Console Application: Si tratta dell’ultima versione che pubblicherò su MSDN Code Gallery. Ho in progetto di effettuare il porting della libreria su altre piattaforme (le versioni per Windows Phone e WinRT sono quasi pronte), quindi per gestire meglio il progetto, sposterò tutto...

posted @ domenica 27 maggio 2012 20:37 | Feedback (0) | Filed Under [ C# CodePlex .NET 4.0 WPF WinRT & Windows 8 ]

Microsoft Translator: la sottoscrizione al servizio è diventata obbligatoria

Ieri sera ho iniziato a lavorare al porting su Windows Phone della mia libreria per il Text-To-Speech con Microsoft Translator. Ad un certo punto, il servizio ha iniziato a restituire il codice di errore 400 (Bad Request) ad ogni mia richiesta: l’unica cosa che riuscivo ad ottenere era la lista dei linguaggi supportati dal Text-To-Speech. Dopo aver fatto qualche ricerca, sono arrivato alla pagina Microsoft Translator sul Windows Azure Marketplace, in cui sono elencati i costi del servizio, in base al numero di caratteri inviati al mese. L’ultima opzione, fino a 2.000.000 di caratteri, è gratuita. Ho quindi effettuato...

posted @ mercoledì 18 aprile 2012 21:45 | Feedback (0) | Filed Under [ C# VB .NET .NET 4.0 WPF Windows Phone ]

Nuovo articolo su DotNetToscana

Su DotNetToscana è disponibile un nuovo articolo: Recuperare la posizione con Windows 8 (prima parte), in cui mostro come utilizzare le nuove Geolocation API fornite da WinRT per ottenere latitudine e longitudine del luogo in cui si ci trova. Si tratta di un articolo introduttivo, ma potrebbe essere il primo di una lunga serie, quindi rimanete sintonizzate sulla nostra Community! Tag di Technorati: .NET,Programming,C#,WinRT,Windows 8

posted @ lunedì 9 aprile 2012 16:01 | Feedback (1) | Filed Under [ C# .NET 4.5 WinRT & Windows 8 ]

Traduzioni localizzate dei messaggi di errore

Alzi la mano chi non ha mai inserito in Google un messaggio di errore di .NET, alla ricerca di una spiegazione del problema: così facendo, infatti, spesso possiamo trovare descrizioni dettagliate, con precise indicazioni su come risolvere l'inghippo. Tuttavia, se utilizziamo una versione localizzata del Framework .NET (oppure se installiamo un'applicazione in un PC con la versione localizzata del Framework), anche i messaggi di errore sono tradotti. Come ben sappiamo, invece, abbiamo maggiori possibilità di trovare informazioni se cerchiamo il messaggio in inglese. Ma c'è un problema: spesso le traduzioni dall'inglese lasciano molto a desiderare (per non dire di...

posted @ venerdì 6 aprile 2012 19:21 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET Micro Framework Orcas & .NET 3.5 Silverlight LINQ .NET 4.0 Visual Studio 2010 AJAX WPF Windows Phone WCF ]

Articolo su async e await con C# 5

Ho appena pubblicato su DotNetToscana un articolo introduttivo sull’utilizzo delle parole chiave async e await con .NET 4.5/C# 5. Tag di Technorati: .NET,Programming,C#

posted @ domenica 25 marzo 2012 20:30 | Feedback (0) | Filed Under [ C# .NET 4.5 ]

Comunicazione tra processi diversi con Memory Mapped File

Qualche tempo fa ho scritto un post in cui ho parlato dell’utilizzo dei Memory Mapped File con C#. Prendendo spunto da esso, ho realizzato una libreria che sfrutta un file condiviso per realizzare la comunicazione tra due processi diversi: Come sempre, la potete trovare su MSDN Code Gallery. Tag di Technorati: .NET,Programming,C#

posted @ venerdì 16 marzo 2012 23:03 | Feedback (0) | Filed Under [ C# .NET 4.0 ]

Traduzioni con TranslatorService.Speech

Lo scorso weekend ho pubblicato una nuova versione della mia libreria per il Text-To-Speech. Ora espone un nuovo metodo, Translate (e la corrispondente versione asincrona TranslateAsync), che permette di ottenere solo la traduzione del testo, senza richiedere lo stream del parlato. Inoltre, ho aggiunto la proprietà AutomaticTranslation, che se impostata a false non richiede la traduzione del testo quando si recupera lo stream audio. In questo modo, è possibile velocizzare l’esecuzione quando abbiamo già il testo nella lingua corretta (e quindi non abbiamo bisogno di traduzioni). Come sempre, la potete trovare su MSDN Code Gallery e su NuGet, con nome TranslatorService.Speech. Tag di Technorati:...

posted @ lunedì 12 marzo 2012 21:47 | Feedback (0) | Filed Under [ C# VB .NET .NET 4.0 ]

La mia libreria per il Text-To-Speech su Channel9

Questa mattina, con grandissima sorpresa ed estremo piacere, ho scoperto che la mia libreria per il Text-To-Speech è oggetto di un post su Channel9. Sono molto felice che stia riscuotendo questo successo, quindi continuerò sicuramente a lavorarci sopra. Insomma, sono soddisfazioni… Tag di Technorati: .NET,Programming,C#,VB.NET

posted @ sabato 10 marzo 2012 13:49 | Feedback (0) | Filed Under [ C# VB .NET .NET 4.0 ]

Articolo sull’uso di MongoDB con C#

Finalmente ho trovato il tempo di fare qualche prova con MongoDB, un interessante database NoSQL di tipo document-oriented. Ne ho così approfittato per scrivere un articolo sull’argomento, in cui fornisco un’introduzione al suo utilizzo con C#. Come sempre, se siete interessati e/o incuriositi, mi farebbe piacere sapere cosa ne pensate! Tag di Technorati: .NET,Programming,C#,ADO .NET

posted @ lunedì 5 marzo 2012 00:28 | Feedback (3) | Filed Under [ C# SQL Server ]

Encode e Decode di HTML e Url con il .NET Client Profile

Qualche giorno fa ho parlato di un possibile problema che si può avere usando una libreria per il “Full” Profile in un progetto che invece si appoggia al profilo Client. Come detto, il Client Profile è la scelta consigliata quando sviluppiamo applicazioni client. Tuttavia, anche in questo caso spesso si ha necessità di usare classi che fanno parte del Full Profile. Ad esempio, se dobbiamo effettuare l’encode/decode di stringhe HTML e Url, è naturale pensare ai metodi della classe HttpServerUtility, che però è contenuta nell’assembly System.Web.dll, che non fa parte del Client Profile. D’altra parte, può sembrare esagerato...

posted @ mercoledì 29 febbraio 2012 21:45 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 .NET 4.0 Visual Studio 2010 ]

Nuova versione della mia libreria per il Text-To-Speech

Qualche settimana fa ho parlato della mia libreria per il Text-To-Speech con il .NET Framework. Nel frattempo, il servizio Microsoft Translator, su cui la libreria si appoggia, è stato spostato su Azure ed è stato arricchito di nuove funzionalità. Ora è possibile ottenere il parlato in formato WAV oppure MP3 e specificarne la qualità. Uno dei maggiori cambiamenti è che il meccanismo di accesso basato sul Bing Application ID, usato nella versione precedente, non è più supportato. Il nuovo servizio utilizza un sistema basato su token, compatibile con lo standard OAuth. Di conseguenza, per usare il servizio...

posted @ lunedì 27 febbraio 2012 02:00 | Feedback (4) | Filed Under [ C# VB .NET .NET Micro Framework .NET 4.0 ]

Applicazioni Client Profile e librerie Full Profile

Le applicazioni per Windows create con Visual Studio 2010, siano esse WPF, Windows Forms o Console, utilizzano di default il .NET 4 Client Profile, ovvero un sottoinsieme del .NET Framework ottimizzato proprio per le applicazioni client. Al contrario, le Class Library sono configurate per usare il “Full Profile”, ovvero l’intera Base Class Library di .NET. Questo può portare ad un problema nel momento in cui utilizziamo un assembly che non fa parte del Client Profile. Infatti, se proviamo ad utilizzare tale libreria in un’applicazione Client Profile, otterremo un errore, perché stiamo tentando di accedere ad oggetti che sfruttano una...

posted @ sabato 25 febbraio 2012 18:09 | Feedback (2) | Filed Under [ C# VB .NET .NET 4.0 Visual Studio 2010 ]

Jump List con Windows Forms

Ho appena pubblicato su DotNetToscana un articolo in cui presento la mia nuova libreria, Jump List Helpers, che permette di aggiungere una Jump List alle proprie applicazioni Windows Forms e, cosa più interessante, fornisce un sistema per ricevere notifiche quando si seleziona un comando. Per capire quest’ultima affermazione, è necessaria una precisazione: le voci mostrate in una Jump List possono solo avviare programmi, URL o file: non è possibile inviare comandi direttamente all'applicazione a cui la Jump List appartiene. La mia libreria supera questa limitazione: sfrutta le funzionalità del Windows API Code Pack e definisce una serie di metodi che facilitano...

posted @ domenica 19 febbraio 2012 22:46 | Feedback (0) | Filed Under [ C# Visual Studio 2010 ]

Interessante post sull’utilizzo dei Task in .NET 4.0

Girovagando su Internet, ho trovato un articolo che illustra in maniera molto semplice l'utilizzo della classe Task. Gli esempi forniti permettono di comprendere immediatamente la potenza di questo oggetto. Esso fa parte di una serie di 20 post, Parallelism in .NET, dedicati alla Task Parallel Library e a PLINQ. Caldamente consigliato a chi vuote approfondire l’argomento (quindi spero la maggior parte dei programmatori .NET…). Tag di Technorati: .NET,Programming,C#,VB .NET,Silverlight,WPF,ASP .NET

posted @ sabato 18 febbraio 2012 19:25 | Feedback (0) | Filed Under [ C# VB .NET Silverlight .NET 4.0 Visual Studio 2010 WPF ]

Controllo ortografico con WPF

Una cosa forse non molto conosciuta è che WPF supporta il controllo ortografico durante la digitazione per i controlli TextBox e RichTextBox. Per abilitarlo, è sufficiente impostare la relativa attached property SpellCheck.IsEnabled su true. Inoltre, tramite la proprietà Language, è impossibile impostare la lingua del correttore: <TextBox SpellCheck.IsEnabled="True" Language="en-US" Height="25" Width="200" /> Purtroppo, il controllo ortografico supporta solo 4 lingue: inglese, francese, tedesco e spagnolo. In pratica, esso funziona solo se la lingua del nostro sistema è una di queste. L’oggetto SpellCheck espone anche un’altra proprietà interessante, CustomDictionaries, con cui possiamo aggiungere dizionari personalizzati al correttore...

posted @ sabato 11 febbraio 2012 17:42 | Feedback (1) | Filed Under [ C# VB .NET WPF ]

Light Script Engine, una libreria per la compilazione dinamica con C#

Ho pubblicato su MSDN Code Gallery una libreria, chiama Light Script Engine, che permette di compilare dinamicamente porzioni di codice C#. Può essere utilizzata, ad esempio, per aggiungere un motore di scripting alle proprie applicazioni. Il sistema, inoltre, fornisce automaticamente un meccanismo con cui passare argomenti al codice dinamico e ricevere valori di ritorno. Il file ZIP disponibile contiene, oltre alla libreria vera e propria, anche un’applicazione WPF con alcuni pezzi di codice già impostati, grazie ai quali è possibile verificare immediatamente il funzionamento dell’engine: Su DotNetToscana è disponibile un articolo che illustra più nel dettaglio le sue caratteristiche e fornisce alcuni esempi delle sue...

posted @ giovedì 9 febbraio 2012 01:54 | Feedback (2) | Filed Under [ C# ]

Superare il limite sulla lunghezza dei file con le funzioni native di Windows

Utilizzando i metodi per la copia e lo spostamento dei file messi a disposizione dalla classe System.IO.File, se si lavora con percorsi troppo lunghi, si ottiene una PathTooLongException, secondo cui i path devono essere minori di 248 caratteri e i nomi dei file non possono avere più di 260 caratteri. Per aggirare il problema, si possono utilizzare le funzioni delle API di Windows, avendo l'accortezza di specificare il prefisso \\?\ davanti al nome del file. Nel post Getting around PathTooLongException on file move with Windows Native API di Gal Ratner è descritta una semplice classe che mostra l'utilizzo di...

posted @ domenica 5 febbraio 2012 21:40 | Feedback (0) | Filed Under [ C# ]

AutoMapper, una libreria indispensabile

AutoMapper è una libreria indispensabile in tutti quei casi in cui è necessario mappare un oggetto su un altro. Esempio tipico è quando abbiamo un oggetto che rappresenta un’entità del database e lo vogliamo utilizzare per impostare le proprietà di un nostro oggetto di business. Questa attività, estremamente noiosa e ripetitiva, grazie ad AutoMapper si realizza con una semplice riga di codice. AutoMapper è un progetto open source disponibile su GitHub. Può anche essere scaricato direttamente tramite NuGet. Su CodeProject, inoltre, si può trovare un articolo che mostra come muovere i primi passi con la libreria. Tag di Technorati: .NET,Programming,C#,VB .NET,ASP .NET,Silverlight

posted @ lunedì 23 gennaio 2012 23:12 | Feedback (14) | Filed Under [ C# VB .NET ASP .NET Silverlight .NET 4.0 Visual Studio 2010 ]

[.NET Gadgeteer] Text-To-Speech per .NET Micro Framework

Ho completato il porting della mia libreria per il Text-To-Speech sulla piattaforma .NET Micro Framework. Come sempre, l’ho pubblicata su MSDN Code Gallery, dove è possibile trovare anche gli esempi del suo semplicissimo utilizzo. La libreria è anche disponibile su NuGet. E’ sufficiente effettuare una ricerca per TranslatorService.Speech. All’interno di questo package si trovano sia la nuova versione per il .NET Micro Framework, sia quella per il “Full”. In base al tipo di progetto, Visual Studio referenzierà la libreria corretta. Tag di Technorati: .NET,Programming,C#,.NET Micro Framework,NuGet

posted @ sabato 21 gennaio 2012 22:37 | Feedback (0) | Filed Under [ C# .NET Micro Framework ]

Memory-Mapped File con C# 4.0

Una della novità di C# 4.0 è il supporto ai memory-mapped files. Le nuove classi contenute nel namespace System.IO.MemoryMappedFiles consentono di creare file mappati in memoria che possono essere letti e scritti da processi diversi. Guardiamo ad esempio una Console Application che apre un memory mapped file e scrive un messaggio al suo interno: 1: static void Main(string[] args) 2: { 3: Console.WriteLine("Scrittura di un messaggio su un memory mapped file..."); 4:  5: using (var file = MemoryMappedFile.CreateNew("share", 4096)) 6:...

posted @ mercoledì 18 gennaio 2012 00:18 | Feedback (4) | Filed Under [ C# .NET 4.0 ]

Nuova versione della mia libreria per il Text-To-Speech. Anche su NuGet

Pochi minuti fa ho caricato su MSDN Code Gallery la nuova versione della mia libreria per il Text-To-Speech basato sul servizio Microsoft Translator Service. La novità più significativa è l’aggiunta delle versioni asincrone dei metodi. Ad esempio, la controparte asincrona di GetSpeakStream è il nuovo metodo GetSpeakStreamAsync, che ritorna immediatamente e, una volta recuperato lo stream contenente il parlato, genera l’evento GetSpeakStreamCompleted. Ci sono poi i metodi Speak e SpeakAsync, che si occupano di ottenere lo stream tramite il servizio Microsoft e di riprodurlo automaticamente, semplificando quindi l’utilizzo della libreria: // Per ottenere un Application ID, visita la pagina http://msdn.microsoft.com/en-us/library/ff512420.aspx SpeechSynthesizer speech...

posted @ sabato 14 gennaio 2012 21:32 | Feedback (3) | Filed Under [ C# Updates & Service Pack .NET 4.0 ]

Inviare file ad un servizio WCF REST

Ho pubblicato su MSDN Code Gallery un servizio WCF REST che permette di inviare e scaricare file da un server remoto. L'esempio include anche una piccola applicazione WPF, senza fronzoli o pattern particolari, che mostra l'utilizzo di tale servizio da parte di un client. Attualmente, il servizio e l'applicazione sono disponibili unicamente in C#, ma a breve aggiungerò anche la versione VB .NET del codice. Tag di Technorati: .NET,Programming,C#,WCF,REST

posted @ martedì 10 gennaio 2012 23:24 | Feedback (0) | Filed Under [ C# WCF ]

Finestre WPF senza icona

Quest'oggi ho cercato di fare una cosa all'apparenza banale: creare una finestra di WPF senza l'icona sulla sinistra (ovvero lo stesso risultato che si ottiene impostando la proprietà ShowIcon di una Windows Form su false). Ebbene, NON è possibile: WPF non espone una proprietà che permette di nascondere tale icona. Per ottenere il risultato voluto, l'unica soluzione è ricorrere alle funzioni dell'API di Windows, come descritto nel post A WPF Window Without a Window Icon (the thing you click to get the system menu). In sintesi, si deve eseguire l'override del metodo OnSourceInitialized ed utilizzare il Platform Invoke...

posted @ sabato 7 gennaio 2012 15:23 | Feedback (1) | Filed Under [ C# WPF ]

Convertire un orario da UTC a ora locale

Quest'oggi avevo la necessità di convertire un orario in formato UTC, prelevato da un database, nell'orario locale. Il tipo DateTime mette a disposizione un metodo, ToLocalTime, che sembra perfetto per questo scopo. Tuttavia, il suo utilizzo "diretto" non porta il risultato sperato. Il motivo è semplice: se leggo un campo datetime da un database e lo salvo in una variabile DateTime, .NET suppone che tale orario sia espresso nel formato locale, quindi se su tale variabile invoco il metodo ToLocalTime, ottengo di nuovo l'orario originale. Per ottenere il risultato voluto, è necessario utilizzare un'istruzione come la seguente: ...

posted @ martedì 3 gennaio 2012 21:38 | Feedback (1) | Filed Under [ C# VB .NET ASP .NET SQL Server ]

Text-To-Speech con il Microsoft Translator Service

Ho pubblicato su MSDN Code Gallery un esempio che sfrutta le API messe a disposizione dal Microsoft Translator Service per ottenere lo stream audio contenente la lettura del testo specificato. Tag di Technorati: .NET,Programming,C#,MSDN

posted @ venerdì 30 dicembre 2011 20:12 | Feedback (0) | Filed Under [ C# ]

Servizi REST e risposte in formato JSON

Utilizzando il WCF Rest Template 40, è molto semplice creare un servizio WCF REST in C#: esso, infatti, definisce una serie di metodi di esempio ed inserisce nel file web.config tutte le configurazioni necessarie per questo tipo di servizio. Di default, i messaggi di risposta sono serializzati in formato XML. Il custom attribute WebInvoke permette però di indicare il formato desiderato: i valori possibili sono Xml o Json. Tuttavia, anche se si indica quest'ultimo, la risposta viene sempre ottenuta in XML. Per avere il Json, si deve modificare il file web.config. In particolare, nella riga <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>   Si deve modificare...

posted @ martedì 27 dicembre 2011 14:29 | Feedback (3) | Filed Under [ C# ASP .NET .NET 4.0 Visual Studio 2010 ]

Aggiornamento a .NET Framework 4.0.2

Questa me l’ero proprio persa... Un paio di mesi fa è stato rilasciato l’aggiornamento 4.0.2 del .NET Framework. Si tratta di un update per Visual Studio 2010 SP1 che aggiunge il supporto alle funzionalità AlwaysOn e LocalDB introdotte con SQL Server “Denali”. Esso, inoltre, comprende anche tutte le novità introdotte con la versione 4.0.1, rilasciata lo scorso aprile (StateMachine per Windows Workflow Foundation, comprendente l’aggiunta di un designer, supporto a SqlWorkflowInstanceStore  per SQL Azure, Compensation Extension per WF4) . Da notare che la nuova versione del Framework verrà aggiunta a quelle disponibili nella lista Target framework di Visual Studio. Sarà possibile...

posted @ venerdì 23 dicembre 2011 02:30 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack SQL Server .NET 4.0 Visual Studio 2010 ]

ObservableDictionary per WPF

Sul blog Shimmy on .NET è disponibile l’implementazione di un ObservableDictionary per WPF. Tag di Technorati: .NET,Programming,C#,WPF

posted @ lunedì 21 novembre 2011 20:14 | Feedback (4) | Filed Under [ C# WPF ]

[.NET Gadgeteer] Nuovo progetto su CodePlex

Facendo esperimenti con .NET Gadgeteer, come succede sempre in questi casi ho iniziato a sviluppare una piccola libreria con tutto quello che mi serve (sincronizzazione dell’orologio, invio di mail, lettura/scrittura di file, extension methods vari, oggetti grafici, ecc.). Così mi sono detto: perché non rendere disponibile tale libreria per tutti? Ecco quindi che è nato il progetto .NET Gadgeteer Toolkit. L’ho creato proprio stasera su CodePlex; nei prossimi giorni inizierò a caricare le prime classi della libreria. La licenza è la Apache 2.0, la stessa del progetto Microsoft .NET Gadgeteer, anch’esso pubblicato su CodePlex. Tag di Technorati: .NET,.NET Micro...

posted @ sabato 12 novembre 2011 21:57 | Feedback (1) | Filed Under [ C# .NET Micro Framework CodePlex ]

[.NET Gadgeteer] Creare interfacce grafiche

L’oggetto Display del .NET Gadgeteer SDK è un display touch screen incredibilmente facile da utilizzare. Infatti, oltre alle classiche funzioni “primitive” per disegnare immagini, forme geometriche e testo, espone un oggetto, chiamato WPFWindow, grazie al quale è possibile creare oggetti con una filosofia simile a quella che si avrebbe con WPF (ovvero utilizzando contenitori e controlli). Ovviamente, il numero di oggetti disponibili è limitato, ma sono presenti classi come Canvas, Text, Image e ListBox, che possono essere utilizzate per creare oggetti più complessi. Il seguente esempio è tratto dal forum di TinyCLR: ...

posted @ venerdì 11 novembre 2011 22:16 | Feedback (3) | Filed Under [ C# .NET Micro Framework ]

[.NET Gadgeteer] Un blog molto interessante

Ho appena trovato una risorsa molto interessante per approfondire lo studio del .NET Gadgeteer: Integral Design, un blog, gestito da Michael Dodaro, la cui sezione Embedded Microcontrollers contiene diversi esempi di programmazione della scheda. Inoltre, c’è anche un articolo che spiega come creare un modulo software per gestire un Light Sensor di terze parti che può essere collegato alla board attraverso l’Extender Module di GHI Electronics. Tag di Technorati: .NET,Programming,.NET Micro Framework,C#

posted @ mercoledì 9 novembre 2011 02:14 | Feedback (5) | Filed Under [ C# .NET Micro Framework CodePlex ]

[70-515] Errore grosso come una casa

Come ben sa chiunque abbia letto anche solo uno dei libri di certificazione Microsoft, i testi sono pieni di errori… Alcuni sono sviste, mentre altri sono molto gravi, come quello che ho appena riscontrato nel capitolo dedicato alla creazione di Custom Web Control. In esso, si parla dei metodi RenderBegin e RenderEndTag, per creare il codice HTML corrispondente rispettivamente al tag di apertura e a quello di chiusura del controllo. Nel libro si legge che: Note that the RenderEndTag is not required, because it is automatically called and will render an end tag based on...

posted @ domenica 6 novembre 2011 14:47 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET ]

.NET Gadgeteer, I'm lovin' it

Microsoft .NET Gadgeteer is an open-source toolkit for building small electronic devices using the .NET Micro Framework and Visual Studio/Visual C# Express. Sviluppato da Microsoft Research, .NET Gadgeteer è una piattaforma open source, il cui codice sorgente, disponibile su CodePlex, è regolato dalla licenza Apache 2, mentre le specifiche tecniche e il design rispondono alla Creative Commons. Il toolkit permette agli utenti di realizzare piccoli dispositivi elettronici e prototipi usando hardware modulare, scrivendo codice con il .NET Framework e Visual Studio/Visual C# Express. GHI Electronics mette a disposizione il FEZ Spider Starter...

posted @ lunedì 24 ottobre 2011 12:52 | Feedback (9) | Filed Under [ C# .NET Micro Framework ]

[70-511] Una piccola nota sul Drag and Drop del contenuto di TextBox in WPF

Il Self-Paced Training Kit per l’esame 70-511, Windows Applications Development with Microsoft .NET Framework 4, dedica una lezione al Drag and Drop, sia nelle applicazioni Windows Forms, sia in WPF. In entrambi i casi, si prende come esempio il Drag and Drop tra due controlli TextBox: nessun problema per le Windows Forms, dove tutto funziona come previsto; qualche inghippo, invece, si ha con WPF… In pratica, tutto il codice illustrato non funziona, perché WPF gestisce automaticamente il drag and drop tra due caselle di testo! Così, ad esempio, se proviamo a richiamare il metodo DragDrop.DoDragDrop nell’evento TextBox.PreviewMouseLeftButtonDown, il testo contenuto...

posted @ venerdì 10 giugno 2011 00:08 | Feedback (5) | Filed Under [ C# VB .NET Certificazioni .NET 4.0 Visual Studio 2010 WPF ]

Extension methods per caricare le risorse in un progetto WPF

Ecco una serie di extension methods per la classe Application di WPF con cui è possibile caricare risorse contenute all'interno del progetto o in un assembly separato: 1: public static class Shell 2: { 3: public static BitmapImage GetImage(this Application application, string file) 4: { 5: var...

posted @ venerdì 22 aprile 2011 11:07 | Feedback (13) | Filed Under [ C# Visual Studio 2010 WPF ]

DotNetToscana risorge!

Ultimamente, non ci siamo quasi più fatti sentire, quindi immagino che molti di voi abbiamo pensato che DotNetToscana fosse morta. E invece, come l’araba fenice, siamo tornati! Dopo una serie di incontri, virtuali e non, abbiamo pubblicato un nuovo sito web, molto più snello e veloce del precedente. Ma, soprattutto, abbiamo deciso di partire alla grande organizzando un Hands On Lab sullo sviluppo di videogiochi per Windows Phone 7 con XNA. L’evento si svolgerà il 14 Maggio a Pisa e avrà durata giornaliera. E’ già tutto pronto: sul nostro sito potete leggere di cosa si tratta e registrarvi immediatamente...

posted @ venerdì 15 aprile 2011 00:38 | Feedback (4) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) Windows Related .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Team Foundation Server Windows Home Server CodePlex Updates & Service Pack Silverlight Certificazioni Windows Mobile SQL Server LINQ Programmi .NET 4.0 Visual Studio 2010 AJAX Dynamic Data ]

Visualizzare Header e Footer di una GridView che non contiene dati

Come tutti sanno, quando un oggetto GridView non contiene dati, viene renderizzato il contenuto delle sue proprietà EmptyDataTemplate e/o EmpyDataText. In questo caso, tuttavia, l’header e il footer della griglia non sono mostrati.  Questa mattina avevo però la necessità di mostrare tali oggetti in ogni caso; dopo una ricerca con il solito Google, sono giunto su questo post, che mostra come creare un controllo GridView con due nuove proprietà,  ShowFooterWhenEmpty e ShowHeaderWhenEmpty, che erano proprio ciò che stavo cercando. Tag di Technorati: Visual Studio,.NET,Programming,C#,ASP .NET

posted @ giovedì 14 ottobre 2010 14:24 | Feedback (8) | Filed Under [ C# ASP .NET ]

Sondaggio DotNetToscana

DotNetToscana non è mai decollata come avremmo voluto. Comunque noi non ci arrendiamo e ce la metteremo tutta per cambiare rotta ed imboccare quella giusta. Vogliamo approfittare di questa pausa estiva per riflettere sulle difficoltà ed i problemi che abbiamo incontrato più volte in questi anni e risolverli. Però per farlo al meglio abbiamo bisogno anche di sentire la vostra voce, per questo abbiamo creato un piccolo sondaggio grazie a cui potrte farci sapere le vostre opinioni, i vostri consigli e suggerimenti. L’obiettivo finale è quello di far “rinascere” DotNetToscana. Clicca qui per rispondere al sondaggio Technorati Tag:...

posted @ mercoledì 28 luglio 2010 15:25 | Feedback (13) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) Windows Related .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Team Foundation Server Windows Home Server CodePlex Updates & Service Pack Silverlight Certificazioni Windows Mobile SQL Server LINQ Programmi .NET 4.0 Visual Studio 2010 AJAX Dynamic Data Community ]

Analogo di HttpContext per il mondo WCF

Chiunque programmi in ASP .NET conosce bene l’oggetto HttpContext, che consente di recuperare informazioni sul contesto HTTP della richiesta corrente; in particolare, la sua proprietà statica Current permette di ottenere, da qualunque punto del codice, il contesto corrente. Un suo tipico utilizzo consiste nell’inserire, all’interno della collezione Items, tutti gli oggetti che devono vivere per tutta la durata della richiesta HTTP. WCF non offre “direttamente” un oggetto di questo tipo. Esso, però, mette a disposizione la proprietà OperationContext.Current.Extensions, grazie a cui possiamo aggiungere vere e proprie “estensioni” da associare al contesto della richiesta. In questo modo, possiamo facilmente creare...

posted @ lunedì 26 luglio 2010 13:10 | Feedback (8) | Filed Under [ C# VB .NET ASP .NET ]

NullReferenceException invocando un metodo WCF con parametro un oggetto che contiene una proprietà List<T>

Perdonate la lunghezza del titolo, ma non sapevo come riassumere la situazione… In pratica, la situazione è questa: ho un metodo (chiamiamolo A) che restituisce una classe al cui interno è contenuta una proprietà di tipo List<T>; ho poi un altro metodo (B) che prende in ingresso un oggetto dello stesso tipo (per effettuare degli aggiornamenti, ma questa è un’altra storia). Il metodo A funziona senza problemi; al contrario, invocando il metodo B, ancor prima di entrare nel codice del servizio WCF, si ottiene una eccezione di tipo NullReferenceException. L’origine del problema è semplice: la proprietà di tipo List<T>...

posted @ martedì 22 giugno 2010 00:20 | Feedback (5) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Recensione di Crypto Obfuscator

Nella nuova sezione Recensioni di DotNetToscana è disponibile un articolo relativo a Crypto Obfuscator for .Net 2010, un programma per la protezione del codice sorgente .NET tramite “offuscamento”. Lo potete leggere sia in italiano sia in inglese. Technorati Tag: .NET,Programming,Visual Studio,Tools

posted @ venerdì 26 marzo 2010 14:46 | Feedback (7) | Filed Under [ C# VB .NET ASP .NET Orcas & .NET 3.5 Silverlight Programmi Visual Studio 2010 ]

Recuperare l’icona associata ad un file eseguibile

Il .NET Framework fornisce un semplicissimo metodo per recuperare l’icona associata ad un file eseguibile, System.Drawing.Icon.ExtractAssociatedIcon. E’ possibile utilizzarlo, ad esempio, per impostare automaticamente l’icona della form principale della nostra applicazione sull’immagine specificata nelle proprietà del progetto: Me.Icon = Drawing.Icon.ExtractAssociatedIcon(Application.ExecutablePath) Semplice e veloce :-) Technorati Tag: .NET,Programming,Visual Studio,C#,VB .NET

posted @ giovedì 4 febbraio 2010 12:53 | Feedback (5) | Filed Under [ C# VB .NET ]

Disponibile il materiale del Community Tour di DotNetToscana

E’ finalmente disponibile online il materiale presentato durante il Community Tour di DotNetToscana svoltosi lo scorso 12 Gennaio. Chi è interessato può accedere all’archivio contenente le slide e gli esempi visitando la sezione Files del nostro sito. Technorati Tag: Community,C#,ASP .NET,Programs,Silverlight,Tools

posted @ domenica 17 gennaio 2010 23:41 | Feedback (6) | Filed Under [ C# ASP .NET Silverlight Programmi AJAX ]

Inserire codice XML nella documentazione XML di Visual Studio

Il titolo forse sembra un gioco di parole… In pratica, il problema è inserire una sezione di codice XML all’interno dei commenti di documentazione delle classi di .NET, che anch’essa è scritta in XML. In questo caso, il tag da utilizzare è <code lang="xml"> Tuttavia, se al suo interno si scrive direttamente il codice XML, una volta generata la documentazione, ad esempio con Sandcastle Help File Builder, il frammento di XML apparirà senza indentazione e “schiacciato” su una sola riga. Per mantenere la formattazione originale, è necessario racchiudere l’XML che si vuole mostrare in un tag di...

posted @ venerdì 15 gennaio 2010 11:12 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 .NET 4.0 Visual Studio 2010 AJAX ]

Aperte le iscrizioni al Community Tour di DotNetToscana

Sono finalmente aperte le iscrizioni al Community Tour di DotNetToscana. Chi si era precedentemente registrato, dovrebbe aver già ricevuto via mail il link alla nuova pagina di registrazione; chi non lo avesse ricevuto, oppure non si era ancora segnato all’evento, può farlo utilizzando l’apposito form disponibile su WWEvents. Technorati Tag: Community,Microsoft,.NET,Visual Studio

posted @ lunedì 14 dicembre 2009 21:30 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Orcas & .NET 3.5 ]

Microsoft Community Tour rinviato a Gennaio

A causa di problema organizzativi, Microsoft, in accordo con DotNetToscana, ha deciso di rinviare la tappa del Community Tour prevista per il 9 Dicembre a Navacchio (PI). L'evento dovrebbe essere riproposto nei giorni 11 oppure 12 Gennaio, ma naturalmente comunicherò tempestivamente ogni aggiornamento. Mi dispiace molto per questo spostamento, sono sicuro che la prossima volta andrà tutto alla grande! Technorati Tag: .NET,Community,Microsoft

posted @ lunedì 30 novembre 2009 17:12 | Feedback (1) | Filed Under [ C# VB .NET ASP .NET Silverlight ]

Gestione dei pulsanti Avanti e Indietro del browser con AJAX

Uno dei problemi che si hanno con AJAX riguarda la gestione dei pulsanti Avanti e Indietro del browser. Se, ad esempio, si inserisce un controllo Wizard all’interno di un UpdatePanel, è possibile spostarsi tra i passaggi della procedura senza effettuare postback sincroni della pagina. Tuttavia, la pressione del pulsante Indietro nel browser non causa il ritorno allo step precedente, bensì il caricamento della pagina mostrata prima di quella contenente il Wizard: in altre parole, le interazioni basate su AJAX non determinano l’aggiornamento della cronologia del browser. L’oggetto ScriptManager della versione 3.5 SP1 del .NET Framework introduce proprio il supporto...

posted @ venerdì 27 novembre 2009 23:03 | Feedback (9) | Filed Under [ C# ASP .NET Orcas & .NET 3.5 AJAX ]

Krypton Toolkit 4.1

Il Krypton Toolkit è più che mai un progetto attivo: la nuova versione 4.1, rilasciata da poco, fornisce il supporto alle palette e agli stili del Ribbon di Office 2010.  Il download è disponibile qui. Technorati Tag: .NET,Programming,Tools,C#,VB .NET

posted @ giovedì 19 novembre 2009 18:29 | Feedback (3) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 .NET 4.0 ]

Sviluppare applicazioni per Linux con Visual Studio

La notizia è senz'altro interessante: Novell ha rilasciato un plug- in per Visual Studio con cui è possibile realizzare applicazioni per Linux lavorando però in ambiente Windows. Purtroppo, si tratta di un add-in a pagamento. Rimando alla fonte per maggiori dettagli. Technorati Tag: Visual Studio,.NET,Programming,Windows

posted @ mercoledì 11 novembre 2009 15:38 | Feedback (1) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 .NET 4.0 Visual Studio 2010 ]

Microsoft Community Tour in Toscana

Il 9 Dicembre si svolgerà la tappa toscana del Microsoft Community Tour 2009. Nel corso dell'evento parleremo di .NET RIA Services, Silverlight, Internet Explorer 8 e ASP .NET MVC. Potete trovare l'agenda completa sul nostro sito, nella sezione Eventi. La registrazione sarà disponibile a partire da Mercoledì 28 Ottobre. Vi aspetto numerosi Technorati Tag: .NET,Programming,C#,VB .NET,AJAX,Programs,Microsoft,Community,Silverlight,ASP .NET

posted @ martedì 20 ottobre 2009 11:07 | Feedback (2) | Filed Under [ C# VB .NET ASP .NET Orcas & .NET 3.5 Silverlight Programmi AJAX ]

MemoryMappedFile in .NET 4.0

Su MSDN Magazine di Settembre 2009 è stato pubblicato un articolo in cui si parla di alcune delle nuove classi disponibili nella versione 4.0 del .NET Framework. Tra le altre, mi sembra molto interessante la classe MemoryMappedFile. Come il nome lascia intuire, si tratta di un oggetto mediante il quale è possibile gestire file mappati in memoria, con la possibilità di condividerli tra due o più processi. Sarà possibile, ad esempio, avere qualcosa di questo tipo: 1: using (varmmf = MemoryMappedFile.CreateNew("mymappedfile", 1000)) ...

posted @ lunedì 19 ottobre 2009 13:33 | Feedback (0) | Filed Under [ C# .NET 4.0 ]

Nuova sezione Tips & Tricks su DotNetToscana

La nostra Community cresce… Da pochi minuti il sito DotNetToscana si è arricchito di una nuova sezione, Tips & Tricks, in cui raccoglieremo trucchi e suggerimenti per risolvere i tipici problemi che si devono affrontare nel mondo della programmazione .NET. Technorati Tag: .NET,Programming,Visual Studio,C#,Visual Basic .NET,ASP .NET,LINQ,AJAX,Silverlight

posted @ lunedì 21 settembre 2009 01:06 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight SQL Server LINQ .NET 4.0 Visual Studio 2010 AJAX Dynamic Data ]

STM.NET

Software Transactional Memory (STM.NET) is a mechanism for efficient isolation of shared state.  The programmer demarcates a region of code as operating within a transaction that is “atomic” and “isolated” from other transacted code running concurrently. Si tratta di un progetto disponibile tra i DevLabs di Microsoft. Il download comprende anche un package per l'integrazione con Visual Studio 2008. Technorati Tag: .NET,Programming,Tools

posted @ martedì 1 settembre 2009 10:18 | Feedback (1) | Filed Under [ C# Orcas & .NET 3.5 ]

BlogEngine .NET

BlogEngine .NET è un motore di blogging realizzato in .NET. L'ultima versione rilasciata, la 1.5, è scaricabile da CodePlex (quindi insieme al codice sorgente, scritto in C#). Avevo seguito un po' la nascita di questo strumento, ma poi lo avevo perso di vista: recentemente ho avuto l'occasione di riprenderlo in mano: supporta tutte le funzionalità tipiche di un blog engine (feed rss, motore di ricerca interno, tags con tag cloud, categorie, blog roll, temi grafici) e può essere configurato per salvare i post all'interno di file XML o in un database (sono supportati SQL Server, MySQL, SQLite e VistaDB). Inoltre,...

posted @ venerdì 31 luglio 2009 17:20 | Feedback (2) | Filed Under [ C# ASP .NET Tutto & Oltre :-) ]

Aggiornamento per il progetto Windows Forms Aero

Windows Forms Aero è un progetto che ho pubblicato su CodePlex ormai più di 2 anni fa. Pochi giorni fa, grazie al contributo di Blake B. Pell, che si è recentemente aggiunto al team degli sviluppatori, è stata rilasciata la versione 1.4.1 della libreria, in cui si segnala la presenza di tre nuovi controlli: VerticalPanel HorizontalPanel LabelDivider Se vi capita di scaricare questa libreria, mi piacerebbe sapere cosa ne pensate. Technorati Tags: .NET, Programming, C#, VB .NET, Visual Studio

posted @ mercoledì 29 luglio 2009 20:03 | Feedback (0) | Filed Under [ C# VB .NET ]

Il nuovo tipo di dato Tuple in .NET 4.0

La versione 4.0 del .NET Framework includerà un nuovo tipo dato, chiamato Tuple, con cui sarà possibile definire una collezione di elementi, fortemente tipizzata. Su MSDN Magazine di Luglio 2009 è disponibile un articolo che ne illustra il funzionamento: 1: class Program { 2: static void Main(string[] args) { 3: Tuple<string, int> t = new Tuple<string, int>("Hello", 4); ...

posted @ domenica 26 luglio 2009 19:18 | Feedback (5) | Filed Under [ C# VB .NET .NET 4.0 ]

Guida introduttiva alla programmazione orientata agli oggetti in C#

Cercando qualche informazione relativamente al caricamento dinamico dei tipi via reflection (soprattutto in merito alle performance), sono capitato sul sito JAL Computing, in cui è disponibile una sezione intitolata A Twisted Look at Object Oriented Programming in C#. Ci ho dato un rapido sguardo: è una guida introduttiva, ma mi sembra ben fatta, sicuramente sufficiente per iniziare a prendere dimestichezza con questi concetti. Un valore aggiunto è la disponibilità di una gran quantità di codice sorgente, spesso anche scaricabile in formato ZIP. Technorati Tag: .NET,Programming,C#

posted @ mercoledì 22 luglio 2009 15:32 | Feedback (1) | Filed Under [ C# ]

Internet Explorer 8 su ioProgrammo

Sul numero di Agosto di ioProgrammo è stato pubblicato un mio articolo sulle novità di Internet Explorer 8 per gli sviluppatori, in cui parlo di AJAX Navigation, Web Slice, DOM Storage, la nuova Developer Toolbar, ecc. Personalmente, le novità che più mi piacciono sono AJAX Navigation, di cui mostro un possibile utilizzo in ASP .NET, e il DOM Storage, introdotto per superare il limite di 4 KB per la dimensione dei cookie. Technorati Tag: .NET,Programming,ASP .NET,Web,Programs

posted @ lunedì 20 luglio 2009 10:49 | Feedback (0) | Filed Under [ C# ASP .NET Programmi ]

web.config, mailSettings e SSL

Questa sera stavo modificando le impostazioni della sezione mailSettings nel file web.config di una Web Application. Volevo configurarla per utilizzare il server SMTP di Gmail per l'invio di mail tramite l'oggetto SmtpClient. Come credo sappiano tutti, Gmail richiede l'utilizzo di SSL per l'invio della posta. Il problema è che la sezione mailSettings del file web.config non permette di indicare questo tipo di connessione. Da una rapida ricerca su Internet, sembra che diverse persone abbiano segnalato questa mancanza. Personalmente, ho risolto aggiungendo una proprietà EnableSsl nella sezione appSettings, che poi utilizzo in questo modo: SmtpClient client...

posted @ giovedì 16 luglio 2009 23:01 | Feedback (0) | Filed Under [ C# ASP .NET ]

Filtri sulle pagine Dynamic Data

Per impostazione predefinita, un sito Dynamic Data mostra tutte le informazioni contenute nelle tabelle. Tipicamente, però, si ha la necessità di filtrare i dati sulla base di diverse condizioni (ad esempio, i diritti dell'utente). Questo post del grande Andrea Boschin spiega con semplicità come è possibile ottenere tale risultato. Technorati Tag: .NET,Programming,ASP .NET,Dynamic Data,LINQ,C#

posted @ martedì 14 luglio 2009 12:21 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ASP .NET Orcas & .NET 3.5 LINQ Dynamic Data ]

June 2009 Release di WPF Toolkit

E' stata rilasciata ieri l'edizione di Giugno 2009 del WPF Toolkit, disponibile su CodePlex.  Tra le novità, si segnalano in particolare i tanto richiesti Chart Controls, per inserire con facilità grafici e diagrammi nelle proprie applicazioni. Technorati Tag: .NET,Programming,Tools,C#,VB .NET

posted @ venerdì 26 giugno 2009 17:41 | Feedback (20) | Filed Under [ C# VB .NET Orcas & .NET 3.5 Updates & Service Pack ]

AnkhSvn con supporto a Subversion 1.6.x

AnkhSvn è un Source Control Provider per Visual Studio 2005/2008/2010 per l'utilizzo di Subversion. L'ultima versione disponibile, la 2.1.6941, aggiunge il supporto a Subversion versione 1.6.x, permettendo quindi di avere un controllo del codice sorgente completamente integrato nell'ambiente di sviluppo (la release precedente di AnkhSvn, la 2.0, poteva essere utilizzata solo con Subversion 1.5.x). Technorati Tag: .NET,Programming,Tools

posted @ mercoledì 24 giugno 2009 17:13 | Feedback (0) | Filed Under [ C# VB .NET Tutto & Oltre :-) Orcas & .NET 3.5 Visual Studio 2010 ]

Microsoft Cloud Computing Tools

Da qualche tempo è disponibile su MSDN una sezione dedicata a Windows Azure e alla piattaforma per il Cloud Computing di Microsoft: un buon punto di raccolta di tutto il materiale ufficiale attualmente disponibile, per un sistema che mi ispira sempre di più ogni volta che ne sento parlare… Technorati Tag: .NET,Programming,Tools

posted @ mercoledì 24 giugno 2009 10:47 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 Visual Studio 2010 ]

Windows API Code Pack for Microsoft .NET Framework

Su MSDN Flash che ho appena ricevuto leggo di un progetto molto interessate, Windows API Code Pack for Microsoft .NET Framework: The Windows® API Code Pack for Microsoft® .NET Framework provides a source code library that can be used to access some new Windows 7 features (and some existing features of older versions of Windows operating system) from managed code. These Windows features are not available to developers today in the .NET Framework. La lista delle funzionalità supportate è molto interessante: Windows 7 Taskbar Jump Lists, Icon Overlay, Progress Bar, Tabbed Thumbnails,...

posted @ martedì 23 giugno 2009 12:04 | Feedback (1) | Filed Under [ C# VB .NET Windows Related ]

Aggiornamento per gli stili utilizzati da Sandcastle

Ultimamente sto utilizzando con una certa frequenza l'accoppiata Sandcastle e Sandcastle Help File Builder per creare la documentazione tecnica delle librerie che sviluppo. Ho così notato che gli stili predefiniti inclusi nella distribuzione di Sandcastle non risultano completi (ad esempio, non contengono tutte le trasformazioni per il tag <note>). Su CodePlex è però disponibile un progetto, Sandcastle Styles, che contiene una serie di fix per gli stili di Sandcastle. L'ultima versione è disponibile qui. Technorati Tags: .NET, Programming, Tools

posted @ lunedì 22 giugno 2009 02:00 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Programmi .NET 4.0 Visual Studio 2010 ]

Tracing di servizi WCF

Quando si sviluppano o si utilizzano servizi realizzati con Windows Communication Foundation, l'individuazione degli errori può essere problematica, poiché, spesso, se qualcosa non funziona si ottiene semplicemente una eccezione di tipo CommunicationObjectFaultedException, la cui descrizione contiene Il generico messaggio The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state. In situazioni di questo tipo, è molto utile attivare il tracing del servizio WCF, in modo da ottenere una registrazione completa di tutto quello che succede, con l'indicazione precisa dell'errore che si è verificato. Le impostazioni consigliate per abilitare...

posted @ domenica 21 giugno 2009 12:58 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET .NET 3.0 Orcas & .NET 3.5 .NET 4.0 ]

Generare file XML a partire da uno schema XSD

Visual Studio fornisce un metodo molto semplice per "inferire" lo schema XSD di un file XML: basta aggiungere un Item al progetto e selezionare XML To Schema  per avviare un'apposita procedura guidata. In alcuni casi, però, potrebbe essere necessario fare anche il viceversa, ovvero costruire automaticamente un file XML che rispetti i vincoli definiti nel relativo XSD: può essere utile, ad esempio, quando si vogliono creare file XML di prova, conformi ad un certo formato, per eseguire una serie di test. In questo caso non ci sono strumenti già "confezionati". Su MSDN, però, è presente un articolo molto interessante, Generating...

posted @ giovedì 18 giugno 2009 13:28 | Feedback (1) | Filed Under [ C# VB .NET ]

Xml Documentation for Dummies

Cercando su MSDN, ho notato che le informazioni sulla documentazione XML (tag supportati, significato dei vari parametri, ecc.) sono sparse in varie pagine, ovvero manca un punto centrale che raccolga tutte le risorse. Come sempre, però, Google mi è venuto in aiuto, trovando il documento XML Documentation Comments Guide: si tratta di una guida disponibile in vari formati (tra cui un PDF di circa 70 pagine) che illustra tutti i tag supportati, con chiari esempi di utilizzo. Technorati Tag: .NET,Programming,C#,VB .NET

posted @ lunedì 15 giugno 2009 16:38 | Feedback (2) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 .NET 4.0 ]

Nuova versione di GhostDoc

Da un paio di settimane è stata rilasciata la nuova versione di GhostDoc, un add-in per Visual Studio in grado di aiutare nella scrittura di commenti XML relativi a metodi, proprietà ed eventi delle nostre classi .NET. Personalmente lo ritengo un tool indispensabile se si utilizza Sandcastle per generare la documentazione delle proprie librerie. Le novità di questa versione comprendono il supporto ufficiale a VB .NET (prima era considerato solo "sperimentale") e la compatibilità con Visual Studio 2010 Beta 1. Technorati Tag: .NET,Programming,Visual Studio,Tools

posted @ venerdì 12 giugno 2009 15:28 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Programmi .NET 4.0 Visual Studio 2010 ]

Internal Coding Guidelines per il codice .NET

Cercando qualche informazione in merito all'utilizzo dei certificati X509 in .NET, sono capitato in questo blog, che contiene una nutrita serie di articoli molto interessanti, relativi alle linee guida per lo scrittura di codice .NET riutilizzabile (ad esempio, non usare la notazione ungherese, utilizzare il camelCase per i nomi di variabili private e parametri, ecc.). Si tratta soprattutto di post che fanno riferimento al libro Framework Design Guidelines. Molto interessante. Technorati Tag: .NET,Programming,ASP .NET,C#,VB .NET

posted @ mercoledì 3 giugno 2009 15:15 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 LINQ .NET 4.0 ]

Windows User Experience Interaction Guidelines aggiornata

Windows User Experience Interaction Guidelines è la raccolta delle linee guida di Microsoft per lo sviluppo di applicazioni client conformi gli standard grafici di Windows. Recentemente, tale guida è stata aggiornata con le linee guida per Windows 7, quindi ad esempio contiene informazioni per la gestione di applicazioni "touch" e nuove regole per Windows Desktop Gadget. L'indirizzo da cui partire per la consultazione è questo, ma l'intera guida è anche disponibile in un corposo file PDF di 39 MB. Technorati Tag: Windows,Programming

posted @ mercoledì 27 maggio 2009 13:01 | Feedback (0) | Filed Under [ C# VB .NET Windows Related .NET 4.0 ]

Creare applicazioni WPF con Visual Studio 2010

A questo indirizzo è disponibile un tutorial che spiega passo-passo, con il supporto di screenshot, come realizzare da 0 un'applicazione WPF con Visual Studio 2010. Credo sia interessante per chi, come me (ebbene sì, lo confesso…), non si è ancora avvicinato a WPF. Technorati Tag: .NET,Visual Studio,C#

posted @ venerdì 22 maggio 2009 13:48 | Feedback (3) | Filed Under [ C# .NET 4.0 ]

Visual Studio 2010 Training Kit

MSDN Italia ci informa della disponibilità del Training Kit per la versione Beta 1 di Visual Studio 2010 e del Framework .NET 4.0, contenente materiale relativo a: C# 4.0 Visual Basic 10 F# Parallel Extensions Windows Communication Foundation Windows Workflow Windows Presentation Foundation ASP.NET 4 Entity Framework ADO.NET Data Services Managed Extensibility Framework ...

posted @ mercoledì 20 maggio 2009 19:08 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET LINQ .NET 4.0 Visual Studio 2010 Dynamic Data ]

Cancellazione di file lenta con Visual Studio

Se la cancellazione di file dal Solution Explorer di Visual Studio impiega diversi secondi, arrivando a bloccare l'intero ambiente di sviluppo, il problema è dovuto all'elevato numero di file presenti nel Cestino: basta svuotarlo per ottenere il comportamento normale (ovvero cancellazioni quasi istantanee). Technorati Tags: Visual Studio

posted @ martedì 12 maggio 2009 19:44 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Programmi ]

Problemi con il controllo TreeView

Ho notato un comportamento strano con il controllo TreeView delle Windows Forms di .NET 3.5 SP1. Se, in fase di progettazione, imposto il carattere normale per i nodi, e a tempo di esecuzione aggiungo nuovi TreeNode con il font grassetto, le relative etichette appaiono "tagliate", come se il testo uscisse dal rettangolo che dovrebbe contenerlo. Ho provato a fare qualche ricerca su Internet, ma a quanto pare l'unico modo per risolvere il problema (tralasciando le tecniche di subclassing del controllo) consiste nell'impostare il carattere bold per tutto il TreeView, quindi ridefinire il font dei nodi che devono apparire con testo...

posted @ venerdì 24 aprile 2009 17:52 | Feedback (3) | Filed Under [ C# VB .NET ]

Creare una sezione personalizzata nel file di configurazione dell'applicazione

Oggi avevo la necessità di creare una sezione personalizzata nel file app.config di un'applicazione Windows Forms. Si tratta della classica attività che, sulla carta, conoscevo bene, ma che non avevo mai realizzato in pratica. Per raggiungere il mio obiettivo, mi è stato molto utile questo post, che fornisce un esempio semplice e quindi facilmente comprensibile. Technorati Tag: .NET,Programming,C#

posted @ giovedì 23 aprile 2009 19:13 | Feedback (1) | Filed Under [ C# ]

In VB .NET c'è TryCast…

Questa mattina stavo cercando, in VB .NET, di convertire un tipo generico in un array di byte, cosa che in C# si fa semplicemente con la parola chiave as. Ho provato dapprima con DirectCast, quindi con CType, ma in entrambi i casi ottenevo un errore in compilazione. Alla fine ho scoperto che l'istruzione da utilizzare si chiama TryCast… Ci saranno sicuramente dei motivi validi per cui VB .NET ha tutti questi operatori diversi, fatto sta che la cosa mi ha fatto perdere del tempo… Technorati Tag: .NET,Programming,VB .NET,C#

posted @ lunedì 20 aprile 2009 13:17 | Feedback (3) | Filed Under [ C# VB .NET ]

Pipeline Builder

Qualche giorno fa ho parlato del supporto agli add-in fornito da .NET 3.5. In tale occasione, avevo accennato ad un tool, chiamato Pipeline Builder, che permette di semplificare le definizione di questa architettura, poiché è in grado di creare automaticamente tutte le class library di supporto. Si tratta di un add-in per Visual Studio 2008. Dopo l'installazione, è necessario registrarlo nel sistema seguendo le istruzioni riportate in questa pagina. Uno degli aspetti più interessanti del Pipeline Builder è che esso permette di definire anche eventi sull'interfaccia dell'add-in, cosa che, come sa chi ha provato il namespace System.AddIn, non è supportata...

posted @ giovedì 16 aprile 2009 10:39 | Feedback (1) | Filed Under [ C# VB .NET ]

Krypton Suite 3.5.2

This maintenance release fixes various issues but mainly bugs in the new KryptonDateTimePicker and KryptonMonthCalender controls. Also includes an important fix with the KryptonTextBox that was displaying the password text when in disabled mode. Maggiori informazioni e il link per il download sul sito di Component Factory. Technorati Tag: .NET,Programming,C#,VB .NET,Tools,Updates

posted @ mercoledì 15 aprile 2009 10:44 | Feedback (2) | Filed Under [ C# VB .NET ]

Architettura a Plug-in con il .NET Framework 3.5

Recentemente ho iniziato un nuovo progetto il cui nucleo deve essere basato su un'architettura a plug-in. Non avendo vincoli di sorta, ho voluto provare ad utilizzare il namespace System.AddIn aggiunto nel .NET Framework 3.5. Devo ammettere che il primo impatto con queste classi è stato un po' "traumatico": basti pensare che, per realizzare un sistema di plug-in minimale, bisogna realizzare almeno 5 Class Library e salvare i file in ben precise cartelle, altrimenti si otterranno errori in fase di esecuzione. Cercando un po' su Internet, ho trovato un post che spiega passo-passo come costruire questo tipo di architettura. Lo...

posted @ lunedì 6 aprile 2009 22:38 | Feedback (3) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Articolo su SQL Server Compact

Anche se con un po' di ritardo, segnalo che nella sezione database di HTML.it è stato pubblicato un mio nuovo articolo, in cui parlo di SQL Server Compact e del suo utilizzo da .NET. Technorati Tag: .NET,Programming,C#,SQL Server

posted @ venerdì 3 aprile 2009 11:24 | Feedback (1) | Filed Under [ C# SQL Server ]

Un nuovo User Group su .NET

DotNetRomaCesta è il neonato User Group di Roma dedicato al mondo .NET. Come si legge nella sua Home Page: Lo scopo di quest'associazione è quella di creare un punto di riferimento per la città di Roma e per tutti gli appassionati ed utilizzatori di questa tecnologia, un modo per confrontarsi e scambiarsi le proprie esperienze. L'User Group nato dalla passione di persone, ha il compito di fornire materiale formativo, quali articoli e trucchi nonché notizie e di promuovere una serie di attività culturali e formativi volte ad accrescere la conoscenza di questa materia. Gli eventi, che...

posted @ giovedì 2 aprile 2009 10:43 | Feedback (7) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight SQL Server LINQ ]

Visual Studio 2008 Remote Debugger

Il Remote Debugger di Visual Studio è uno strumento utilissimo per effettuare il debug di siti web e servizi una volta che sono stati pubblicati.  Esso, però, fa parte di Visual Studio, quindi non è disponibile sui sistemi che montano solo il runtime di .NET. Per eseguire il debug di un’applicazione su una macchina che non è dotata di Visual Studio, è possibile installare su di essa solo gli strumenti necessari alla connessione remota, utilizzando un apposito pacchetto disponibile sul sito Microsoft Downloads. Technorati Tag: .NET,Programming,Tools

posted @ mercoledì 1 aprile 2009 15:19 | Feedback (1) | Filed Under [ C# ADO .NET & SQL .NET 3.0 Orcas & .NET 3.5 ]

Pubblicate le slide dell'Installation Fest

Su DotNetToscana sono disponibili le slide della mia sessione Windows 7 – Le novità per gli sviluppatori che ho tenuto nel corso dell'Installation Fest di Windows 7 di Mercoledì 25 Marzo. Technorati Tag: .NET,Programming,Community

posted @ lunedì 30 marzo 2009 10:32 | Feedback (2) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Windows Related .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

Windows 7 Installation Fest – Impressioni

So che sono un po' di parte, ma personalmente ritengo che l'Installation Fest di Mercoledì scorso sia andato molto bene. L'organizzazione è stata ineccepibile (quanto c'era da mangiare…), le persone si sono dimostrate interessate agli argomenti e la mia sessione sulle novità per sviluppatori è piaciuta, come testimoniato dalle domande che mi sono state fatte alla fine. Sono contento che sia andata così bene, e che l'evento sia stato anche l'occasione per incontrare nuove persone, fare due chiacchere mentre l'installazione di Windows 7 filava più o meno liscia… E lanciare il sasso per coinvolgere altra gente nella nostra avventura di...

posted @ venerdì 27 marzo 2009 11:35 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Windows Related .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Programmi ]

Rilasciato il Krypton Toolkit versione 3.5

E’ stata da poco rilasciata la versione 3.5 del Kryptoon Toolikit, una raccolta di controlli freeware per applicazioni Windows Forms prodotti da Component Factory. Il nuovo aggiornamento porta il numero totale di controlli a 41. Tra le aggiunte, si segnalano: KryptonDateTimePicker KryptonMonthCalendar DateTimePicker for KryptonRibbon MonthCalendar for KryptonContextMenu Per-KryptonPage ButtonSpecs Il pacchetto scaricabile dal sito del produttore comprende l’intera Krypton Suite, che inculde anche la versione trial di una nutrita serie di altri controlli. Technorati Tag: .NET,Programming,C#,VB .NET,Tools

posted @ martedì 24 marzo 2009 10:53 | Feedback (6) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Utilizzare Log4Net in 30 secondi

Dovendo inserire un sistema di logging in un’applicazione abbastanza grossa su cui mi trovo a lavorare, ho pensato di utilizzare Log4Net, che ho sempre saputo essere molto efficiente e versatile. Il problema è che non l’avevo mai usato prima… Ho così fatto una ricerchina su Internet e sono giunto a questa pagina, dove viene spiegato veramente in 30 secondi come utilizzarlo e configurarlo! Technorati Tag: NET,Programming,ASP .NET,C#,Tools

posted @ martedì 17 marzo 2009 17:03 | Feedback (1) | Filed Under [ C# ASP .NET ]

Screencast su Windows Azure

Quest’oggi, Alessandro Del Sole ha reso disponibile uno Screencast con argomento "Creare e distribuire applicazioni Web su Windows Azure". Personalmente, ma questa ovviamente è solo la mia opinione, la ritengo una piattaforma molto interessante.  Da un po’ di tempo avevo intenzione di fare qualche esperimento con essa… Ora non ho più scuse… Technorati Tag: .NET,Programming,Windows

posted @ lunedì 16 marzo 2009 17:26 | Feedback (0) | Filed Under [ C# VB .NET Windows Related Orcas & .NET 3.5 ]

Directory.GetFiles e pattern multipli

Il metodo Directory.GetFiles consente di recuperare i file con il pattern specificato all'interno di una determinata cartella. Purtroppo, esso non supporta i pattern multipli, ovvero non è possibile usare pattern come *.xls;*.doc per trovare in un colpo solo tutti i file XLS e DOC. Naturalmente si tratta di una limitazione facilmente aggirabile, ad esempio utilizzando il seguente extension method per l'oggetto DirectoryInfo: using System; using System.Collections.Generic;   namespace System.IO { public static...

posted @ lunedì 9 marzo 2009 15:07 | Feedback (8) | Filed Under [ C# Orcas & .NET 3.5 ]

Interessanti articoli sul Garbage Collector di .NET

Nel blog I know the answer (it's 42) è possibile trovare una serie è possibile trovare una serie di articoli che spiegano vari aspetti del funzionamento del Garbage Collector di .NET. Al momento sono ben 9: When does the .NET Compact Framework Garbage Collector run Forcing a Garbage Collection is not a good idea Series on dynamic memory management Reference Counting Garbage Collection Copying Garbage Collection Optimizing reference counting garbage collection Handling...

posted @ martedì 3 marzo 2009 11:18 | Feedback (3) | Filed Under [ C# VB .NET .NET Compact Framework .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

System.ApplicationException

Oggi, mentre stavo per creare una Custom Exception in .NET, mi sono ricordato una cosa che avevo studiato nell'esame di certificazione 70-536, ovvero che la classe System.ApplicationException non dovrebbe essere utilizzata. Ma perché? Qual è il motivo che ha spinto Microsoft stessa a sostenere questa cosa? La risposta si trova facilmente con una ricerca su Google: JEFFREY RICHTER: System.ApplicationException is a class that should not be part of the .NET Framework. The original idea was that classes derived from SystemException would indicate exceptions thrown from the CLR (or system) itself, whereas non-CLR exceptions would be derived...

posted @ lunedì 2 marzo 2009 18:28 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Certificazioni ]

Disponibile il materiale del 1° Workshop di DotNetToscana

Il materiale presentato durante il Workshop Microsoft .NET Framework tra Presente e Futuro, tenutosi il 20 Febbraio scorso a Pisa, è disponibile nella sezione Files della nostra Community. Technorati Tag: .NET,Programming,ASP .NET,C#,LINQ,Silverlight

posted @ venerdì 27 febbraio 2009 17:48 | Feedback (0) | Filed Under [ C# ASP .NET Orcas & .NET 3.5 Silverlight LINQ ]

1° Workshop DotNetToscana – Le prime impressioni

Venerdì scorso, presso il Dipartimento di Informatica dell'Università di Pisa, si è svolto il primo Workshop dello User Group toscano su .NET, Microsoft. NET Framework tra presente e futuro. E' stata la prima esperienza, sia come organizzatore di eventi, sia come speaker. A distanza di un giorno e mezzo, volevo condividere con voi le mie prime impressioni sull'esperienza: L'organizzazione di un evento è veramente un'attività impegnativa: questo sarà forse perché è stato il nostro primo Workshop, e quindi ci tenevamo che fosse tutto perfetto; La "tensione per la prima" era evidente: la...

posted @ domenica 22 febbraio 2009 14:02 | Feedback (2) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight SQL Server LINQ ]

Una sfida per i programmatori

Spesso la programmazione è vista metaforicamente come una "sfida", con traguardi da raggiungere, ostacoli sul proprio cammino, aiuti, imprevisti, ecc… Microsoft e HTML.it hanno provato a rendere concreta questa sfida, proponendo un gioco in Silverlight in cui lo sviluppatore deve cercare di rispondere il più velocemente possibile ad una serie di domande, guadagnando così punti per entrare in classifica, allo scopo di ottenere uno sconto del 40% sull'acquisto di Visual Studio 2008 Professional + MSDN Premium. Technorati Tag: .NET,Programming,Visual Studio

posted @ lunedì 16 febbraio 2009 15:28 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight LINQ ]

DotNetToscana su HMTL.it

Andrea Marzilli, redattore e amico di HTML.it, mi ha fatto un'intervista a proposito dello User Group DotNetToscana, di cui sono un fondatore: si parla della sua nascita, del suo spirito e dell'evento che si terrà a Pisa il 20 Febbraio prossimo. Technorati Tag: .NET

posted @ martedì 3 febbraio 2009 15:20 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight LINQ ]

Il nostro evento su MSDN Flash

Su MSDN Flash del 28 Gennaio 2009, nella sezione Eventi Community e Partner, è presente anche il primo Workshop di DotNetToscana, Microsoft .NET Framework tra presente e futuro, che ricordo si svolgerà il 20 Febbraio presso il Dipartimento di Informatica dell'Università di Pisa. Potete trovare l'indirizzo e l'agenda dell'evento sul nostro sito. Chi viene? Technorati Tags: .NET, Programming, ASP .NET, LINQ, Silverlight

posted @ mercoledì 28 gennaio 2009 23:27 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET .NET 3.0 Orcas & .NET 3.5 Silverlight SQL Server LINQ ]

Primo workshop dello User Group .NET Toscana

E' con sommo piacere (e una punta di soddisfazione) che annuncio pubblicamente il primo workshop organizzato dallo User Group .NET Toscana: Microsoft .NET Framework tra presente e futuro. L'evento si svolgerà il giorno 20 Febbraio, dalle 14.00 alle 19.00 presso il Dipartimento di Informatica dell'Univeristà di Pisa. La partecipazione è completamente gratuita. Gli argomenti di cui vorremmo parlare sono tanti, ma purtroppo dobbiamo fare una scelta: per tale motivo, attualmente è in corso un sondaggio con cui chiunque può esprimere le proprie preferenze. Technorati Tags: .NET

posted @ giovedì 22 gennaio 2009 00:05 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight LINQ ]

Enum.TryParse

L'oggetto Enum di .NET non espone il metodo TryParse, per tentare il cast verso un valore dell' enumerazione senza ottenere un' eccezione in caso di valore non valido (come avviene, ad esempio, con Int.TryParse). Tale funzione, tuttavia, può essere facilmente realizzata utilizzando un opportuno extension method, come descritto in questo post. Technorati Tags: .NET, Programming, C#

posted @ mercoledì 7 gennaio 2009 01:07 | Feedback (1) | Filed Under [ C# Orcas & .NET 3.5 ]

Programmazione parallela su ioProgrammo

Su ioProgrammo di Gennaio 2009 è stata pubblicata la prima parte di un mio aritcolo dedicato alla programmazione parallela con .NET 3.5 utilizzando le Parallel Extensions.   Technorati Tag: .NET,Programming,C#

posted @ lunedì 5 gennaio 2009 16:20 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 ]

6 passaggi per iniziare ad utilizzare Azure

Per iniziare ad utilizzare la nuova piattaforma Azure sono sufficienti 6 semplici passaggi, come riportato in questo post: Install Vista SP1 or Windows 2008 RTM Install VS 2008, then upgrade it to SP1. (azure needs .net 3.5 sp1) Install Azure SDK Install VS Azure SDK Install SDS SDK (optional SQL Data Services required for some Azure SDK samples) Extract the samples.zip, and then run the rundevstore.cmd from a elevated cmd prompt. Semplice, no?...

posted @ mercoledì 17 dicembre 2008 11:49 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Poster con le combinazioni di tasti per Visual Studio 2008

Per i collezioni o gli appassionati, è possibile scaricare i poster con le combinazioni di tasti per Visual Studio 2008: Poster per C# Poster per Visual Basic Technorati Tag: .NET,Programming,C#,VB .NET

posted @ venerdì 12 dicembre 2008 11:12 | Feedback (1) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Generare file XML con LINQ

Questo post spiega come quanto è sempre possibile generare file XML a partire da una collezione di oggetti utilizzando LINQ. Technorati Tag: .NET,Programming,C#,LINQ

posted @ mercoledì 3 dicembre 2008 18:32 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 LINQ ]

Word processor per ASP .NET

Come ho scritto nel forum di DotNetToscana, in questi giorni ho avuto modo di fare qualche prova con due tra i più diffusi word processor javascript per il web: FCKeditor e TinyMCE. In particolare, ho approfondito l'utilizzo di quest'ultimo, che mi sembra davvero ben fatto e facile da utilizzare. E' open-source, rilasciato con licenza LGPL e compatibile con la maggior parte dei browser attuali (Mozilla, Internet Explorer, Firefox, Opera, Safari e Google Chrome). Sul sito Internet del produttore è anche disponibile la versione preliminare di un controllo per facilitare l'integrazione dell'editor in applicazioni ASP .NET, ma si tratta comunque di...

posted @ venerdì 28 novembre 2008 00:27 | Feedback (4) | Filed Under [ C# VB .NET ASP .NET ]

SharpZipLib 1, DotNetZip 0

Dopo aver letto il mio post sui problemi con l'oggetto GZipStream, l'amico Matteo Baglini mi ha consigliato di provare la libreria DotNetZip, disponibile su CodePlex. Incuriosito, l'ho scaricata ed ho subito provato ad usarla per comprimere il mio solito file PDF da 4,48 MB (anche di esso ho parlato nello scorso post). Risultato: anche con DotNetZip ho ottenuto uno ZIP di 4,44 MB; in pratica ho raggiunto lo stesso livello di compressione ottenibile con la classe GZipStream. Forse sarò io che ho utilizzato un file PDF "problematico", ma per il momento continuo ad usare SharpZipLib, che occupa pure meno di...

posted @ mercoledì 26 novembre 2008 00:46 | Feedback (9) | Filed Under [ C# ]

I problemi dell'oggetto GZipStream

Il .NET Framework, a partire dalla versione 2.0, fornisce il namespace System.IO.Compression, al cui interno troviamo, tra le altre, la classe GZipStream, con cui è possibile comprimere e decomprimere file in formato ZIP. Facendo qualche prova, tuttavia, ho notato che essa non garantisce un elevato livello di compressione, per usare un eufemismo... Il dubbio mi è venuto quando ho compresso un file PDF di 4,48 MB, ottenendo uno ZIP di 4,44 MB; mi sembrava un po' strano, quindi ho provato ad utilizzare WinRAR, che ha prodotto un archivio di appena 1,46 MB. Allora ho scaricato SharpZipLib: comprimendo lo stesso file...

posted @ domenica 23 novembre 2008 22:55 | Feedback (4) | Filed Under [ C# ]

Le meraviglie dello StringBuilder

Le stringhe in .NET sono oggetti immutabili, quindi se si devono concatenare insieme un numero elevato si stringhe, usare l'operatore + è inefficiente, perché ogni volta verrebbe creata in memoria una nuova stringa. Per ovviare al problema, si deve utilizzare l'oggetto StringBuilder che, come si legge su MSDN, rappresenta una sequenza mutabile di caratteri, quindi ad esso è possibile aggiungere, rimuovere, inserire o sostituire caratteri senza la necessità di istanziare un nuovo oggetto in memoria. Questa è la favoletta che tutti noi conosciamo... Però quando oggi, facendo debug di codice scritto da altri, ho sostituito tutte le concatenazioni di stringhe con...

posted @ mercoledì 19 novembre 2008 19:34 | Feedback (5) | Filed Under [ C# VB .NET ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Recuperare la Specific Culture di una cultura

L'oggetto CultureInfo di .NET è utilizzato per indicare una cultura, che può essere composta da due parti: una cultura neutrale e una specifica. Ad esempio, nella cultura en-US, en rappresenta la cultura neutrale, mentre US è la cultura specifica. Quando si ha un oggetto di tipo CultureInfo, è possibile recuperare la cultura neutrale semplicemente accedendo alla sua proprietà TwoLetterISOLanguageName, mentre per la cultura specifica si deve ricorrere alla classe RegionInfo: RegionInfo ri = new RegionInfo("en-US"); string specificCulture = ri.TwoLetterISORegionName; Ovviamente lo stesso risultato si può ottenere anche manipolando la stringa en-US, ma questa soluzione garantisce che, se le regole di codifica...

posted @ lunedì 17 novembre 2008 19:03 | Feedback (0) | Filed Under [ C# ]

Attenzione all'inferenza dei tipi di .NET 3.5

Una delle novità maggiormente decantate di .NET 3.5 è l'inferenza dei tipi, ovvero la possibilità di determinare staticamente, a tempo di compilazione, il tipo di una variabile in base al suo contenuto. Tutto quello che serve, per utilizzarla, è indicare var come tipo di dato: quando incontra questa parola chiave, il compilatore sa che deve analizzare i dati memorizzati nella variabile per determinarne il tipo. Si tratta di una funzionalità molto comoda e che, quando si utilizza LINQ, spesso permette di evitare la creazione di classi specializzate per contenere i risultati delle interrogazioni, consentendo comunque di avere un accesso tipizzato...

posted @ sabato 15 novembre 2008 18:52 | Feedback (4) | Filed Under [ C# Orcas & .NET 3.5 ]

Introduzione a iTextSharp

In questi giorni sto guardando iTextSharp, una libreria gratuita per realizzare file PDF dalle proprie applicazioni .NET, per desktop e Web che siano. E' uno strumento potente, ricco di funzionalità, ma non molto facile da usare. A questo indirizzo ho trovato un semplice tutorial introduttivo che spiega come muovere i primi passi con questa libreria. Non è molto lungo, ma presenta comunque una serie di concetti importanti, tutti corredati da esempi di codice. Technorati Tag: .NET,Programming,C#,VB.NET,ASP .NET,Tools

posted @ giovedì 6 novembre 2008 18:20 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET ]

Uno sguardo alle novità di .NET 4.0

Come molti di voi sanno, da qualche giorno è possibile scaricare dal sito Microsoft una macchina virtuale contenente la prima CTP di Visual Studio 2010 e del .NET Framework 4.0. In questo post, invece, è contenuta una breve panoramica delle principali novità che troveremo nella Base Class Library prossima ventura. Technorati Tag: .NET,Programming,Visual Studio,Updates,C#,VB .NET. Updates

posted @ mercoledì 5 novembre 2008 17:53 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Updates & Service Pack ]

Distanza di Levenshtein

La distanza di Levenshtein è un algoritmo che permette di calcolare la "distanza" tra due stringhe, restituendo un valore che indica quanto due stringhe sono simili (più il valore è basso, più le stringhe sono simili). Essa è utile per realizzare funzionalità del tipo Forse cercavi di Google. Questo post spiega come implementare l'algoritmo in una funzione CLR per SQL Server, che può essere richiamata, ad esempio, all'interno di una stored procedure. L'ho provato ieri e devo dire che dà risultati molto soddisfacenti, con tempi di elaborazione accettabili. Technorati Tags: .NET, Programming, C#, SQL Server

posted @ martedì 4 novembre 2008 20:29 | Feedback (5) | Filed Under [ C# SQL Server ]

Disponibili i sorgenti di WPF

Notizia molto interessante: a partire da oggi è disponibile il codice sorgente di Windows Presentation Foundation per .NET 3.5 SP1. Questo rilascio va ad aggiungersi alla prima informata di codice resa accessibile circa un anno fa; in quell'occasione Microsoft rilasciò solo una parte del Framework .NET, lasciando però intendere che, nei mesi a venire, avrebbe progressivamente fornito anche gli altri tasselli. Sembra proprio che questa promessa sia stata rispettata. Technorati Tag: .NET,Programming,Visual Studio,C#,VB .NET

posted @ mercoledì 22 ottobre 2008 16:39 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Serializzazione JSON con ASP .NET

ASP .NET fornisce un oggetto con cui è possibile serializzare/deserializzare oggetti secondo lo standard JSON, il DataContractJsonSerlializer. Esso è contenuto nel namespace System.Runtime.Serialization.Json, ma per utilizzarlo si deve aggiungere al proprio progetto un riferimento all'assembly System.ServiceModel.Web.dll. Ogni classe o struttura che si vuole serializzare deve essere decorata con l'attributo DataContract; al suo interno, i membri che interessano devono avere l'attributo DataMember. Ad esempio:  [DataContract] public class ShoppingCart { [DataMember] public List<string> Articles { get; set; } [DataMember] public string UserName { get; set; } public ShoppingCart() ...

posted @ mercoledì 22 ottobre 2008 15:02 | Feedback (1) | Filed Under [ C# ASP .NET ]

Krypton Toolkit 3.0.6

Nuovo rilascio per il Krypton Toolkit, che giunge a quota 3.0.6. Queste le novità: Major Bug Fixes Locking/Unlocking computer causes text to disappear. Text not drawing at all for some Visual Studio projects. ComboBox drop down not working on some computers. Cannot edit Image properties with KryptonContextMenu. Design time change of Ribbon.MinimizedMode...

posted @ mercoledì 22 ottobre 2008 10:21 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Query dinamiche con LINQ

Utilizzando LINQ possiamo creare facilmente comandi per interrogare basi di dati SQL direttamente da codice, con tutti i vantaggi derivanti dalla type-safety e dal controllo dei parametri a tempo compilazione. In alcuni casi, tuttavia, ad esempio quando si realizza un sito Internet e, in particolare, il suo motore di ricerca interno, può capitare di dover eseguire interrogazioni su un database utilizzando una serie più o meno lunga di parametri impostati dall'utente (ad esempio, ricerca di prodotti solo in una certa categoria, con vincoli sul prezzo e sulla disponibilità, ecc.). Questa funzionalità può essere realizzata creando manualmente la query SQL, ovvero...

posted @ martedì 21 ottobre 2008 14:42 | Feedback (1) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET SQL Server LINQ ]

E' nato lo User Group Toscano di .NET

Il buon Matteo mi ha preceduto di qualche clic... Il panorama delle Community regionali dedicata a .NET si è da poco allargato con la nascita dello User Group Toscano. Era da diverso tempo che questa idea ci rimbalzava per la testa, e finalmente ci siamo riusciti! Il gruppo si è riunito per la prima volta intorno alle metà di Settembre... Un'allegra combriccola di 8 persone accomunata dalla passione per .NET, dalla voglia di mettersi in gioco e dalla convinzione che le Community siano un luogo di incontro (reale o virtuale che sia) di grande importanza. Poi sono arrivati i...

posted @ lunedì 20 ottobre 2008 17:50 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) Windows Related .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Team Foundation Server Windows Home Server CodePlex Updates & Service Pack Silverlight Certificazioni Windows Mobile SQL Server LINQ Programmi ]

Developer Edition e Database Edition insieme in Rosario

Nella prossima versione di Visual Studio Team System (Rosario, appunto), la Developer Edition e la Database Edition saranno unite in una nuova, unica edizione che le comprenderà entrambe. Fonte: AssemblyInfo blog Technorati Tag: .NET,Visual Studio Originally posted at dotnettoscana.org

posted @ lunedì 20 ottobre 2008 17:13 | Feedback (2) | Filed Under [ C# VB .NET ASP .NET Orcas & .NET 3.5 ]

Utilizzare i Web Services di Virtual Earth

This software development kit (SDK) provides programming reference and how-to topics for getting started with the Virtual Earth Web Services. Il download è disponibile qui. Technorati Tags: Live, Programming, Tools

posted @ lunedì 29 settembre 2008 20:45 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET ]

Component Factory regala una licenza di Krypton Suite

Da oggi gli MVP e i possessori di un blog dedicato a .NET con almeno 500 iscritti possono richiedere gratuitamente una licenza di Krypton Suite, il pacchetto completo di Component Factory contenente il Krypton Toolkit (disponibile anche gratuitamente), Krypton Ribbon (per creare interfacce stile Office 2007), Krypton Navigator e Krypton Workspace. Maggiori informazioni sull'offerta sono disponibili in questa pagina. Technorati Tag: .NET,Tools

posted @ mercoledì 24 settembre 2008 15:32 | Feedback (3) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 Programmi ]

Rilasciato il Krypton Toolkit 3.0

E' stata rilasciata la versione 3.0 del Krypton Toolkit: Toolkit Highlights NEW - KryptonNumericUpDown NEW - KryptonBreadCrumb FIXED - KryptonComboBox bugs Ribbon Highlights NEW - NumericUpDown group element Navigator Highlights NEW - Page Drag and Drop added FIXED - Memory leak Workspace Highlights NEW - Whole new component added!...

posted @ martedì 23 settembre 2008 15:57 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Un questionario sulla distribuzione delle applicazioni .NET

In questo post è presente un breve questionario sulla distribuzione delle applicazioni .NET, che ha la scopo di raccogliere informazioni per migliorare il deploy nelle prossime versioni del Framework. Technorati Tag: .NET

posted @ lunedì 22 settembre 2008 10:31 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

Il mio nuovo articolo su ioProgrammo

Il buon Simone ha citato alcuni articoli pubblicati sul numero di Ottobre di ioProgrammo, relativi al motion detection e al riconoscimento delle immagini. Uno di questi l'ho scritto io: più precisamente, ho trattato la realizzazione di un sistema di videosorveglianza utilizzando C# e una comune webcam. Come sempre, se vi capita di leggerlo, mi farebbe piacere sapere cosa ne pensate Technorati Tag: .NET,Programming,C#

posted @ giovedì 18 settembre 2008 17:49 | Feedback (7) | Filed Under [ C# ]

Open XML Format SDK 2.0

Da qualche giorno è disponibile sul sito Microsoft la CTP di settembre dell'Open XML Format SDK 2.0. Il pacchetto, che richiede il .NET Framework 3.5, può essere scaricato qui. Technorati Tags: .NET, Programming, Tools, Updates

posted @ sabato 13 settembre 2008 13:18 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Orcas & .NET 3.5 ]

WCF Security Guide

E' stata rilasciata da qualche giorno la WCF Security Guide, una serie di linee guida di Microsoft per lo sviluppo di soluzioni basate su Windows Communication Foundation. Si tratta di un corposo PDF di ben 689 pagine disponibile per il download gratuito su CodePlex. Technorati Tag: .NET,Programming

posted @ mercoledì 6 agosto 2008 15:27 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET .NET 3.0 ]

Esempio di uso del namespace System.AddIn

Su MSDN Magazine di Luglio 2008 è stato pubblicato un articolo che spiega come utilizzare le classi del nuovo namespace System.AddIn per creare applicazioni Windows Forms estendibili. Technorati Tags: .NET, Programming, CS

posted @ giovedì 24 luglio 2008 20:12 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 ]

Microsoft XNA Game Studio 3.0 CTP

Microsoft XNA Game Studio is a toolset which makes creating great video games for Windows-based PC’s, the Zune digital media player and the Xbox 360 console (with an active XNA Creators Club subscription) easier than ever. Il download di questa Community Technology Preview è disponibile qui. E' necessario Visual C# Express Edition 2008 oppure Visual Studio 2008. Technorati tags: .NET, Programming, Tools, Updates

posted @ sabato 12 luglio 2008 20:17 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 Updates & Service Pack ]

Un articolo sul Garbage Collector

Su MSDN Magazine di Giugno 2008 è stato pubblicato un interessante articolo su come il Garbage Collector di .NET gestisce i cosiddetti oggetti grandi, ovvero oggetti che occupano più di 85.000 byte di memoria. Technorati Tag: .NET,Programming

posted @ martedì 8 luglio 2008 18:26 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Tutorial sulla programmazione con XNA

E' stato reso disponibile un tutorial video della durata di più di 2 ore che affronta diversi aspetti della programmazione di giochi 2D utilizzando il framework XNA. Gli argomenti affrontati sono numerosi: XNA Game Studio project creation Adding art assets to a project Displaying background art Sprites Simple collision techniques Scoring Font usage Keyboard and Gamepad input Basic C# programming within the XNA Framework Il...

posted @ lunedì 7 luglio 2008 17:58 | Feedback (1) | Filed Under [ C# Tutto & Oltre :-) ]

Sandcastle torna su CodePlex

Dopo qualche tempo di "indecisione", Sandcastle è tornato su CodePlex... Come molti di voi avranno intuito, questo significa che il team di sviluppo ha deciso di rilasciare anche il codice sorgente. Technorati Tags: .NET, Programming, Tools

posted @ mercoledì 2 luglio 2008 22:12 | Feedback (0) | Filed Under [ C# VB .NET CodePlex ]

Pubblicato il mio articolo sul riconoscimento vocale

Sul numero di Luglio di ioProgrammo è stato pubblicato un mio articolo sul riconoscimento vocale con .NET 3.0. Il taglio è molto pratico, dopo una breve introduzione passo subito ad illustrare il funzionamento delle principali classi del namespace System.Speech. E' stata la mia prima esperienza su una rivista cartacea (finora ho collaborato solo con testate online, come HTML.it), ma spero che questo articolo sia l'inizio di una lunga serie Technorati Tags: .NET, Programming, C#

posted @ mercoledì 2 luglio 2008 15:08 | Feedback (2) | Filed Under [ C# Tutto & Oltre :-) .NET 3.0 ]

Tutti gli aggiornamenti di Visual Studio in una sola pagina

Lo segnalo per quanti ancora non lo sapessero ma anche come promemoria personale: da qualche tempo gli aggiornamento e i bug fix di Visual Studio sono reperibili su MSDN Code Gallery: facendo clic su questo link è possibile accedere alla lista completa. Technorati Tag: .NET,Visual Studio,Updates

posted @ martedì 1 luglio 2008 15:39 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

Quando utilizzare StringBuilder

Recentemente mi è stato chiesto quando conviene utilizzare uno StringBuilder piuttosto che concatenare le stringhe con il +. L'argomento è stato affrontato più volte, ma credo sia comunque utile riportare quando dice MSDN, in modo da chiarire la situazione: String objects are immutable in that they cannot be changed once created. Methods that act on strings actually return new string objects. Therefore, for performance reasons, large amounts of concatenation or other involved string manipulation should be performed with the StringBuilder class.   Technorati Tags: .NET, Programming, C#, VB .NET, ASP .NET

posted @ domenica 29 giugno 2008 15:09 | Feedback (4) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

PInvoke Interop Assistant

PInvoke Interop Assistant è un tool per la generazione automatica di chiamate P/Invoke a partire da funzioni dell'API di Windows. Grazie ad esso, è possibile generare codice managed per C# e VB .NET. In origine presentato in un articolo di MSDN Magazine di Gennaio 2008, è stato recentemente pubblicato su CodePlex. Fonte: CLR Team Blog Technorati Tag: .NET,Programming,Tools,C#,VB .NET

posted @ martedì 24 giugno 2008 13:36 | Feedback (0) | Filed Under [ C# VB .NET ]

Webcast su Windows Mobile

A questo indirizzo sono disponibili i link a 5 webcast dedicati a chi desidera cominciare a sviluppare sulla piattaforma Windows Mobile. Technorati Tags: Windows Mobile, .NET, Programming

posted @ lunedì 23 giugno 2008 20:18 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 Windows Mobile ]

Una libreria per la compressione di file ZIP

Per la compressione di file ZIP in .NET, ho sempre utilizzato la famosa libreria SharpZipLib. In questi giorni, però, sono venuto a conoscenza di DotNetZip, di cui è stata recentemente rilasciata la versione 1.5. Si tratta di un progetto open-source pubblicato su CodePlex e rilasciato con licenza Microsoft Public License. Tra le funzionalità offerte, c'è anche la possibilità di creare archivi auto-estraenti e file ZIP che possono essere direttamente inviati all'oggetto Response.OutputStream, cosa che permette di generare dinamicamente archivi compressi scaricabili via Internet. Technorati Tags: .NET, Programming, C#, ASP .NET, VB .NET

posted @ sabato 21 giugno 2008 15:21 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 CodePlex ]

Download di Sandcastle

In attesa che venga definitivamente deciso quale collocazione attribuire a Sandcastle (ad essere sinceri, a me non sembra una decisione tanto difficile ), per adesso è possibile scaricare l'ultima versione da Microsoft Downloads. Technorati Tag: .NET,Visual Studio,Tools

posted @ venerdì 13 giugno 2008 10:45 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 LINQ ]

Il codice non può essere auto-commentante

Sui blog di MSDN è apparso un post per me molto interessante, in cui si discute del fatto che il codice non può commentarsi da sé, quindi è necessario scrivere commenti per spiegare quello che si sta sviluppando. Si tratta di un argomento che mi sta molto a cuore: personalmente, sono dell'opinione che sia meglio un commento in più di uno in meno... Anzi, forse io esagero e tendo a commentare più del dovuto, ma lo faccio nell'ottica di riprendere il codice dopo qualche tempo dalla sua scrittura: quello che all'inizio può apparire chiarissimo (nel momento in cui lo si...

posted @ lunedì 9 giugno 2008 17:05 | Feedback (8) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight LINQ ]

Bug nella libreria Argotic

Qualche giorno fa ho segnalato la libreria Argotic, per la gestione dei feed RSS. Durante il suo utilizzo, mi sono accorto che la proprietà Comments della classe Argotic.Syndication.RssItem, che dovrebbe contenere l'URL dei commenti ad un post, in realtà valeva sempre null, anche quando il tag comments era presente nel file XML. Sono così andato a vedere nei sorgenti della libreria, per isolare il problema, ed ho trovato l'inghippo. C'è un errore di ortografia nella stringa utilizzata per recuperare l'URL dei commenti; il file Argotic.Syndication.RssItem.cs (contenuto nel namespace Argotic.Core) contiene la seguente istruzione:  XPathNavigator commentsNavigator = source.SelectSingleNode("coments", manager); ovvero "coments" è...

posted @ giovedì 5 giugno 2008 10:37 | Feedback (4) | Filed Under [ C# CodePlex ]

Expression Encoder 2 SDK

The Expression Encoder 2 SDK includes documentation, samples, and code to help you work with the Expression Encoder object model and extend the functionality of Expression Encoder 2. L'SDK può essere utilizzato con Visual Studio 2008, Visual C# Express 2008 o Visual C++ Express 2008 . Il download è disponibile qui. Technorati Tag: .NET,Programming

posted @ martedì 3 giugno 2008 15:23 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Nuova CTP per le Parallel Extensions di .NET 3.5

Parallel Extensions to the .NET Framework is a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors increase without having to deal with many of the complexities of today’s concurrent programming models. E' stata rilasciata una nuova CTP di questa libreria, scaricabile gratuitamente da qui. Ne approfitto per ricordare che già da un po' di tempo...

posted @ martedì 3 giugno 2008 10:20 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Recuperare il chiamante di un metodo

In alcuni casi può essere necessario conoscere il nome del metodo che ha richiamato una certa routine. Ad esempio, per creare un meccanismo di logging in cui un ipotitetico metodo WriteLog scrive, tra le altre informazioni, anche il nome della funzione che lo ha invocato. Per fare questo, basta analizzare il contenuto dello Stack Trace:   1 StackTrace stackTrace = new StackTrace(); 2 StackFrame stackFrame = stackTrace.GetFrame(1); 3 MethodBase methodBase = stackFrame.GetMethod(); 4 string methodName = methodBase.Name; L'istruzione numero 2 recupera il primo stack frame, contenente il riferimento al metodo che ha richiamato la routine attualmente in esecuzione. Se, invece del numero 1, si utilizza, ad...

posted @ lunedì 2 giugno 2008 17:30 | Feedback (1) | Filed Under [ C# ]

Sandcastle si aggiorna

Dal sito di CodePlex è possibile scaricare la nuova versione di Sandcastle, la 2.4.10520. Si tratta della stessa build utilizzata per produrre la documentazione di Visual Studio 2008 SP1. Sono stati corretti numerosi bug, come riportato sul blog del team di sviluppo. Technorati Tag: .NET,Programming,Tools,Visual Studio,Updates

posted @ venerdì 30 maggio 2008 10:37 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack LINQ ]

Krypton Toolkit 2.8.5

Nuovo aggiornamento per questo insieme di controlli per Windows Forms. L'update in questione corregge alcuni bug ed aggiunge nuove combinazioni di colori ispirate a Windows Vista e Windows Media Player, che si affiancano alle palette già presenti in stile Office 2007. Per il download diretto, fate clic qui. Technorati Tag: Updates,.NET,Programming,C#,VB .NET,Tools

posted @ giovedì 29 maggio 2008 10:16 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

.NET e C++: due modi diversi di programmare

Tranquilli, non ho assolutamente intenzione di scrivere un post in cui metto a confronto .NET e C++, dicendo quale è meglio e quale è peggio... Su questo argomento è già stato scritto di tutto . Vorrei invece fare una riflessione sulla diverse "filosofie di programmazione" che seguo quando lavoro in C++ rispetto a quando uso .NET. Come i miei 25 lettori sanno bene, nell'ultimo anno ho accumulato una certa esperienza con .NET, accompagnata dal conseguimento di diverse certificazioni. Anche i lavori che ho fatto finora hanno sempre riguardato questa piattaforma.  Ultimamente, però, nella mia nuova società sto affrontando un...

posted @ venerdì 23 maggio 2008 16:30 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 LINQ ]

Libreria per il parsing degli RSS

Mi sembra che fosse stato già segnalato tempo fa sul muro, ma nell'incertezza lo riporto nuovamente, anche come appunto personale: all'indirizzo http://www.codeplex.com/Argotic è disponibile un framework molto ben fatto e in continuo sviluppo per la gestione di feed in formato RSS, Atom, OPML, APML, BlogML, RSD... e chi più ne ha più ne metta . La versione compilata della libreria è disponibile sia nella versione per .NET 2.0 sia per .NET 3.5. Technorati Tag: .NET,Programming,C#,VB .NET,ADO .NET,ASP .NET

posted @ lunedì 19 maggio 2008 18:49 | Feedback (3) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Rilasciata l'Enterprise Library 4.0

Giovedì scorso è stata rilasciata la versione 4.0 dell'Enteprise Library di Microsoft. Come sempre, MSDN è il sito di riferimento per la documentazione tecnica, mentre il download (insieme a video, esempi e molto altro ancora) è disponibile su CodePlex. Technorati Tag: .NET,Programming,Visual Studio,C#,VB .NET,ADO .NET,ASP .NET

posted @ lunedì 19 maggio 2008 16:30 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Provare le novità di Visual Studio 2008 e .NET 3.5 Service Pack 1

Il training kit per .NET 3.5 si arricchisce di nuovi labs che consentono di sperimentare le novità introdotte dal Service Pack 1. Per maggiori informazioni e per il link al download, di circa 37 MB, fare riferimento a questo post. Technorati Tag: .NET,Programming,Visual Studio,ASP .NET,C#,VB .NET,ADO .NET

posted @ mercoledì 14 maggio 2008 18:01 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Orcas & .NET 3.5 ]

XNA Game Studio 3.0 Community Technical Preview

E' stata da poco rilasciata la prima CTP di XNA Game Studio 3.0. L'annuncio è dato in questo post, in cui è fornito anche il link per il download. Questa nuova release richiede Visual Studio 2008 oppure Visual C# 2008 Express. Il rilascio della versione finale è previsto per la fine del 2008. Technorati Tag: .NET,Programming,Tools

posted @ mercoledì 7 maggio 2008 18:22 | Feedback (1) | Filed Under [ C# Orcas & .NET 3.5 ]

Un editor visuale per LINQ-to-SQL

In questo post viene presentato VLINQ, ovvero Visual LINQ Query Builder. Si tratta di un add-in per Visual Studio 2008 che consente di creare query per LINQ-to-SQL in maniera completamente visuale. Allo stesso indirizzo è disponibile anche un breve tutorial che introduce il suo utilizzo. VLINQ è ospitato su MSDN Code Gallery: fare clic qui per accedere alla pagina del progetto. I download disponibili comprendo anche il codice sorgente, la documentazione e uno screencast che mostra l'utilizzo pratico di questa estensione. Technorati Tag: .NET,Programming,C#,VB .NET,ASP .NET,ADO .NET,LINQ,Visual Studio,Tools

posted @ lunedì 5 maggio 2008 12:19 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Orcas & .NET 3.5 LINQ ]

Logging delle applicazioni in .NET

Basta fare una piccola ricerca su Internet per trovare diversi framework di logging per .NET (vedi Log4NET, solo per citare il più famoso). Ci sono comunque situazioni in cui gli strumenti offerti da .NET sono più che sufficienti: basta utilizzare opportunamente la classe Trace e il file app.config per creare un semplice sistema di logging. Allo scopo, si deve innanzi tutto inserire una sezione come la seguente nel file di configurazione dell'applicazione: 1 <system.diagnostics> 2 <trace autoflush="true" indentsize="4"> 3 <listeners> 4 ...

posted @ sabato 26 aprile 2008 21:49 | Feedback (0) | Filed Under [ C# ]

Creare applicazioni certificate per Windows Vista con .NET

Questo articolo di CodeProject elenca le linee guida su come realizzare un'applicazione .NET con i requisiti necessari ad ottenere il logo "Certified for Windows Vista". E' anche fornita un'applicazione di esempio, in VB .NET, in cui sono applicati tutti questi suggerimenti. Technorati tags: Windows, .NET, Programming, VB .NET

posted @ venerdì 25 aprile 2008 21:42 | Feedback (0) | Filed Under [ C# VB .NET Windows Related .NET 3.0 Orcas & .NET 3.5 ]

Nuovo aggiornamento del Krypton Toolkit

E' stata rilasciata la nuova versione del Krypton Toolkit, la 2.8. Queste in breve le novità: New Controls/Components - KryptonDropButton - KryptonColorButton - KryptonListBox - KryptonCheckedListBox - KryptonCommand - KryptonGallery - 6 x KryptonContextMenu Elements Il download, abbastanza corposo (sono ben 22 MB), è disponibile qui. Technorati Tag: .NET,Programming,Updates,VB .NET,C#

posted @ martedì 22 aprile 2008 10:42 | Feedback (1) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Attenzione alla lingua del riconoscimento vocale

Qualche tempo fa avevo mostrato come realizzare un sistema di riconoscimento vocale basato su grammatiche utilizzando il .NET Framework 3.0. In quell'occasione ho dimenticato di fare una precisazione importante: per impostazione predefinita, quando si crea una grammatica essa utilizza sempre la cultura del sistema operativo; nel caso in cui essa sia  diversa da quella dei motori di riconoscimento installati (ad esempio Windows XP italiano con lo Speech API 5.1 SDK), nel momento in cui si esegue il metodo SpeechRecognitionEngine.LoadGrammar, si ottiene una InvalidOperationException perché La lingua della grammatica non corrisponde alla lingua del riconoscimento vocale. Per evitare questo problema, è...

posted @ martedì 22 aprile 2008 01:02 | Feedback (0) | Filed Under [ C# .NET 3.0 ]

Tutte le funzioni dell'API di Windows

Per quanto nel mondo .NET il ricorso alle API di Windows sia sempre più raro, ci sono situazioni in cui è ancora necessario utilizzarle. In casi del genere, è possibile fare riferimento a questa sezione di MSDN, in cui sono elencati le funzioni dell'API di Windows in ordine alfabetico, per categorie oppure divise per sistema operativo. Fonte: ascend slowly, breathing normally blog Technorati Tag: .NET,Programming,C#,VB .NET

posted @ lunedì 21 aprile 2008 11:44 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Ancora su .NET e l'ereditarietà multipla

Alcuni dei miei amici che programmano in C++ non capiscono il motivo per cui .NET non supporti l'ereditarietà multipla. Questo post cerca di fare un po' di chiarezza sull'argomento. Technorati Tag: .NET,Programming

posted @ venerdì 18 aprile 2008 11:44 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Un aggiornamento per Sandcastle

Giornata di annunci... A quanto pare una nuova versione di Sandcastle è dietro l'angolo e dovrebbe essere rilasciata entro la fine del mese, come annunciato qui. Questa release sarà utilizzata per generare la documentazione di Visual Studio 2008 SP1 che sarà pubblicata su MSDN. Technorati Tag: .NET,Visual Studio,Tools,Updates,C#,VB .NET,ASP .NET,ADO .NET

posted @ giovedì 17 aprile 2008 16:55 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

Unity Application Block

Microsoft patterns & practices is excited to announce the latest addition to the p&p library of software architecture guidance: Unity Application Block April 2008 Release (1.0)    Resources ·    MSDN site: http://msdn2.microsoft.com/en-us/library/cc468366.aspx ·   Community Forum: http://codeplex.com/unity Maggiori dettagli sono disponibili qui. Technorati Tags: .NET, Programming

posted @ lunedì 7 aprile 2008 12:35 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Motion Detection in C#

Mentre stavo cercando una libreria .NET con funzionalità grafiche, sono incappato in un link ad un progetto di CodeProject chiamato Motion Detection Algorithms. Esso mostra come realizzare un'applicazione C# in grado di rilevare il movimento in uno stream continuo. Per un attimo, mi sono venute in mente alcune utility carine che si potrebbero realizzare... Magari ve ne parlerò in uno dei prossimi post . Technorati Tags: .NET, Programming, C#

posted @ lunedì 17 marzo 2008 16:06 | Feedback (1) | Filed Under [ C# ]

[70-549] Errata corrige #3, un altro copia/incolla di troppo?

Ancora il quick-check a pagina 212 del Self-Paced Training Kit per l'esame 70-549... La domanda 2 chiede quali modificatori possono essere utilizzati per specificare il tipo di ereditarietà supportato da una classe base. La risposta è completamente sbagliata. Innanzi tutto, si parla di NotOverridable/sealed e MustOverride/abstract. I modificatori C# sono corretti, mentre quelli che, secondo il testo, si possono applicare alla dichiarazione di una classe VB .NET, in realtà sono utilizzati per metodi e proprietà; nel caso di classi, invece, i modificatori corretti sono, rispettivamente, NotInheritable e MustInherit. Penso che l'errore sia dovuto al fatto che in C# si utilizzano sealed...

posted @ giovedì 13 marzo 2008 22:00 | Feedback (0) | Filed Under [ C# VB .NET Certificazioni ]

Visual Studio 2005 Team System Database Professional Post Service Release 1 Rollup Package 1

Un nome lunghissimo per un aggiornamento di 9,45 MB, disponibile qui. In questo articolo della Knowldge Base sono elencate tutte le correzioni effettuate. Fonte: Developer hearted / Relational minded blog Technorati Tag: .NET,Programming,Visual Studio,Updates

posted @ mercoledì 12 marzo 2008 18:29 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Updates & Service Pack ]

[70-549] Errata corrige #1

Ecco un errore del Self-Paced Training Kit per l'esame 70-549... Il quick-check a pagina 212 chiede, tra le altre cose, quali modificatori possono essere specificati su proprietà, metodi e classi per consentire l'overriding. Nella risposta sono correttamente elencati Overridable/virtual e Overrides/ovveride. Tuttavia, nel capitolo non si fa alcuna menzone di tali modificatori, e il quick-check dovrebbe essere un modo per verificare velocemente se gli argomenti trattati nella pagine precedenti sono stati compresi... Come si fa a comprendere qualcosa di cui non si parla? Technorati Tag: Certification,.NET,Programming,C#,VB .NET

posted @ domenica 9 marzo 2008 14:54 | Feedback (0) | Filed Under [ C# VB .NET Certificazioni ]

Dietro le quinte delle proprietà automatiche di Visual Studio 2008

Tempo fa avevo già parlato della sintassi abbreviata per la definizione delle proprietà in C# con Visual Studio 2008. Oggi ho provato ad utilizzare Reflector per vedere il codice che di fatto viene generato a tempo di compilazione quando si utilizza questa feature. Partendo dalla seguente classe:   public class TestClass { public int MyProperty { get; set; } } Quello che si ottiene è:   public class TestClass { // Fields [CompilerGenerated] private int <MyProperty>k__BackingField; // Properties public int MyProperty { ...

posted @ martedì 4 marzo 2008 11:40 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 ]

SharpUpnp 1.0 rilasciato

Come promesso, pochi minuti fa ho rilasciato su CodePlex la versione 1.0 di SharpUpnp. Nella sezione Release potete trovare la libreria, la documentazione e tutti i sorgenti del progetto. Fino adesso ho ricevuto diversi feedback positivi, quindi mi piacerebbe provare a pubblicizzare maggiormente la libreria... Mi date qualche idea su come fare? Technorati Tags: .NET, Programming, C#, CodePlex

posted @ giovedì 7 febbraio 2008 00:14 | Feedback (10) | Filed Under [ C# CodePlex ]

Ridefinire i metodi statici

Questo è il titolo, volutamente provocatorio, di un post pubblicato sul blog di Kirill Osenkov. Le cose dette non sono niente di nuovo, ma è comunque utile avere a disposizione una piccola reference su questo argomento. Technorati Tags: .NET, Programming, C#

posted @ mercoledì 6 febbraio 2008 13:51 | Feedback (1) | Filed Under [ C# ]

A breve la release 1.0 di SharpUpnp

Finalmente ho trovato il tempo per terminare la versione 1.0 di SharpUpnp. Ancora qualche giorno per scrivere la documentazione e il rilascio è pronto! Stay tuned, miei cari 25 lettori... Technorati Tags: .NET, Programming, C#, CodePlex

posted @ martedì 5 febbraio 2008 18:35 | Feedback (2) | Filed Under [ C# CodePlex ]

MSDN Code Gallery

A questo indirizzo è possibile raggiungere la nuova MSDN Code Gallery, una grande raccolta di esempi di codice e documentazione tecnica dedicata a .NET, a cui chiunque può contribuire inviando nuove risorse. Lo stile e l'interfaccia grafica del portale ricalcano molto da vicino quelli di CodePlex. Technorati tags: .NET, Programming, C#, VB .NET, ASP .NET, ADO .NET, .NET Compact Framework, .NET Micro Framework, LINQ, Silverlight

posted @ giovedì 31 gennaio 2008 14:57 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Silverlight ]

eBook su C# 3.0

In questo post sono disponibili i link per scaricare un eBook di 519 pagine che contiene tutte le specifiche di C# 3.0 e una "versione ridotta" di sole 30 pagine, dedicata esclusivamente alla novità di questa versione. Technorati tags: .NET, C#

posted @ lunedì 28 gennaio 2008 12:51 | Feedback (1) | Filed Under [ C# Orcas & .NET 3.5 ]

Un link per chi documenta il proprio codice in XML

Documentare le proprie class library utlizzando l'XML è un'attività tutt'altro che banale: sebbene Visual Studio proponga in automatico lo scheletro del commento di un metodo/proprietà, esistono numerosi tag XML che possono essere utilizzati per la scrittura di documentazione (ad esempio <exception>, <example>, <code>, <remarks>). In questo articolo di MSDN Magazine è presentato un breve riassunto dei principali tag XML disponibili per la scrittura della documentazione. Technorati Tag: Visual Studio,.NET,C#

posted @ lunedì 21 gennaio 2008 22:50 | Feedback (2) | Filed Under [ C# ]

Rilasciata la nuova versione di Sandcastle

Con questo post viene annunciato il rilascio della nuova release di Sandcastle, che è identificata dal numero di versione 2.4.10115. Come era stato promesso qualche giorno fa, il progetto è ora disponibile su CodePlex. Technorati Tags: Visual Studio, Tools, Updates

posted @ mercoledì 16 gennaio 2008 10:53 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

Un nuovo modo per proteggere le applicazioni .NET

In questo post Alessandro Del Sole ci segnala un articolo, scritto dal grande Francesco Balena, che illustra una nuova tecnica per progettere gli assembly .NET dalla decompilazione, senza utilizzare strumenti di terze parti. Io l'ho letto tutto d'un fiato e non vedo l'ora di fare qualche esperimento Grazie Alessandro, grazie Francesco! Technorati Tags: .NET, Programming

posted @ martedì 15 gennaio 2008 10:25 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

Presto Sandcastle su CodePlex

Stando a quanto annunciato in questo post, presto Sandcastle verrà pubblicato su CodePlex. L'indirizzo a cui raggiungere il progetto è http://www.codeplex.com/Sandcastle, ma in questo momento non è ancora stato pubblicato. Technorati Tags: .NET, CodePlex, Tools

posted @ giovedì 10 gennaio 2008 11:16 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Lavori in corso per l'Enterprise Library 4.0

Come si può leggere in questo post, da qualche tempo è cominciato lo sviluppo della Enterprise Library 4.0. In particolare, in questa pagina è disponibile l'EntLib V4 Product Backlog, in cui sono annunciate le principali novità previste per la nuova versione, a cominciare dal pieno supporto per Visual Studio 2008. Technorati Tags: .NET, Programming, Tools, Updates, Visual Studio

posted @ mercoledì 9 gennaio 2008 10:30 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

[70-529] Errata corrige #9

Gli esempi di codice a pagina 144 del Self-Paced Training Kit per l'esame 70-529 sono sbagliati. In questa pagina, infatti, è mostrato l'utilizzo degli operatori GetType in VB .NET e typeof in C# come se essi accettassero, come secondo parametro, un'espressione nella forma Version=1.0.0.0, con cui si può specificare la versione dell'oggetto di cui recuperare il tipo, nel caso in cui ne siano disponibili più di una. In realtà, come si può leggere su MSDN, entrambi gli operatori accettano un solo argomento che raprresenta il tipo con cui si vuole lavorare. Technorati Tags: Certification, .NET, Programming

posted @ lunedì 7 gennaio 2008 15:04 | Feedback (0) | Filed Under [ C# VB .NET Certificazioni ]

Applicazioni Peer-to-Peer in .NET 3.5

Contrordine... Mi lascio un appunto qui, così l'anno nuovo so già a cosa dovrò lavorare . Mi sto riferendo ai nuovi oggetti forniti dal .NET Framework 3.5 per la gestione di applicazioni Peer-to-Peer: in particolare, PeerName, PeerNameRegistration e PeerNameResolver, contenuti nel namespace System.Net.PeerToPeer. Grazie ad essi, realizzare applicazioni Peer-to-Peer è di una semplicità sconcertante. Ad esempio, il seguente codice pubblica un nuovo peer: 1 // Creates a secured PeerName. 2 PeerName peerName = new PeerName("MyPeerNode", PeerNameType.Secured); 3 4 PeerNameRegistration pnReg = new PeerNameRegistration(peerName, 4567, Cloud.Global); 5 pnReg.UseAutoEndPointSelection = true; 6 pnReg.Comment = "up to 39 unicode char comment"; 7 pnReg.Data...

posted @ domenica 30 dicembre 2007 11:33 | Feedback (2) | Filed Under [ C# Orcas & .NET 3.5 ]

Effettuare il Join di due DataTable

Qualche giorno fa ho avuto la necessità di effettuare il join di due DataTable, risultato di interrogazioni su due database differenti, per produrre un unico DataTable da mostrare in un controllo DataGridView. Le due tabelle dovevano essere unite sulla base di un campo ID, secondo l'usuale relazione di chiave-chiave esterna. Mi sono così definito una procedura per eseguire l'operazione: private void Join(DataTable mainTable, string mainRowField, string parentRowField, DataRelation relation) { //Controlla se la tabella contiene la colonna in cui aggiungere i risultati del join. if (!mainTable.Columns.Contains(mainRowField)) mainTable.Columns.Add(mainRowField); ...

posted @ sabato 29 dicembre 2007 17:02 | Feedback (1) | Filed Under [ C# ADO .NET & SQL ]

Determinare quando è disponibile una connessione a Internet

Ormai sono lanciato nella realizzazione di classi di supporto per la gestione della rete. Dopo NetworkChange2, oggi è la volta di una classe che consente di sapere se il PC è collegato a Internet oppure no, nonché di ricevere notifiche se lo stato della connessione cambia: 1 using System; 2 using System.ComponentModel; 3 using System.Threading; 4 using System.Net; 5 6 namespace System.Net.NetworkInformation 7 { 8 public delegate void InternetAvailabilityChangedEventHandler(object sender, InternetAvailabilityEventArgs e); 9 10 public static...

posted @ sabato 29 dicembre 2007 15:31 | Feedback (0) | Filed Under [ C# ]

Signori e signore... Vi presento SharpUPnP!

Finalmente, durante queste vacanze di Natale, ho trovato del tempo da dedicare ad un progetto che mi rimbalzava in testa già da un po'... Ovvero una liberia che fornisse funzionalità UPnP alle applicazioni .NET. In giro avevo già trovato qualcosa del genere, ma niente che rispondesse in pieno alle mie esigenze. In particolare, quello di cui avevo bisogno erano dei metodi per realizzare sistemi di NAT traversal  (che dovrebbero essere alla base di un'altra applicazione che sto progettando... Ma questa è un'altra storia ). E' così nato il progetto SharpUPnP, che nei giorni scorsi ho pubblicato su CodePlex. Al momento è...

posted @ venerdì 28 dicembre 2007 12:18 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 CodePlex ]

Sapere quando è disponibile una connessione di rete

Il .NET Framework 2.0 offre due classi che consentono di sapere se una connessione di rete è disponibile e di ricevere notifiche quando lo stato della connessione cambia: si tratta rispettivamente di NetworkInterface e NetworkChange, entrambe contenute nel namespace System.Net.NetworkInformation. In particolare, NetworkChange è una classe statica che espone un metoodo di nome NetworkAvailabilityChanged, che viene generato quando lo stato della connessione cambia da non disponibile a disponibile, e viceversa. Il problema di questa classe (se così si può chiamare) è che l'evento NetworkAvailabilityChanged viene generato in un thread secondario, quindi se si cerca di aggiornare l'interfaccia utente nell'handler di...

posted @ giovedì 27 dicembre 2007 01:39 | Feedback (1) | Filed Under [ C# ]

MSDN Magazine di Gennaio 2008

Neanche la vacanze di Natale fermano gli autori di MSDN Magazine: da pochi giorni è disponibile online l'edizione di Gennaio 2008. Anche questo numero ha un chiaro orientamento verso lo sviluppo Web (a me è subito caduto l'occhio sull'articolo Drag and Drop with ASP.NET AJAX). Fate clic qui per accedere all'edizione inglese, oppure qui per quella italiana. Technorati tags: .NET, Programming, CS, VB .NET, ASP .NET, AJAX, Silverlight

posted @ mercoledì 26 dicembre 2007 13:04 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Bug fix per il Krypton Toolkit

A quanto pare la versione 2.7.0 del Krypton Toolkit, rilasciata pochi giorni fa, era affetta da un bug abbastanza grave, come mi è stato comunicato via mail: The initial release has a nasty exception that occurs when showing a KryptonContextMenu when the OS is setup to show sub menus immediately. Per risolvere al problema è stata prontamente rilasciata la release 2.7.1, che può essere scaricata facendo clic qui. Technorati tags: Visual Studio, Tools, Updates

posted @ lunedì 24 dicembre 2007 14:15 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

Nuova versione di Vista Controls for .NET 2.0

Per chi non lo conoscesse, il mio progeto Vista Controls for .NET 2.0, avviato su CodePlex poco meno di un annetto fa, ha come obiettvo quello di realizzare una serie di controlli per Windows Forms che riproducono il look and feel dei nuovi oggetti dell'interfaccia grafica di Windows Vista, come i pulsanti con l'icona dello scudo, le caselle di testo con il cosiddetto cue banner, ecc. Recentemente, grazie al contributo di Lorenz Cuno Klopfenstein, la libreria è giunta alla versione 1.2, in cui, tra le altre cose, sono state aggiunte una nuova classe per il compositing DWM e gli effetti...

posted @ domenica 23 dicembre 2007 16:00 | Feedback (0) | Filed Under [ C# CodePlex ]

Tutte le correzioni del Service Pack 1 del .NET Framework 2.0

In questa pagina della Knowledge Base di Microsoft è disponibile la lunga serie di problemi che sono stati risolti con il Service Pack 1 del .NET Framework 2.0. Per la precisione, si tratta di ben 161 fix, di ognuno dei quali è riportato il link alla pagina di descrizione. Technorati Tags: .NET,Updates

posted @ venerdì 21 dicembre 2007 13:00 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Updates & Service Pack ]

DataObject, DataObjectMethod e DataObjectField

Negli ultimi giorni ho utilizzato il wizard per la creazione di un ObjectDataSource. Nella prima schermata, dove vengono mostrati gli oggetti che si possono utilizzare come sorgente, c'è una casella di nome Show only data components, di cui ignoravo il significato. Questa mattina, mentre cercavo tutt'altro, ho capito a cosa serve: si tratta di una funzione che ha che fare con gli attributi DataObject, DataObjectMethod e DataObjectField. Questi sono una sorta di "aiuti" per il wizard: grazie ad essi, infatti, la procedura guidata è in grado di proporre automaticamente le scelte più corrette per la definizione dell'ObjectDataSource. Mi spiego meglio....

posted @ giovedì 20 dicembre 2007 23:15 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ASP .NET ]

Rilasciato Krypton Toolkit versione 2.7.0

Oggi è stata rilasciata la versione 2.7.0 del Krypton Toolkit, un insieme di controlli per la realizzazione di interfacce grafice in stile Office 2007. In questa release sono stati aggiunti numerosi nuovi controlli: KryptonTextBox KryptonMaskedTextBox KryptonRichTextBox KryptonComboBox KryptonContextMenu Ribbon Application Menu Navigator/Ribbon use of KryptonContextMenu Per il download, fare clic qui. Technorati tags: Visual Studio, Tools, Updates

posted @ mercoledì 19 dicembre 2007 14:46 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

Inserire un valore null in un campo datetime di SQL Server

L'applicazione che sto sviluppando recupera una serie di informazioni da una base di dati, comprese alcune date. Poiché i campi datetime nel database ammettono il valore null, per manipolare le date utilizzo il tipo Nullable<DateTime>, grazie al quale riesco facilmente a capire se nessuna data è stata specificata nella base di dati. Questo sistema ha però un problema. Supponiamo di dover aggiornare un campo datetime, inserendo al suo interno il valore null. Se io creo un oggetto SqlParameter di tipo SqlDbType.DateTime (con il parametro chiamato @dataScandenza) e imposto la sua proprietà Value su null, andando ad eseguire il metodo SqlCommand.ExecuteNonQuery...

posted @ sabato 15 dicembre 2007 13:31 | Feedback (5) | Filed Under [ C# ADO .NET & SQL SQL Server ]

[70-529] Errata corrige #5

Altro errore di codice nel Self-Paced Training Kit per l'esame 70-529. Omai sono sicuro che si tratti di discriminazione... In questo post avevo segnalato gli errori in in due listati C#, mentre il corrispondente in VB .NET era corretto. E la stessa cosa accede a pagina 95; nel codice C# viene fatto questo controllo:  if (Session["UserID"] != null) Tuttavia, nel corpo dell'if si aggiunge alla Session un oggetto con chiave UserID , invece si recuperarlo. Un'occhiata alla versione VB .NET chiarisce ogni dubbio: prima di aggiungere l'oggetto alla sessione, bisogna verificare che Session["UserID"] sia uguale a null, e non diverso Ma cosa vi ha fatto...

posted @ venerdì 14 dicembre 2007 14:56 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Certificazioni ]

Selezionare tutto il corpo di un metodo

Magari è una cosa risaputa, ma io l'ho scoperto solo oggi per puro caso: per selezionare tutto il corpo di un metodo nell'editor di Visual Studio, basta fare doppio clic in un punto qualsiasi a sinistra del metodo stesso (per capirci, nello spazio della finestra in cui il puntatore del mouse "cambia orientamento" passando ad indicare verso destra). Technorati Tag: Visual Studio

posted @ giovedì 13 dicembre 2007 15:24 | Feedback (2) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

Un correttore ortografico per Visual Studio

Mikhail Arkhipov ha realizzato un add-in per Visual Studio 2005/2008 che aggiunge un correttore ortografico all'editor dell'ambiente di sviluppo. Il tool supporta i linguaggi HTML, ASP.NET, JScript, VB, C#, CSS and C++ ed è in grado di segnalare gli errori presenti nei commenti, scritti in uno qualunque dei seguenti formati: HTML style comments <-- HTML --> ASP.NET server side comments: <%-- ASP.NET --%> JScript, C# and C++ comments: // C++ style comments CSS and C style comments: /* C style comments */ ...

posted @ giovedì 13 dicembre 2007 12:52 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Utilizzare gli extension methods anche con .NET 2.0

Il post di ieri di Daniele Mantovani mi ha fatto nascere un dubbio: dal momento che il Common Language Runtime del .NET Framework 3.5 è lo stesso della versione precedente e che gli extension methods sono semplicemente "zucchero sintattico", c'è un modo per utilizzarli anche con i progetti indirizzati a .NET 2.0? La risposta è... sì, è possibile! Vediamo come fare. Creiamo un progetto .NET 2.0 con Visual Studio 2008 e definiamo la seguente classe: 1 using System; 2 using System.Text; 3 4 namespace ExtensionMethods 5 { 6 public static class Utils 7 ...

posted @ domenica 9 dicembre 2007 12:57 | Feedback (7) | Filed Under [ C# Orcas & .NET 3.5 ]

[70-529] Ufficio complicazioni affari semplici

A pagina 50 e seguenti del Self-Paced Training Kit per l'esame 70-529 si parla di come utilizzare le classi del namespace System.Xml.Serialization per modificare il modo in cui un oggetto viene serializzato in formato XML. Viene spiegato, ad esempio, come cambiare il nome di un campo. Per esemplificare i concetti si utilizza la seguente classe: public class Vendor { public int VendorID; public string AccountNumber; public string Name; } Nel testo vengono mostrati i passaggi necessari per fare in modo che il campo AccountNumber di un oggetto Vendor serializzato in XML venga automaticamente...

posted @ venerdì 7 dicembre 2007 00:09 | Feedback (0) | Filed Under [ C# Certificazioni ]

Hotfix per Visual Studio 2005 SP1

E' stato rilasciato un aggiornamento per Visual Studio 2005 SP1 che risolve un problema a causa del quale l'IDE potrebbe bloccarsi durante la scrittura di commenti XML. A questo indirizzo, oltre al link per il download, è mostrata la procedura con cui riprodurre l'errore. Technorati Tags: Visual Studio, Updates

posted @ giovedì 29 novembre 2007 12:04 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Updates & Service Pack ]

Velocità dell'hard disk e prestazioni di Visual Studio 2005

In questo post viene spiegato come la velocità del disco rigido influenza le prestazioni di Visual Studio 2005. Sono anche fornite alcune raccomandazioni sulle velocità consigliate per gli hard disk dei PC fissi e portatili, oltre ad una serie di link che spiegano come migliorare le prestazioni dell'ambiente di sviluppo. Technorati Tag: Visual Studio

posted @ martedì 27 novembre 2007 17:39 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 ]

Visual Studio 2008 Training Kit

Sul blog di MSDN Italia viene annunciata la disponibilità di un training kit per Visual Studio 2008, comprendente materiale per un corso di 5 giorni che tocca le seguenti tecnologie: LINQ, C# 3.0, VB 9, WCF, WF, WPF, Windows CardSpace, Silverlight, ASP.NET Ajax, .NET Compact Framework 3.5, VSTO 3.0, Visual Studio Team System, e Team Foundation Server. Io vado subito a darci un'occhiata Technorati tags: Visual Studio, .NET, CS, VB .NET, ASP .NET, AJAX, .NET Compact Framework, Silverlight, Team Foundation Server

posted @ giovedì 22 novembre 2007 13:03 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ASP .NET Orcas & .NET 3.5 Team Foundation Server Silverlight ]

Un problema con l'installazione dei Web Services Enhancements 3.0

Questa mattina ho installato i Web Services Enhancements 3.0. La procedura sembrava andata a buon fine, tuttavia nel menu contestuale accessibile facendo un clic destro sul nome di un progetto nel Solution Explorer di Visual Studio 2005 il comando WSE Settings 3.0 non era apparso. Ho così fatto una ricerca su Internet e sono giunto a questo post di Marco De Sanctis, che spiega la causa e la soluzione del problema. Grazie Marco! Technorati tags: Visual Studio, Web Services

posted @ sabato 17 novembre 2007 14:40 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET ]

Il tipo di UnhandledExceptionEventArgs.ExceptionObject

Non ci avevo fatto caso, ma oggi ho notato che la proprietà UnhandledExceptionEventArgs.ExceptionObject è di tipo Object e non Exception. Incuriosito, ho fatto una ricerca con Google e ho trovato questo post di MSDN che spiega l'arcano: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=311431&SiteID=1. Technorati Tags: .NET, Programming

posted @ lunedì 12 novembre 2007 11:32 | Feedback (0) | Filed Under [ C# VB .NET ]

Una riflessione sull'evoluzione del .NET Framework

Come tutti sappiamo, quando Microsoft ha progettato il .NET Framework 3.0, lo ha rilasciato come "estensione" del .NET Framework 2.0: quello che già c'era non è stato modificato, sono solo stati aggiunti nuovi namespace e, quindi, nuove classi. E la stessa cosa accade con il .NET Framework 3.5, che si colloca al di sopra delle versioni precedenti, senza cambiarle (a parte gli aggiornamenti contenuti nei Service Pack). Questo modo di procedere è necessario per garantire la compatibiltà con le applicazioni esistenti, tuttavia sta portando ad una sorta di "effetto cipolla": ogni nuovo rilascio aggiunge uno strato a quelli già esistenti. Non...

posted @ giovedì 8 novembre 2007 09:59 | Feedback (3) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

C# 3.0 e la parola chiave "var"

Una delle prime cose che ho "scoperto" provando il .NET Framework 3.5 è stata la parola chiave var di C#. Ad essa sono già stati dedicati innumerevoli post, ma voglio comunque citare questo articolo, in cui si dice che cosa non si può fare con var: Things to remember, Ø       var cannot be used as public property/field Ø       var cannot be a return type of any method Technorati Tags: .NET, CS

posted @ martedì 6 novembre 2007 10:26 | Feedback (0) | Filed Under [ C# Orcas & .NET 3.5 ]

Rilasciata la CTP di Ottobre 2007 di Sandcastle

E' stata rilasciata la nuova CTP di Ottobre 2007 di Sandcastle, che può essere scaricata facendo clic qui. La lista delle novità introdotte è troppo lunga per essere inserita in questo post, quindi vi rimando all'annuncio ufficiale per tutti i dettagli. Technorati tags: Tools, Updates

posted @ martedì 30 ottobre 2007 15:07 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 Updates & Service Pack ]

Gestire i Thread Pool in Windows Vista e Windows Server 2008

Su MSDN Magazine di Ottobre 2007 è stato pubblicato un articolo che illustra le nuove caratteristiche delle API di Windows Vista e Windows Server 2008 per la gestione dei pool di thread. Technorati tags: Windows, Programming

posted @ lunedì 29 ottobre 2007 16:15 | Feedback (0) | Filed Under [ C# VB .NET Windows Related ]

Versione finale delle Windows Vista User Experience Guidelines

Sembra che finalmente Microsoft abbia completato il documento in cui illustra le linee guida per la realizzazione di interfacce grafiche conformi ai nuovi canoni introdotti con Windows Vista. Le nuove Windows Vista User Experience Guidelines sono disponibili a questo indirizzo. Se lo si preferisce, è anche possibile scaricare tutte le linee guida in un unico file PDF di ben 33.8 MB, per un ammontare di più di 750 pagine. Technorati tags: Windows, Programming

posted @ lunedì 29 ottobre 2007 13:56 | Feedback (0) | Filed Under [ C# VB .NET Windows Related ]

Add-In per tutti i gusti

A questo indirizzo è disponibile una raccolta di 15 add-in gratuiti per Visual Studio. Nei commenti al post, inoltre, vari utenti hanno segnalato altri tool anch'essi molto interessanti. Technorati Tags: Visual Studio, Tools

posted @ mercoledì 3 ottobre 2007 12:50 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

[70-528] Cross Site Scripting ed encoding delle stringhe

Quando vengono presentati i Web Controls nel Self-Paced Training Kit dell'esame 70-528, si parla dei rischi del Cross Site Scripting. Per fare una prova, ho inserito in una TextBox il seguente contenuto: <script>altert("Ciao");</script> Effettuando il post della pagina (attraverso la pressione di un pulsante), ho ottenuto il seguente messaggio di errore di ASP .NET: A potentially dangerous Request.Form value was detected from the client (TextBox1="<script>altert("Ciao...").Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack....

posted @ lunedì 24 settembre 2007 19:09 | Feedback (32) | Filed Under [ C# ASP .NET Certificazioni ]

[70-528] Oggetto Button ed evento Command

A pagina 84 del Self-Paced Training Kit dell'esame 70-528 di parla dell'oggetto Button (System.Web.UI.WebControls.Button). In particolare, si dice che un pulsante può essere un tradizionale submit button (che è l'impostazione di default), oppure un pulsante di comando. Per creare un Button di quest'ultimo tipo, è necessario impostare le sue proprietà CommandName e CommandArgument. Tuttavia, nel testo manca un passaggio fondamentale: dopo aver settato questa proprietà, si deve gestire l'evento Command e usare le proprietà dell'oggetto CommandEventArgs per sapere qual è il comando da eseguire ed, eventualmente, gli argomenti ad esso associati. Ad esempio, supponiamo che nella pagina ASPX siano stati...

posted @ domenica 23 settembre 2007 14:31 | Feedback (0) | Filed Under [ C# ASP .NET Certificazioni ]

DataAdapter e apertura della connessione

I DbDataAdapter di .NET si basano su oggetti di tipo DbCommand per selezionare, aggiornare, aggiungere ed eliminare le informazioni dalla base di dati sottostante. Gli oggetti DbCommand, a loro volta, mantengono un riferimento alla DbConnection che corrisponde all'origine dati in questione. Tale connessione non deve necessariamente essere aperta prima di richiamare i metodi del DbDataAdapter: nel caso in cui sia chiusa quando si eseguono i metodi del DbDataAdapter, viene aperta automaticamente, per poi essere richiusa al termine dell'operazione. E' possibile verificare questo comportamento con un semplice esempio. Consideriamo il seguente stralcio di codice: 1 SqlConnection db = new...

posted @ sabato 22 settembre 2007 14:30 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ASP .NET ]

[70-526] Errata corrige "Special" #10

Ormai sembra una barzelletta, ma per fortuna gli errori sono quasi finiti... Una domanda del quiz di autovalutazione dell'esame 70-526 spiega che si vuole visualizzare una ProgressBar con cui informare l'utente sull'avanzamento di una certa operazione in backgruond. La domanda chiede qual è il modo migliore per realizzare questa funzionalità. La risposta segnalata come valida dice di creare all'interno di un Form un Timer che scatta ogni secondo; nel gestore dell'evento Tick si deve richiamare il metodo BackgruondWorker.ProgressChanged ed esaminare il valore di ritorno per aggiornare la barra. In questo risposta ci sono almeno due errori. Il primo è che...

posted @ mercoledì 19 settembre 2007 15:58 | Feedback (0) | Filed Under [ C# ]

Le novità di Sandcastle

Qualche giorno fa ho parlato dell'imminente rilascio della CTP di settembre di Sandcastle. In attesa di poter mettere le mani sulla nuova release, in questa pagina è stata pubblicata la lista delle principali novità che vi troveremo. Technorati Tag: Tools , Visual Studio , .NET , Updates

posted @ mercoledì 19 settembre 2007 11:48 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Aggiungere uno UniqueConstraint ad un DataTable

L'oggetto DataTable dispone della proprietà Constraints, con cui si possono specificare i vincoli di unicità (UniqueConstraint) e di chiave esterna (ForeingKeyConstraint) per la tabella. Ma nel caso in cui si voglia definire un vincolo unique, è possibile evitare la creazione di un oggetto di tipo UniqueConstraint semplicemente impostando a true la proprietà Unique della DataColumn relativa: così facendo, lo UniqueConstraint su quella colonna viene aggiunto automaticamente. In altre parole, i seguenti stralci di codice sono equivalenti: DataTable dt = new DataTable(); DataColumn id = new DataColumn("Id", typeof(int)); dt.Columns.Add(id); UniqueConstraint unique = new UniqueConstraint(id); dt.Constraints.Add(unique); e DataTable dt = new DataTable(); DataColumn id = new DataColumn("Id", typeof(int)); id.Unique...

posted @ martedì 18 settembre 2007 16:37 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ]

Tra poco una nuova release di Sandcastle

Come si può leggere in questo post, la prossima settimana sarà rilasciata una nuova versione di Sandcastle, la stessa che verrà utilizzata per produrre la documentazione del .NET Framework 3.5 nella versione finale di Visual Studio 2008. Queste le principali novità: Tools that we are using to ship Orcas RTM and Framework documentation A CHM Builder tool for documenting CHM. Look for my blog about this tool. New exciting features to VS 2005 design. This design will have features from Hana document model New Powershell script to document your APIs. This will be shipped...

posted @ mercoledì 12 settembre 2007 15:53 | Feedback (1) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Nuovo aggiornamento per il Krypton Toolkit

Un altro aggiornamento per il Krypton Toolkit, che giunge alla versione 2.6.1. Oltre a risolvere alcuni bug riscontrati con la release precedente, sono stati aggiunti alcuni nuovi controlli: KryptonDataGridViewTextBoxColumn KryptonDataGridViewCheckBoxColumn KryptonDataGridViewButtonColumn KryptonDataGridViewLinkColumn Per il download, fate clic qui. Technorati Tags: Programming, Updates

posted @ lunedì 10 settembre 2007 14:50 | Feedback (3) | Filed Under [ C# VB .NET ]

Un add-in per navigare tra i commenti del codice

Visual Studio already had the ability to recognize and quickly navigate (with Ctrl LeftClick) to URLs embedded in the comments of the code. This is great, but what is really needed is a way of referring quickly and easily from one part of the code to another part of the code (or to architectural documents checked in with the code). That is exactly what the HyperAddin does: It makes creating and following hyper-links in your code trivial. Now you only have to explain something once in a comment and refer to it many times (got lots of overloaded...

posted @ venerdì 7 settembre 2007 16:05 | Feedback (6) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Un aggiornamento su Windows Installer 4.5

Qualche giorno fa ho parlato della disponibilità della versione Beta di Windows Installer 4.5. Ieri il team di sviluppo ha effettuato un nuovo post sul proprio blog informando che la versione definitiva sarà rilasciata entro il primo quadrimestre del 2008. Technorati tags: Updates

posted @ domenica 2 settembre 2007 21:10 | Feedback (2) | Filed Under [ C# VB .NET Updates & Service Pack ]

[70-526] RichTextBox e Drag&Drop

L'ho scoperto per caso: se nella finestra delle Proprietà si visualizza la lista degli eventi supportati dal controllo RichTextBox, in essa non compaiono né DragEnter né DragDrop. Sembrerebbe quindi che questo oggetti non supporti il Drag&Drop. In realtà, questi eventi sono definiti anche per il RichTextBox, ma per qualche strana ragione non sono visualizzati in fase di progettazione, dunque possono essere impostati solo a runtime. Technorati tags: Certification, .NET, Programming

posted @ domenica 2 settembre 2007 14:55 | Feedback (0) | Filed Under [ C# VB .NET Certificazioni ]

Rilasciato Krypton Toolkit versione 2.6

Component Factory ha rilasciato la versione 2.6 del Krypton Toolkit. Queste le novità: Toolkit Change Highlights KryptonCheckBox control added KryptonRadioButton control added KryptonDataGridView control added ToolTips added for button specs Il download è disponibile qui. Technorati tags: Programming, Updates

posted @ venerdì 31 agosto 2007 14:03 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Windows Installer 4.5 beta

Come si legge qui, sul sito Microsoft Connect è disponibile la versione beta di Windows Installer 4.5. Prima di effettuare il download è necessario registrarsi, seguendo una procedura alwuanto macchinosa disponibile a questo indirizzo. Technorati tags: Programming, Updates

posted @ martedì 28 agosto 2007 14:21 | Feedback (7) | Filed Under [ C# VB .NET Updates & Service Pack ]

Rilasciato NUnit 2.4.2

Come si legge in questo post, da qualche giorno è stata rilasciata la versione 2.4.2 di NUnit. Le numerose novità introdotte sono riassunte qui. UPDATE 18/08/2007 ORE 13.47. Alberto Dellagiacoma mi ha fatto notare che è già stata rilasciata la versione 2.4.3, che può essere scaricata da questa pagina (l'elenco degli aggiornamenti è disponibile qui). Technorati tags: Tools, Updates

posted @ sabato 18 agosto 2007 14:21 | Feedback (2) | Filed Under [ C# VB .NET ]

[70-526] Recuperare il link di un controllo LinkLabel

Il controllo LinkLabel non espone una proprietà che consente di recuperare diretamente il testo del link visualizzato al suo interno. Per ottenere tale informazione, è necessario utilizzare la proprietà LinkArea, la quale specifica la porzione di testo che deve apparire "linkata". Nel caso in cui il recupero del testo del link sia un'operazione frequente, può essere utile creare un controllo che estende LinkLabel e vi aggiunge la proprietà mancante: using System; using System.ComponentModel; namespace System.Windows.Forms { public class LinkLabelEx : LinkLabel { [Browsable(false)] public...

posted @ lunedì 30 luglio 2007 21:10 | Feedback (1) | Filed Under [ C# Certificazioni ]

Using C# in C++ project with Visual Studio 2005

Io ho sempre fatto il contrario, ovvero ho sempre richiamato da C# le funzioni di una libreria scritta in C++ (tipicamente utilizzando il Platform Invoke), ma questo post spiega come è possibile realizzare il processo inverso.

posted @ mercoledì 25 luglio 2007 17:25 | Feedback (0) | Filed Under [ C# ]

Il LoaderLock di Visual Studio 2005

Tra le tante feature di Visual Studio 2005 dedicate al debug, ce n'è una che prende il nome di LoaderLock managed debugging assistant (MDA): The LoaderLock managed debugging assistant (MDA) detects attempts to execute managed code on a thread that holds the Microsoft Windows operating system loader lock. Any such execution is illegal because it can lead to deadlocks and to use of DLLs before they have been initialized by the operating system's loader. Se il LoaderLock individua una situazione come quella descritta, interrompe il programma lanciando un'eccezione con questo messaggio: Attempting managed execution inside OS Loader lock. Do not...

posted @ martedì 24 luglio 2007 12:16 | Feedback (0) | Filed Under [ C# VB .NET ]

Feedback sul Class Designer di Visual Studio

The Class Designer team is now looking for feedback on the product. This is your chance to help us identify key areas we should consider in future versions of the Class Designer. Con queste parole il team di Visual C++ chiede agli utenti di ripondere alle domande di una breve indagine sul Class Designer di Visual Studio, allo scopo di migliorarne le versioni future. Per accedere al questionario, fate clic qui.

posted @ martedì 24 luglio 2007 10:52 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Aggiornamento per Windows Vista Controls for .NET 2.0

Dopo un periodo di pausa, ho ripreso in mano il progetto Windows Vista Controls for .NET 2.0, dedicato alla realizzazione di controlli che riproducono l'aspetto degli oggetti tipici di Windows Vista. Ho così realizzato la versione 1.1 della libreria, le cui novità principali: L'aggiunta del controllo ComboBox con Cue banner; La correzione di diversi bug relativi al controllo TreeView. Dalla pagina del progetto è possibile scaricare sia i sorgenti sia la versione compilata della libreria, che è rilasciata con licenza Microsoft Community License (Ms-CL). Technorati Tags: CodePlex, Programming, .NET

posted @ sabato 21 luglio 2007 18:18 | Feedback (0) | Filed Under [ C# CodePlex ]

[70-536] Recuperare il proprietario di un file

Per recuperare il proprietario di un file o di una directory è necessario utilizzare, rispettivamente, gli oggetti FileSecurity e DirectorySecurity. La seguente routine consente di recuperare il nome del proprietario del file specificato: private static string Owner(string fileName) { FileSecurity fs = File.GetAccessControl(fileName); NTAccount acc = (NTAccount)fs.GetOwner(typeof(NTAccount)); return acc.Value; } Dopo aver ottenuto l'oggetto *Security corrispondente, viene creato un NTAccount che contiene il riferimento al proprietario del file. Technorati Tags: Certification, .NET, Programming, CS

posted @ martedì 17 luglio 2007 11:22 | Feedback (0) | Filed Under [ C# Certificazioni ]

Scrivere applicazioni Desktop e Mobile

Su MSDN Magazine di Luglio 2007 è stato pubblicato un articolo che spiega l'approccio da seguire per realizzare applicazioni che devono essere eseguite sia su PC desktop sia su palmari con Windows Mobile. Technorati Tags: .NET, .NET Compact Framework, Programming

posted @ sabato 14 luglio 2007 11:59 | Feedback (0) | Filed Under [ C# .NET Compact Framework Orcas & .NET 3.5 ]

[70-536] Utilizzare correttamente l'attributo PrincipalPermissionAttribute

Utilizzando opportunamente l'attributo PrincipalPermissionAttribute si può consentire l'esecuzione di un metodo solo agli utenti autenticati, a quelli che fanno parte di uno determinato gruppo, oppure ad un utente specifico. Ad esempio, per fare in modo che un metodo possa essere eseguito solo dagli utenti che appartengono al gruppo Admistrators della macchina locale, basta scrivere: [PrincipalPermission(SecurityAction.Demand, Role=@"BUILTIN\Administrators")] private static void AdministratorOnly() Perché questo codice funzioni, è necessario configurare la principal policy corrente in modo che si appoggi alle funzioni di sicurezza di Windows. In pratica, prima dell'esecuzione del metodo AdministratorOnly bisogna eseguire questa riga di codice: AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); Senza di essa, arrivando ad eseguire il metodo...

posted @ venerdì 6 luglio 2007 16:42 | Feedback (0) | Filed Under [ C# Certificazioni ]

[70-536] Recuperare le categorie di un Performance Counter

Per recuperare le categorie disponibili in un certo Performance Counter è possibile utilizzare il metodo PerformanceCounterCategory.ReadCategory, che restituisce un oggetto di tipo InstanceDataCollectionCollection (il nome è proprio questo, Collection è ripetuto due volte perché si tratta di una collezione di collezioni).  InstanceDataCollectionCollection non è altro che un dizionario tipizzato, quindi per visualizzare l'elenco dei performance counter disponibili in una certa categoria bisogna usare il seguente codice: PerformanceCounterCategory p = new PerformanceCounterCategory(".NET CLR Memory"); foreach (DictionaryEntry d in p.ReadCategory()) Console.WriteLine(((InstanceDataCollection)d.Value).CounterName);

posted @ mercoledì 4 luglio 2007 15:43 | Feedback (0) | Filed Under [ C# Certificazioni ]

Errore nella documentazione del metodo File.OpenWrite

Stando a quanto dice MSDN, il metodo File.OpenWrite apre un file esistente per la scrittura. Il file, dunque, deve esistere, come confermato anche dalla lista delle eccezioni che possono essere lanciate dal metodo: se il file non esiste, viene generata una FileNotFoundException. In realtà non è così: FileStream fs = File.OpenWrite(@"D:\Prova.txt"); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("Hello World!"); sw.Close(); fs.Close(); Se il file Prova.txt non esiste nell'unità D:, esso è creato automaticamente dal metodo File.OpenWrite, quindi il codice sopra riportato viene eseguito senza errori e produce il risultato atteso.

posted @ mercoledì 27 giugno 2007 17:41 | Feedback (0) | Filed Under [ C# VB .NET ]

Articoli sul Garbage Collector

In questo post sono disponibili i link a ben 20 articoli che parlano del Garbage Collector di .NET.

posted @ martedì 26 giugno 2007 10:51 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Rilasciato GhostDoc 2.1.0

E' stata rilasciata la nuova versione di GhostDoc, il tool in grado di generare automaticamente la documentazione XML per la classi .NET. Questa release include il supporto a VB .NET (seppure dichiarato sperimentale) ed è disponibile sia per Visual Studio 2005 sia per Visual Studio 2008 Beta 1. Maggiori informazioni sono disponibili sul blog dell'autore, mentre il download può essere effettuato da questa pagina.

posted @ lunedì 25 giugno 2007 18:30 | Feedback (0) | Filed Under [ C# VB .NET Orcas & .NET 3.5 Updates & Service Pack ]

Inserire dati XML in SQL Server 2005

Se si tenta di inserire via codice un file XML in un campo XML di SQL Server 2005, è possibile ottenere una SqlException contenente il seguente messaggio: XML parsing: line 1, character 38, unable to switch the encoding Il problema nasce dal fatto che, tipicamente, i file XML sono codificati in UTF-8, mentre SQL Server si aspetta di ricevere documenti in formato UTF-16. Per risolvere questo inconveniente ci sono diverse soluzioni. Quella che adotto io consiste nello specificare il flag Encoding.Unicode quando apro il file XML da inserire nel database: using (StreamReader sr = new StreamReader(filePath, Encoding.Unicode)) { cmd.Parameters.Add("@xmlData",...

posted @ lunedì 25 giugno 2007 12:04 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ]

ReSharper 3.0

E' stata rilasciata la versione 3.0 di ReSharper, uno dei più famosi add-in per Visual Studio. Questa release include il pieno supporto a Visual Basic .NET, XML e XAML, nonché funzionalità di code analysis per C#. Il programma è compatibile con Visual Studio 2005 SP1 e Visual Studio 2008 Beta 1 (in quest'ultimo caso il supporto è ancora sperimentale). Tutte le informazioni sul prodotto sono disponibili alla pagina http://www.jetbrains.com/resharper/index.html.

posted @ sabato 23 giugno 2007 17:04 | Feedback (0) | Filed Under [ C# VB .NET .NET 3.0 Orcas & .NET 3.5 ]

Sandcastle June 2007 CTP

Come anticipato un paio di giorni fa, è stata rilasciata la CTP di Giugno di Sandcastle. Queste le novità: New version of the CCI reflection engine. New presentation style and document model code named “VSORCAS”. Please see http://blogs.msdn.com/sandcastle/archive/2007/06/17/introducing-a-new-document-model-design-code-named-vsorcas.aspx. New ResolveReferenceLinks2 component replacing the existing ResolveReferenceLinks component. Added 2 new executables under production tools folder. They are SegregateByAssembly.exe and AggregateByNamespace.exe. These are used for building componentized assembly level HxS or CHM. I will blog more details about these in the coming weeks. Configure MrefBuilder to get dependencies from GAC. Please see changes to MrefBuilder.config file...

posted @ martedì 19 giugno 2007 15:16 | Feedback (1) | Filed Under [ C# VB .NET Tutto & Oltre :-) ]

Sandcastle June CTP

Stando a quanto detto in questo post, domani dovrebbe essere rilasciata la CTP di Giugno di Sandcastle. Tra le altre cose, questa versione include un gran numero di feature espressamente pensate per Visual Studio 2008. Maggiori dettagli sono disponibili nel post citato all'inizio.

posted @ domenica 17 giugno 2007 22:39 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

Scrolling di una ListView

Il controllo ListView non espone un evento che viene generato quando si effettua lo scrolling. La soluzione più elegante per definirlo consiste nell'estendere la ListView ed effettuare l'override del suo metodo WndProc per intercettare il messaggio WM_VSCROLL: using System; namespace System.Windows.Forms { public class ListViewEx : ListView { private const int WM_VSCROLL = 0x115; public event EventHandler Scroll; protected override void WndProc(ref Message m) { ...

posted @ lunedì 11 giugno 2007 17:59 | Feedback (0) | Filed Under [ C# ]

Ancora una variante del Ribbon per .NET

Su CodeProject è stata pubblicata un'altra implementazione del Ribbon di Office 2007. Ecco come si presenta l'applicazione di esempio (clicca per ingrandire): Il codice è scritto in C#, ma naturalmente, trattandosi di una class library, può essere utilizzato anche con Visual Basic. NET.

posted @ martedì 5 giugno 2007 10:22 | Feedback (0) | Filed Under [ C# VB .NET ]

I retaggi di Visual Basic 6

.NET offre due metodi per creare un seperatore all'interno di un menu in fase di esecuzione: menu.Items.Add("-")oppure menu.Items.Add(new ToolStripSeparator())Il primo metodo è un retaggio di Visual Basic 6 e versioni precedenti, in cui all'interno dell'editor di menu era necessario inserire un trattino per far comparire una riga di separazione tra le voci. Proveniendo da VB6, io ho sempre utilizzato il trattino, solo da poco mi sono "convertito" al ToolStripSeparator ..

posted @ domenica 3 giugno 2007 12:15 | Feedback (0) | Filed Under [ C# VB .NET ]

MessageBox sempre visibili

Se si tenta di visualizzare una MessageBox di un'applicazione che risiede nella system tray, può succedere che essa rimanga nascosta dalle altre finestre aperte sul desktop. Il problema è dovuto al fatto che la MessageBox appartiene ad un'applicazione che non è in foreground. Fortunamentamente, uno degli overload della funzione MessageBox.Show consente di specificare di fronte a quale finestra visualizzare il messaggio: il trucco, dunque, è visualizzare la MessageBox davanti alla finestra che attualmente è in primo piano. Innanzo tutto dobbiamo definire una classe che restituisce la finestra in primo piano:  public class ForegroundWindow : IWin32Window { private static ForegroundWindow _window...

posted @ sabato 2 giugno 2007 13:22 | Feedback (2) | Filed Under [ C# ]

L'importanza di essere espliciti

The explicit keyword declares a user-defined type conversion operator that must be invoked with a cast. Questa mi mancava... http://msdn2.microsoft.com/en-us/library/xhbhezf4(VS.80).aspx

posted @ venerdì 1 giugno 2007 15:58 | Feedback (0) | Filed Under [ C# ]

Private vs Friend

Oggi sono polemico ... Perché i controlli inseriti in una Form C# hanno la proprietà Modifiers impostata su Private nel caso di C# e su Friend (= Internal) in Visual Basic .NET? Ad ogni modo, anche in VB .NET il valore di default di tale proprietà è Private: infatti, cliccando su di essa con il tasto destro del mouse e selezionando il comando Reset, essa viene reimpostata su Private.

posted @ giovedì 31 maggio 2007 21:23 | Feedback (10) | Filed Under [ C# VB .NET ]

Bug di Visual Studio?

Ho notato un comportamento strano di Visual Studio. Nei Form C#, di default i controlli hanno la proprietà Modifies impostata su Private, quindi non sono modificabili dai form ereditati. Infatti, creando un form ereditato, se si seleziona un controllo del form padre che ha modificatore Private, tutte le sue proprietà, nella relativa finestra, appaiono disabilitate. Come è lecito aspettarsi, se nel padre si modifica la proprietà Modifiers del controllo, impostandola su Protected, nel figlio diventa possibile accedere a tutte le proprietà dell'oggetto. Proviamo però ad impostare Modifiers nel padre su Internal. Questo modificatore indica che l'oggetto è accessibile da ogni punto dell'assembly in cui è...

posted @ giovedì 31 maggio 2007 12:32 | Feedback (4) | Filed Under [ C# ]

Windows Vista User Experience Guidelines in PDF

Microsoft ha reso disponibile un file PDF di ben 627 pagine contenente le linee guida per la realizzazione di interfacce grafiche conformi allo stile di Windows Vista. Attenzione però se volete stamparlo, la documentazione è in uno stato preliminare, ad esempio per alcuni controlli sono riportate ancora le guidelines relative a Windows XP. Detto questo, il download è disponibile facendo clic qui.

posted @ martedì 29 maggio 2007 11:19 | Feedback (0) | Filed Under [ C# VB .NET Windows Related ]

Un'altra raccolta di icone

A questo indirizzo è disponibile una nutrita raccolta di icone di alta qualità. La maggior parte di esse è utilizzabile solo per uso personale, quindi leggete attentamente quanto riportato nei vari siti.

posted @ sabato 26 maggio 2007 13:06 | Feedback (1) | Filed Under [ C# VB .NET ]

BlogEngine.NET versione 1.0 definitiva

E' stata rilasciata la versione 1.0 definitiva di BlogEngine.NET, un motore di blogging realizzato in C# e disponibile su CodePlex. Una caratteristica molto interessante di questo sistema è che esso si basa interamente su XML, quindi non richiede il setup di database di appoggio e, di conseguenza, può essere utilizzato in qualunque spazio web con supporto ad ASP.NET. Il progetto è raggiungibile a questo indirizzo.

posted @ giovedì 24 maggio 2007 18:17 | Feedback (0) | Filed Under [ C# CodePlex ]

Enteprise Library 3.1 disponibile

Un altro aggiornamento per una news pubblicata ieri: la Enterprise Library 3.1 è già disponibile per il download a questo indirizzo.

posted @ mercoledì 23 maggio 2007 14:58 | Feedback (0) | Filed Under [ C# VB .NET ]

Enterprise Library 3.1 presto sui nostri schermi

Come si legge in questo post, è in sviluppo la versione 3.1 della Microsoft Enterprise Library. Si tratta di una versione di manutenzione che risolve alcuni problemi riscontrati con la release precedente. Queste le novità principali: Policy Injection Application Block The default Remoting Policy Injector can now be replaced with alternative interception mechanisms via configuration without modifying the application block code Call Handler attributes are now honored correctly when placed on interface methods Fixed an issue that could cause duplicate handlers where matching rules matched both a class and its interface Classes implementing COM interfaces (including...

posted @ martedì 22 maggio 2007 17:38 | Feedback (1) | Filed Under [ C# VB .NET ]

Visual Studio 2005 Team Suite VHD

A questo indirizzo è disponibile una virtual machine che permette di provare Visual Studio 2005 Team Suite in ambiente Windows Vista. Come sempre, la virtual machine funziona sia con Virtual PC sia con Virtual Server.

posted @ giovedì 17 maggio 2007 11:04 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ]

Utilizzare il protocollo SSH da .NET

Il .NET Framework non offre un supporto nativo al protocollo SSH. Fortunatamente, in rete si possono trovare diverse librerie che lo implentano. In questo momento sto provando SharpSSH, che è scritta in C#, è gratuita e distribuita con il codice sorgente. La documentazione è praticamente inesistente, ma gli esempi forniti illustrano tutte le principali caratteristiche della libreria.

posted @ mercoledì 16 maggio 2007 15:34 | Feedback (0) | Filed Under [ C# VB .NET ]

Aggiornamento del RibbonMenu

Recentemente su CodeProject, a questo indirizzo, è stata pubblicata una versione riveduta e corretta di una class library che consente di inserire Ribbon in stile Office 2007 nelle proprie applicazioni.

posted @ martedì 15 maggio 2007 13:15 | Feedback (0) | Filed Under [ C# ]

Versione finale di Internet Explorer Developer Toolbar

Come annunciato in questo post, è stata rilasciata la versione definitiva della Internet Explorer Developer Toolbar per i sistemi operativi Windows Server 2003, XP e Vista. Il download è disponibile qui.

posted @ sabato 12 maggio 2007 12:46 | Feedback (0) | Filed Under [ C# VB .NET ]

Realizzare un add-in per Windows Home Server

L'SDK per Windows Home Server è ancora in versione preliminare, quindi il materiale a disposizione è molto poco (si limita al sito MSDN e al forum Microsoft) e gli esempi di codice sono praticamente inesistenti. Ho voluto comunque provare a realizzare un add-in che aggiunge un nuovo tab nella Windows Home Server Console: Realizzare un add-in per la Console è abbastanza semplice, ma è importante rispettare le convenzioni sui nomi dei namespace, delle classi e degli assembly, altrimenti l'add-in non viene caricato: Il namespace dell'assembly deve essere Microsoft.HomeServer.HomeServerConsoleTab.NomePersonale (dove al posto di NomePersonale si può mettere il nome...

posted @ domenica 6 maggio 2007 13:55 | Feedback (2) | Filed Under [ C# Windows Home Server ]

Package!This

Sembra interessante questo nuovo programma Microsoft: PackageThis! allows you to choose documentation sets from the MSDN Library to save as HXS or CHM format files. Simply select nodes in the MSDN Library Tree View to package as your own local mini-library, or to build into your own library. Il programma è scritto in C# ed è stato pubblicato su CodePlex.

posted @ lunedì 30 aprile 2007 19:35 | Feedback (1) | Filed Under [ C# ]

Un'altra class library per creare i Ribbon di Office 2007

Su CodeProject è stata pubblicata una nuova class library, realizzata in C#, che consente di creare Ribbon in stile Office 2007. Fare clic qui per accedere direttamente alla pagina di descrizione.

posted @ lunedì 23 aprile 2007 11:29 | Feedback (0) | Filed Under [ C# ]

XML Notepad 2007 su CodePlex

Notizia freschissima: meno di un'ora fa Microsoft ha rilasciato il codice sorgente C# di XML Notepad 2007. Il progetto è stato ovviamente pubblicato su CodePlex ed è disponibile a questo indirizzo.

posted @ venerdì 20 aprile 2007 19:48 | Feedback (0) | Filed Under [ C# CodePlex ]

Piccolo aggiornamento di Krypton Toolkit

E' stata rilasciata una nuova versione di Krypton Toolkit, la 2.5.1, con lo scopo di risolvere alcuni problemi che sono stati riscontrati con la release precedente: The design time errors that occur when accessing the smart tag for a Krypton control have now been fixed. In some cases this even crashed Visual Studio and occured because the design time methods were obfuscated when they should not have been. The caption of the MDI parent not updates immediately when an MDI child is maximized. Using the LayoutMdi method in an MDI parent to Cascade or Tile the children...

posted @ giovedì 19 aprile 2007 12:41 | Feedback (1) | Filed Under [ C# VB .NET Updates & Service Pack ]

Posizione di salvataggio del file di configurazione

Il seguente codice mostra come recuperare a tempo di esecuzione il percorso completo del file di configurazione (.config) del programma: Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); Console.WriteLine("Local user config path: {0}", config.FilePath); Per eseguire questo esempio è necessario aggiungere al progetto la reference all'assembly System.Configuration.dll. Ad esempio, con Windows Vista viene restituito qualcosa del tipo: C:\Users\Marco\AppData\Local\WindowsDisguiser\ Disguiser.exe_Url_rk1dt0ciq3urvmwnrrngy0olzxipdane\1.0.2662.21204 Il file di configurazione vero e proprio è chiamato user.config. Attenzione che il .NET Framework salva tale file solo se sono stati fatti cambiamenti ai valori di default delle proprietà. Per accedere ad esso da Esplora risorse bisogna abilitare la visualizzazione dei file nascosti.

posted @ lunedì 16 aprile 2007 15:08 | Feedback (0) | Filed Under [ C# ]

Windows Movie Maker and Windows DVD Maker SDK

Microsoft ha rilasciato l'SDK per i programmi Windows Movie Maker e Windows DVD Maker che sono inclusi in Windows Vista: This SDK is helps you create and add your own custom special effects and transitions to Windows Movie Maker in Windows Vista, and your own custom transitions, buttons, and menu styles to Windows DVD Maker in Windows Vista. I requisiti software per l'utilizzo, oltre naturalmente a Windows Vista, sono Visual Studio .NET oppure Visual Studio 2005 e l'SDK delle DirectX. Il download, che richiede il controllo della genuinità, è disponibile qui.

posted @ sabato 14 aprile 2007 11:53 | Feedback (37) | Filed Under [ C# VB .NET Updates & Service Pack ]

Applicazioni .NET & occupazione di memoria

Testando il mio programma Windows Disguiser, ho notato un comportamento anomalo. Su Windows Vista, l'eseguibile compilato in modalità release ha un'occupazione di memoria di circa 4 MB; su Windows XP Professional, invece, il Task Manager segnala che lo stesso programma occupa ben 22 MB! Non ho ancora investigato, ma forse questa differenza è dovuta al fatto che in Windows Vista il .NET Framework 2.0 è integrato nel sistema operativo, dunque il Task Manager segnala solo l'occupazione del programma vero e proprio. Al contrario, il Task Manager di Windows XP riporta 22 MB perché come occupazione di memoria considera anche quella...

posted @ venerdì 13 aprile 2007 22:02 | Feedback (2) | Filed Under [ C# Tutto & Oltre :-) ]

Rilasciato Krypton Toolkit versione 2.5

E' stata rilasciata la versione 2.5 del Kripton Toolkit, un insieme di controlli che riproducono i ribbon e tutti gli altri elementi propri dell'interfaccia grafica di Office 2007. Le novità principali di questa release sono: New Krypton Ribbon component added Performance improvements for custom chrome Custom chrome support for Vista Glass A range of bug fixes Per il download diretto del pacchetto di installazione fare clic qui.

posted @ giovedì 12 aprile 2007 18:47 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

Accorciare il percorso di un file per la visualizzazione

Qualche mese fa in questo blog avevo presentato una classe che consente di aggiungere i file recenti alla propria applicazione. Il codice in questione conteneva un metodo di nome ShortenPathName che, ricevuto in ingresso il percorso completo di un file, restituiva una stringa in cui, se necessario, al posto dei nomi delle cartelle venivano inseriti i tre puntini (...) allo scopo di "accorciarla" per la visualizzazione all'interno del menu. In realtà, il .NET Framework fornisce nativamente il metodo TextRenderer.MeasureText, che consente di ottenere lo stesso risultato con una sola riga di codice: public string ShortenPath(string str, int width, Font font) { ...

posted @ martedì 10 aprile 2007 19:32 | Feedback (0) | Filed Under [ C# ]

BlogEngine.NET approda su CodePlex

Qualche giorno fa avevo parlato di BlogEngine.NET, un motore di blog interamente realizzato in ASP .NET e distribuito secondo la Microsoft Permissive License. Questa mattina l'amico Marco Ragogna mi ha fatto notare che il progetto si è spostato su CodePlex. Il suo nuovo indirizzo è: http://www.codeplex.com/blogengine.

posted @ martedì 10 aprile 2007 12:00 | Feedback (1) | Filed Under [ C# ASP .NET CodePlex ]

Verificare se un tipo deriva da un altro

In diversi casi capita di dover verificare se un tipo deriva da un altro: l'esempio classico è la realizzazione di un sistema a plug-in. Il .NET Framework mette a disposizione diversi meccanismi per ottenere questo obiettivo, tutti contenuti nella classe System.Type. Tra le varie alternative, la soluzione più semplice consiste nell'utilizzo del metodo Type.IsAssignableFrom che, come si legga su MSDN: [Returns] true if c and the current Type represent the same type, or if the current Type is in the inheritance hierarchy of c, or if the current Type is an interface that c implements, or if c is a generic type parameter...

posted @ lunedì 9 aprile 2007 13:09 | Feedback (2) | Filed Under [ C# ]

Windows Home Server SDK

Su MSDN è disponibile una versione preliminare del Software Development Kit per Windows Home Server. Lo sviluppo richiede  il .NET Framework 2.0 e Visual Studio 2005 oppure Visual C# 2005 Express Edition. L'API fornita consente di estendere le funzionalità del server e quelle del Windows Home Server Console, il programma che permette ai vari PC in rete di connettersi e interagire con il server.

posted @ sabato 7 aprile 2007 18:34 | Feedback (0) | Filed Under [ C# Windows Home Server Updates & Service Pack ]

Funzionalità OCR nelle applicazioni .NET

With the help of Microsoft Office Document Imaging Library (MODI), which is contained in the Office 2003 package, you can easily integrate OCR functionality into your own applications. In combination with the MODI Document Viewer control, you will have complete OCR support with only a few lines of code. Questo articolo, pubblicato su CodeProject, spiega come aggiungere funzionalità di OCR alle proprie applicazioni .NET utilizzando la Microsoft Office Document Imaging Library. Tale interfaccia è disponibile in Office 2003 e 2007 ed è compatibile con Windows Vista.

posted @ venerdì 6 aprile 2007 21:29 | Feedback (0) | Filed Under [ C# ]

MSDN Library di Aprile 2007

E' stata rilasciata la MSDN Library di Aprile 2007, liberamente scaricabile dal sito Microsoft. Questa nuova versione comprende, tra le altre cose, anche la documentazione relativa al Service Pack 1 di Visual Studio 2005 e a SQL Server 2005 Compact Edition. Da sottolineare che, finalmente, essa è disponibile come ISO di un DVD (2,19 GB), a differenza di quanto avveniva con le release precedenti, che erano distribuite come immagini di 3 CD-ROM.

posted @ giovedì 5 aprile 2007 21:29 | Feedback (2) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Updates & Service Pack ]

Rapid Application Development Using SQL Server 2005 Compact Edition and Visual C#.NET

Questo articolo pubblicato su MSDN fornisce una breve introduzione all'utilizzo di SQL Server 2005 Compact Edition con C#. In esso viene mostrato come realizzare una semplice rubrica di contatti e come utilizzare il Server Explorer di Visual Studio per creare e gestire nuovi database.

posted @ giovedì 5 aprile 2007 18:15 | Feedback (1) | Filed Under [ C# ADO .NET & SQL ]

BlogEngine.NET

BlogEngine.NET is for anyone, but designed specifically to .NET developers that like to push software further than intended. BlogEngine.NET may be the simplest and most light weight ASP.NET blog at the moment, but still full featured. Here are some of the features: Multi-author support Pingbacks and trackbacks Event based for plug-in writers Theming directly in master pages and user controls Gravatar and coComments implemented Live preview on commenting Full editing and creation of pages that are not posts Extended search capabilities Tag cloud Self updating blogroll Runs entirely on...

posted @ giovedì 5 aprile 2007 14:44 | Feedback (7) | Filed Under [ C# Tutto & Oltre :-) ]

TestDriven .NET per tutte le versioni di Visual Studio

Come si può leggere qui, la recente release 2.5 beta di TestDriven.NET supporta anche le edizioni Express di Visual Studio, ad eccezione di Visual Web Developer, il cui supporto sarà comunque aggiunto nelle prossime versioni.

posted @ mercoledì 4 aprile 2007 17:00 | Feedback (2) | Filed Under [ C# VB .NET Tutto & Oltre :-) ]

Recuperare le icone contenute in un file

Ogni versione di Windows è caratterizzata da un nuovo stile per le icone di sistema. Se la nostra applicazione fa uso di queste icone, utilizzando il Platform Invoke è possibile recuperare tali risorse direttamente dai file di Windows, in modo che il programma adatti il proprio stile grafico a quello del sistema su cui è in esecuzione: [DllImport("shell32.dll", EntryPoint = "ExtractIconA")] private static extern IntPtr ExtractIcon(IntPtr hInst, string lpszExeFileName, int nIconIndex); [DllImport("user32.dll")] private static extern int DestroyIcon(IntPtr hIcon); public Image GetIcon(string fileName, int iconNumber) { IntPtr hInstance = Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]); IntPtr hIcon = ExtractIcon(hInstance, fileName, iconNumber); Bitmap bitmap...

posted @ mercoledì 4 aprile 2007 13:43 | Feedback (0) | Filed Under [ C# ]

Un curioso convertitore da C# a VB .NET

Sulla rete è possibile trovare alcuni convertitori di codice da C# a VB .NET e viceversa.  Anche se in alcuni casi il codice viene tradotto nel modo corretto, trattandosi di tool automatici non bisogna mai aspettarsi grandi risultati... Recentemente ho provato il Code Converted di Telerik, attualmente in versione beta. Ho fatto un test cercando di tradurre un semplice ciclo for da C# a VB.NET: for (int i = 0; i < 10; i++) System.Debug.WriteLine(i.ToString()); Ed ecco qual è stato il risultato: Dim i As Integer = 0 While i < 10 System.Debug.WriteLine(i.ToString()) System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1) End...

posted @ martedì 3 aprile 2007 12:05 | Feedback (1) | Filed Under [ C# VB .NET ]

Una toolbox in stile Visual Studio 2005

A questo indirizzo è disponibile una libreria realizzata in C# che riproduce il look-and-feel della toolbox di Visual Studio 2005:

posted @ martedì 3 aprile 2007 10:55 | Feedback (0) | Filed Under [ C# VB .NET ]

Visual Studio 2005 e Windows Vista... La saga continua

Sappiamo tutti che, nonostante i vari Service Pack e gli aggiornamenti per Windows Vista, la compatibilità di Visual Studio con questo sistema operativo non è totale. In larga parte si tratta comunque di problemi secondari o che possono essere aggirati avviando l'IDE come amministratore. Altri inconvenienti,  invece, sono più "rognosi". Uno di questi si verifica quando si crea un programma di setup comprendente il modulo che scarica e installa automaticamente i prerequisiti dell'applicazione. In questo caso, infatti, viene creato un file di nome SETUP.EXE contraddistinto dalla classica icona con lo scudo, ovvero che richiede i diritti di amministratore per essere...

posted @ lunedì 2 aprile 2007 21:12 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Windows Related Orcas & .NET 3.5 ]

Windows Disguiser versione 1.0

Con questo post so di suscitare qualche polemica... Perché un amico mi ha detto che la causa principale dell'astio nei miei confronti sono proprio i progetti che ho pubblicato su CodePlex. Ma di questo parlerò nei prossimi giorni... Poco fa sono ho reso disponibile la versione 1.0 finale di Windows Disguiser, il programma che consente di spostare nella system tray i programmi ridotti ad icona, per "fare spazio" nella barra delle applicazioni. Il primo annuncio di questo software non ha suscitato molto interesse, visto che gli unici feedback che ho ricevuto mi accusavano di buttare via il mio tempo... Tuttavia, guardando le statische del progetto,...

posted @ lunedì 2 aprile 2007 12:46 | Feedback (3) | Filed Under [ C# Tutto & Oltre :-) ]

Determinare i diritti sui file

L'introduzione della UAC di Windows Vista ha reso necessaria, tra le altre cose, una maggiore attenzione alla posizione in cui i programmi salvano le proprie impostazioni: questo perché, ad esempio, lo standard user non ha i diritti di scrittura nella cartella C:\Program Files. La seguente routine permette di sapere se l'utente dispone di determinati diritti sul file specificato: public bool HasPermission(string fileName, FileSystemRights rights) { bool deny = false, allow = false; WindowsIdentity identity = WindowsIdentity.GetCurrent(); FileInfo fi = new FileInfo(fileName); AuthorizationRuleCollection acl = fi.GetAccessControl().GetAccessRules(true, true, typeof(SecurityIdentifier)); ...

posted @ lunedì 2 aprile 2007 00:47 | Feedback (0) | Filed Under [ C# ]

FileSystemWatcher ed eventi generati più volte

Il FileSystemWatcher ha un comportamento che, all'apparenza, può far pensare ad un bug: alcuni eventi, come OnChanged e OnCreated, vengono generati più volte. In realtà, questo comportamento è normale. Come viene indicato da MSDN: Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected...

posted @ domenica 1 aprile 2007 13:16 | Feedback (0) | Filed Under [ C# VB .NET ]

Eseguire un'operazione al termine del setup

Per eseguire una certa operazione al termine di una procedura di setup creata con Visual Studio (ad esempio avviare il programma appena installato), è necessario definire una Custom Action, come mi ha suggerito il grande Mauro Servienti. Tuttavia, se si prova ad eseguire il setup dopo aver aggiunto la Custom Action alla fase di Commit, al termine dell'installazione si ottiene un messaggio di errore del tipo: Could not find MyAction.InstallState. La spiegazione al problema e la sua soluzione sono riportati in questo post.

posted @ giovedì 29 marzo 2007 17:36 | Feedback (3) | Filed Under [ C# VB .NET ]

Errore nei programmi di setup creati con Visual Studio 2005

Ogni programma di setup creato con Visual Studio 2005 verifica come prima cosa che nel sistema sia installato il .NET Framework. In caso negativo, visualizza un messaggio di errore e propone di aprire la pagina web da cui è possibile scaricarlo. Purtroppo, l'indirizzo a cui punta, ovvero http://go.microsoft.com/fwlink/?LinkId=9832, si riferisce ad una pagina non più valida. Per risolvere il problema, è necessario fare doppio clic sulla voce Microsoft .NET Framework nella sezione Detected Dependencies del progetto di setup, quindi modificare la proprietà InstallUrl. Qui si può inserire l'indirizzo corretto, ovvero http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5, oppure, se si preferisce, direttamente il link al file da scaricare,...

posted @ mercoledì 28 marzo 2007 14:57 | Feedback (0) | Filed Under [ C# VB .NET ]

Roadmap di Visual Studio

Come si legge in questa pagina, la versione Beta 1 di Orcas è prevista per il secondo quadimestre del 2007, mentre la Beta 2 dovrebbe essere disponibile poco dopo la metà dell'anno. Non è stata ancora definita la data di rilascio della RTM. Nella stessa pagina si fa anche riferimento alla versione di Visual Studio Team System successiva ad Orcas, il cui nome in codice è Rosario, da Microsoft descritta come una exciting release...

posted @ mercoledì 28 marzo 2007 12:20 | Feedback (3) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 Orcas & .NET 3.5 ]

Creare file DOC da .NET

Su CodeProject è disponibile una libreria che permette di creare file DOC da un'applicazione .NET. Per maggiori informazioni e per il link al download, fare clic qui.

posted @ martedì 27 marzo 2007 18:27 | Feedback (0) | Filed Under [ C# VB .NET ]

Il bello di essere programmatori

Qual è il bello di essere programmatori? Secondo me è la possibilità di creare "dal nulla" i programmi che ci servono. Almeno, questo vale nel mio caso...  Mi è capitato spesso di pensare: avrei bisogno di una certa funzionalità, ma i programmi che ci sono in giro non mi soddisfano completamente, oppure sono fin troppo complessi rispetto a quello mi serve. E' così che sono nate le mie prime utility, come il programma che con una combinazione di tasti mi consentiva di regolare il volume degli altoparlanti (ovviamente non avevo una tastiera multimediale ) oppure quello per ricavare le componenti...

posted @ lunedì 26 marzo 2007 00:48 | Feedback (7) | Filed Under [ C# Tutto & Oltre :-) ]

Huston, abbiamo lo Splash Screen...

La mia richiesta di aiuto relativa alla realizzazione dello Splash Screen di Web Service Studio Express è stata accolta da Alessio Marziali, che nei giorni scorsi mi ha inviato una serie di immagini tra cui scegliere. Dopo attenta valutazione, la mia preferenza è ricaduta su questa: Sono ancora indeciso sulla collocazione della scritta con il numero di versione, ma per il resto mi sempre davvero un ottimo lavoro, grazie Alessio!

posted @ domenica 25 marzo 2007 13:14 | Feedback (3) | Filed Under [ C# ]

Implementare i comandi Undo/Redo in C#

A useful application normally has a conventional feature called "undo" or "undo-redo". It is extremely handy and I can't imagine a cyber world without undo-redo. With that said, it is not easy to implement undo-redo features. Convenience for users and headache for developers usually refer to the same thing. To my knowledge, there are no .NET libraries that have enough capability to handle all undo-redo cases because this feature is very specific to every single application. The purpose of this article is to generalize undo-redo as much as possible and to suggest implementation methodology. Per leggere l'articolo completo e...

posted @ martedì 20 marzo 2007 10:35 | Feedback (0) | Filed Under [ C# ]

Web Service Studio Express Wants You

Il mio progetto Web Service Studio Express continua a crescere... Oggi ho lasciato da parte l'implementazione delle feature "vere e proprie" del programma per realizzare lo Splash screen e la finestra di About. Purtroppo non sono proprio ferratissimo in materia di grafica, quindi per il momento ho realizzato questo: Anche se questo progetto non ha neanche lontanamente il seguito di Happy Sign, mi permetto di copiare l'idea di Igor, dunque chiedo l'aiuto di voi che vi dilettate con la grafica: avete voglia di darmi una mano? Per abbozzare un'icona o anche solo per un suggerimento sullo splash screen... Naturalmente, un ringraziamento nei credits è assicurato . Per semplicità,...

posted @ domenica 18 marzo 2007 19:27 | Feedback (4) | Filed Under [ C# ]

Transactional NTFS (TxF)

Windows provides a transaction infrastructure in the operating system kernel that allows operating system services to participate in transactions. The system uses the Kernel Transaction Manager (KTM) to provide transactional file input/output (I/O) support in the NTFS file system. Transactional NTFS allows file operations on an NTFS file system volume to be performed in a transaction. Because transactions can be used to both preserve data integrity and handle error conditions reliably, you can use TxF to develop robust solutions on the Windows platform. Maggiori informazioni sulla nuova API, introdotta con Windows Vista, sono disponibili qui. Da questo post, invece,...

posted @ sabato 17 marzo 2007 17:28 | Feedback (0) | Filed Under [ C# ]

Nuovo utilizzo del Restart Manager

Qualche tempo fa ho parlato del Restart Manager di Windows Vista, la nuova API che consente di ridurre il numero di riavvii del sistema operativo. Ma le funzioni esposte consentono anche di aggiungere altre funzionalità alle proprie applicazioni, ad esempio determinare quale programma sta utilizzando un certo file; tale informazione può servire nel caso in cui si tenta di accedere ad un file e si ottiene un errore di accesso negato perché esso è già in uso. Questo articolo di MSDN Magazine di Aprile spiega come fare.

posted @ sabato 17 marzo 2007 12:57 | Feedback (0) | Filed Under [ C# VB .NET ]

Add-in per Reflector

Sul sito http://www.codeplex.com/reflectoraddins è disponibile una nutrita raccolta di add-in per Reflector. La lista è gestita dallo stesso autore di questo indispensabile tool. Le estensioni più interessanti, secondo me, sono le seguenti: SQL2005Browser: This add-in allows to browse .NET assemblies stored in SQL Server 2005 databases BamlViewer: Load BAML resources (WPF) and render in XAML format CodeSearch: This add-in allows searching for strings and regular expressions in disassembled code

posted @ venerdì 16 marzo 2007 22:10 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 CodePlex ]

Aggiornamento per Sandcastle Help File Builder

Come sempre avviene in occasione del rilascio di ogni CTP di Sandcastle, il programma Sandcastle Help File Builder è stato aggiornato e ora supporta le nuove funzionalità introdotte con la CTP di Marzo 2007.

posted @ mercoledì 14 marzo 2007 16:19 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Orcas & .NET 3.5 Updates & Service Pack ]

Prosegue lo sviluppo di Web Service Studio Express

Tra i diversi progetti che gestisco su CodePlex, in questo periodo mi sto dedicando a Web Service Studio Express, di cui avevo già parlato in un post di qualche mese fa (all'epoca il progetto ero ospitato su Google code): [Web Service Studio Express è] un ambiente di test che consente di invocare dinamicamente i metodi esposti da un qualunque Web service, con la possibilità di specificare tutti i parametri necessari, e di elaborare i messaggi di risposta. Questa è solo la prima versione dell'interfaccia, però dovrebbe contenere tutti gli elementi principali del programma. Adesso devo pensare al modo più...

posted @ mercoledì 14 marzo 2007 12:02 | Feedback (0) | Filed Under [ C# ]

Reviewing Managed Code

This document will discuss best practices for reviewing managed code. Some practices are universal to reviewing managed and unmanaged code. Others are unique to reviewing managed code. Per accedere all'articolo, fate clic qui.

posted @ martedì 13 marzo 2007 11:45 | Feedback (0) | Filed Under [ C# VB .NET ]

Una sintassi abbreviata per le proprietà in C#

Molte delle novità introdotte dal .NET Framework 3.5 hanno lo scopo di ridurre la quantità di codice da scrivere e migliorare la leggibilità del codice. Alcune a mio avviso sono interessanti, come gli Extension methods di cui ho parlato qualche giorno fa. Altre cose, invece, consentono sì di scrivere meno codice, ma a scapito della leggibilità del codice. Mi sto riferendo alla sintassi abbreviata per le definizione delle proprietà che è possibile utilizzare in C#. Una proprietà definita come segue: private int _age; public int Age { get { return _age; }; set { _age = value; }; } In C# 3.0 può...

posted @ venerdì 9 marzo 2007 21:13 | Feedback (4) | Filed Under [ C# Orcas & .NET 3.5 ]

Sandcastle March 2007 Community Technology Preview

Oggi è proprio una giornata ricca di annunci: dopo la versione definitiva dell'Update a Visual Studio 2005 per Windows Vista e l'aggiornamento al Service Pack 2 di SQL Server 2005, adesso è la volta di Sandcastle, di cui è stata rilasciata la March 2007 Community Technology Preview. Le novità introdotte non sono molte, mentre la lista dei bug fix è lunghissima; se volete consultarla, potete visitare il blog di Sandcastle. Per il download diretto, invece, fate clic qui. Technorati Tags: .NET, Tools, Updates

posted @ mercoledì 7 marzo 2007 18:12 | Feedback (4) | Filed Under [ C# VB .NET ]

Extension Methods

Tra le numerosissime novità del .NET Framework 3.5 che sto sperimentando in questi giorni, oggi voglio segnalare gli Extension Methods. Come riportato qui: The basic idea is that the set of methods available on an instance of a particular type is open to extension. In effect, we can add new methods to existing types. Supponiamo di eseguire sempre la stessa operazione su un certo tipo di dati, ad esempio ottenere l'array di byte a partire dal contenuto di una stringa. Una soluzione tipicamente adottata fino ad oggi consiste nel definire una classe statica con il metodo che esegue l'operazione,...

posted @ lunedì 5 marzo 2007 21:18 | Feedback (5) | Filed Under [ C# VB .NET Orcas & .NET 3.5 ]

Visual Basic .NET e i metodi case-sensitive del C#

Visual Basic .NET è case-insensitive, mentre C# fa differenza tra maiuscole e minuscole. C'è un caso in cui questo comportamento può causare problemi. La seguente classe C# compila correttamente: 1 public class TestClass 2 { 3 public void Foo(string str) 4 { 5 MessageBox.Show("Richiamata Foo con parametro " + str); 6 } 7 8 public void foo(string str) 9 { 10 ...

posted @ domenica 4 marzo 2007 13:00 | Feedback (5) | Filed Under [ C# VB .NET ]

Gestire i Feed RSS da .NET

Cercando su Internet è possibile trovare numerose class library che consentono di gestire i Feed RSS dalle proprie applicazioni .NET. Come avevo segnalato qui, anche Microsoft fornisce un'API per la loro manipolazione. Recentemente ho scoperto Argotic, una libreria con le seguenti caratteristiche: Complete implementation of the RSS 2.0 specification. Complete implementation of the ATOM 1.0 specification. Implements a provider model for storing/retrieving syndication information to your back-end database of choice. Provides an extensible framework for processing any syndication specification extension. Natively handles the RCF822 and W3C DateTime structures. Support for auto-discovery of syndication feeds...

posted @ sabato 3 marzo 2007 15:59 | Feedback (0) | Filed Under [ C# VB .NET ]

Visual Studio 2005 SDK versione 4.0

E' stata rilasciata ieri la versione 4.0 del Visual Studio 2005 SDK. Nel pacchetto è incluso anche Sandcastle. Per maggiori informazioni e per il download fare clic qui.

posted @ giovedì 1 marzo 2007 20:07 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 .NET Micro Framework Updates & Service Pack ]

Introducing Windows Presentation Foundation

Su PlanetSourceCode è stato recentemente pubblicato un esempio di applicazione 3-tier realizzata in C# utilizzando Windows Presentation Foundation: Per il download del codice sorgente fare clic qui.

posted @ martedì 27 febbraio 2007 21:50 | Feedback (1) | Filed Under [ C# .NET 3.0 ]

Una piccola pecca per Reflector

Come la maggior parte dei programmatori .NET, ritengo che Reflector sia un tool assolutamente indispensabile. Oggi ho scaricato la nuova release: l'applicazione conferma le caratteristiche che l'hanno resa celebre, anche se ho riscontrato un piccola pecca relativa alla compatibilità con Windows Vista. Il programma, infatti, non richiede i diritti di amministratore, ma salva la sua configurazione nella stessa cartella in cui si trova l'eseguibile: qualora quest'ultimo sia stato copiato nella directory C:\Programmi (come ho fatto io), poiché su di essa non ha i diritti di scrittura, entra in azione il sistema di virtualizzazione del file system, che redirige il salvataggio del file...

posted @ lunedì 26 febbraio 2007 21:13 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Windows Related .NET 3.0 .NET Micro Framework ]

SharpToolbox a quota 1000

SharpToolbox è un sito che raccoglie una grande quantità di tool e di librerie per .NET. Da poco è stato raggiunto il traguardo dei 1000 contributi disponibili (mentre sto scrivendo questo post siamo a quota 1004).

posted @ venerdì 23 febbraio 2007 22:02 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Realizzare una Home Page in stile Google

Questo interessante articolo pubblicato su CodeProject spiega come realizzare in 7 notti una Home Page in stile Google IG, ovvero un'interfaccia multi-pagina con possibilità di aggiungere ad essa widget che possono essere spostati tramite drag & drop:  Il progetto utilizza ASP .NET, AJAX, .NET 3.0, Linq, DLinq and XLinq. Per osservare il sistema in azione potete visitare il sito http://www.dropthings.com.

posted @ giovedì 22 febbraio 2007 12:15 | Feedback (0) | Filed Under [ C# ASP .NET .NET 3.0 ]

Il Restart Manager di Windows Vista

Nelle versioni di Windows precedenti a Vista, l'installazione e l'aggiornamento dei programmi molto spesso richiedono il riavvio del sistema, quando è necessario modificare i file in uso di un'applicazione o di un servizio. Il riavvio è quasi sempre obbligatorio quando l'aggiornamento riguarda i file di sistema di Windows. Per ridurre la necessità di riavvii di sistema, Windows Vista introduce il Restart Manager, una nuova API che consente di arrestare e riavviare automaticamente i programmi e i servizi durante le operazioni di installazione e aggiornamento. Per maggiori informazioni, oltre alla relativa sezione su MSDN, è possibile consultare questo post, in cui si può trovare...

posted @ mercoledì 21 febbraio 2007 01:20 | Feedback (1) | Filed Under [ C# Windows Related ]

BitTorrent con C#

BitSharp is the product of Googles Summer of Code 2006. It is a complete BitTorrent suite of libraries which can be embedded in an application. The suite contains: Client Library - Allows the uploading/downloading of torrents. Tracker Library - Allows the hosting of .torrents. Torrent Creator - Allows the creation and editing of .torrent files. All of these libraries were written with Mono in mind. As a result these libraries will function on any operating system that supports either the Microsoft .NET Framework or Mono Framework, be it Windows, Linux, MacOs or other. ...

posted @ martedì 20 febbraio 2007 18:34 | Feedback (5) | Filed Under [ C# ]

Integrare Windows Vista Search nelle proprie applicazioni

Windows Vista espone il proprio motore di ricerca integrato come database, cosicché è possibile accedere ad esso attraverso una normale connessione di tipo OleDb. Ad esempio: public struct SearchResult { public string FileName; public string Url; public DateTime LastModified; public long Size; public string ItemType; } public ReadOnlyCollection<SearchResult> Search(string path, string pattern) { string connString = @"Provider=Search.CollatorDSO;Extended Properties='Application=Windows'"; string searchString = string.Format( @"SELECT System.FileName, System.ItemUrl, System.DateModified, System.Size, System.ItemType ...

posted @ domenica 18 febbraio 2007 16:41 | Feedback (0) | Filed Under [ C# ]

Una nota sull'Application Crash Recovery di Windows Vista

Qualche tempo fa avevo parlato delle nuove funzioni di Windows Vista per la gestione dei crash e del ripristino automatico delle applicazioni in seguito ad errori imprevisti. Nell'articolo si fa un cenno ad una caratteristica molto importante di questo nuovo sistema: perché un'applicazione possa essere ripstinata, deve essere in esecuzione da almeno 60 secondi. Se il crash si verifica prima di questo intervallo viene comunque eseguita la funzione di callback, in cui tipicamente si salva lo stato dell'applicazione su disco, ma Windows non riavvia automaticamente il programma. Questo comportamento ha lo scopo di evitare i continui riavvii di un'applicazione nel...

posted @ domenica 18 febbraio 2007 15:34 | Feedback (0) | Filed Under [ C# VB .NET ]

Non si finisce mai di imparare...

Stavo navigando su MSDN alla ricerca di alcune informazioni, quando per puro caso mi sono imbattuto nel metodo Environment.FailFast che, cito testualmente, terminates a process but does not execute any active try-finally blocks or finalizers... Use the FailFast method instead of the Exit method to terminate your application if the state of your application is damaged beyond repair, and executing your application's try-finally blocks and finalizers will corrupt program resources. Questo metodo proprio non lo conoscevo... E' proprio vero che si finisce mai di imparare

posted @ domenica 18 febbraio 2007 14:20 | Feedback (0) | Filed Under [ C# VB .NET ]

Windows RSS Platform: esempio di utilizzo

Qualche tempo fa ho parlato della Windows RSS Platform, l'API introdotta con Internet Explorer 7 per la gestione dei feed RSS. A questo indirizzo è disponibile un'applicazione di esempio che estende lo screen saver incluso nel Visual C# Starter Kit aggiungendovi le funzionalità fornite dalla nuova piattaforma.

posted @ sabato 17 febbraio 2007 14:47 | Feedback (0) | Filed Under [ C# ]

Thread ed eventi

Abbiamo una classe che dispone di un metodo Start il quale, una volta richiamato, esegue un'operazione piuttosto complessa in un thread separato. Quest'ultimo può generare alcuni eventi per notificare all'applicazione che utilizza tale classe il verificarsi di certe condizioni. In una situazione del genere, poiché gli eventi sono lanciati da un thread separato, se nell'handler dell'evento si vuole modificare qualche oggetto dell'interfaccia, bisogna usare il meccanismo di Invoke per avere un accesso thread-safe ai controlli. Così facendo, in pratica sono necessarie due routine per ogni evento che si vuole gestire. Se si utilizza il .NET Framework 2.0, è possibile adottare una soluzione alternativa che permette di...

posted @ mercoledì 14 febbraio 2007 16:16 | Feedback (3) | Filed Under [ C# ]

Le novità di Orcas

In questo post Scott Guthrie illustra alcune delle principali novità che troveremo in Orcas. L'articolo è corredato da un gran numero di screenshot che mostrano la CTP di Febbraio in azione.

posted @ domenica 11 febbraio 2007 14:04 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Tutto & Oltre :-) .NET 3.0 ]

Eseguire un programma con i privilegi di amministratore

Se dalla propria applicazione .NET sotto Windows Vista si vuole avviare un programma con privilegi di amministratore, è sufficiente utilizzare il verb "runas": ProcessStartInfo psi = new ProcessStartInfo("notepad.exe"); psi.Verb = "runas"; Process.Start(psi); In questo modo, prima di avviare il programma viene visualizzato il solito messaggio di conferma della UAC. Qualora non si conceda l'autorizzazione, il metodo Process.Start genera una Win32Exception. NOTA: se si prova questo codice all'interno di Visual Studio, il programma sarà eseguito senza chiedere conferma: tale comportamento è corretto perché l'ambiente di sviluppo, da cui viene eseguita l'applicazione, dispone già dei diritti di amministratore (a patto, naturalmente, di eseguire Visual Studio 2005...

posted @ venerdì 9 febbraio 2007 10:29 | Feedback (3) | Filed Under [ C# ]

Quando chiudere uno stream?

Cosa succede quando un metodo che prende in ingresso uno Stream termina la sua esecuzione? Lo stream deve rimanere aperto oppure essere chiuso? In alcuni casi, è corretto che esso venga chiuso: ad esempio, se lo stream in questione è un FileStream, in questo modo all'uscita del metodo si ha a disposizione un file correttamente salvato su disco. In altre situazioni, però, lo stream dovrebbe rimanere aperto, perché si vogliono fare alcune elaborazioni sui dati che sono stati riversati in esso; pensiamo al MemoryStream: dopo che il metodo vi ha copiato il suo output, si potrebbe voler accedere ad esso per...

posted @ martedì 6 febbraio 2007 12:35 | Feedback (4) | Filed Under [ C# ]

Windows Vista Controls for .NET 2.0

Qualche giorno fa ho creato un nuovo progetto su CodePlex, ma ho preferito fare un paio di check-in prima di segnalarlo. Il progetto si chiama Windows Vista Controls for .NET 2.0 ed ha l'obiettivo di creare una Windows Control Library contenente un insieme di controlli che riproducono l'aspetto degli elementi grafici di Windows Vista, ad esempio pulsanti con l'icona dello scudo, TextBox con il cue banner e così via... Come sempre, chiunque sia interessato può mandarmi una mail a marco.minerva@gmail.com per entrare a far parte del team di sviluppo.

posted @ lunedì 5 febbraio 2007 23:13 | Feedback (0) | Filed Under [ C# ]

Aggiornamenti di Speech Server .NET

Il progetto Speech Server .NET sta pian piano crescendo . Con gli ultimi aggiornementi ho semplificato la procedura di scambio dei messaggi tra client e server, aumentandone la velocità, ed ho aggiunto il supporto per l'utilizzo di motori di TTS e ASR in lingue diverse dall'inglese. Inoltre, ho fatto qualche test con il riconoscimento vocale si Microsoft: utilizzando una grammatica, la percentuale di riconoscimento si è mantenuta sempre a livelli più che buoni. Il riconoscimento del parlato libero, invece, lascia un po' a desiderare, ma per adesso ho utilizzato solo il motore SAPI 5.1 con Windows XP, quindi con Windows Vista si dovrebbero ottenere...

posted @ lunedì 5 febbraio 2007 18:56 | Feedback (2) | Filed Under [ C# .NET Compact Framework .NET 3.0 ]

Serializzare classi che contengono eventi

Se si tenta di serializzare una classe che contiene un evento, si ottiene un errore in fase di esecuzione: come è logico intuire, infatti, gli eventi non possono essere serializzati. Per risolvere il problema è sufficiente aggiungere l'attributo [field:NonSerialized] davanti alla dichiarazione dell'evento: [field:NonSerialized] public event EventHandler StatusChanged; Questo significa che, dopo aver deserializzato la classe, è necessario registrarsi nuovamente sugli eventi da essa definiti. Purtroppo l'attributo [field:NonSerialized] non è supportato da VB .NET: in questo caso, per serializzare oggetti che contengono eventi è necessaria una procedura più lunga, descritta in questo post.

posted @ lunedì 5 febbraio 2007 13:37 | Feedback (1) | Filed Under [ C# VB .NET ]

Windows RSS Platform

Windows RSS Platform [is] an API that developers can use to manipulate the Common Feed List, the set of Really Simple Syndication (RSS) feeds to which the user is subscribed. La Windows RSS Platform è utilizzata, ad esempio, da Internet Explorer 7 per la sottoscrizione e la visualizzazione dei feed all'interno del browser. Facendo clic sul link sopra riportato è possibile accedere direttamente alla documentazione tecnica su MSDN.

posted @ domenica 4 febbraio 2007 19:41 | Feedback (2) | Filed Under [ C# VB .NET ]

Masterizzare con .NET

A partire da Windows XP, Microsoft ha integrato nel sistema operativo la Image Mastering API (IMAPI), un'interfaccia COM che consente di accedere a funzionalità di masterizzazione. Sul sito http://www.vbaccelerator.com è disponibile un wrapper per .NET grazie al quale è possibile utilizzare IMAPI direttamente da applicazioni C# e VB .NET. Tra i download è presente anche il codice sorgente della libreria, che è stata scritta in C#.

posted @ domenica 4 febbraio 2007 17:06 | Feedback (0) | Filed Under [ C# VB .NET ]

Installare un assembly nella Global assembly cache

Una delle domande che mi vengono rivolte più spesso riguarda l'installazione di assembly nella Global Assembly Cache del .NET Framework. La procedura richiede vari passaggi, dal momento che è necessario assegnare uno strong name all'assembly, quindi utilizzare il comando Gacutil per effettuare la registrazione vera e propria. In questa pagina della Knowldge Base di Microsoft sono riportate tutte le istruzioni da seguire.

posted @ domenica 4 febbraio 2007 14:21 | Feedback (0) | Filed Under [ C# VB .NET ]

Windows Vista, Gadget per la SideBar e codice .NET

I Gadget per la SideBar di Windows Vista sono basati su HTML, XMl e JavaScript. Nel caso in cui si vogliano creare Gadget che utilizzano codice .NET, è necessario un piccolo "trucco", illustrato in un interessante articolo apparso su CodeProject: The idea is simple; create a small, lightweight .NET COM component that uses reflection to load any assembly and type. Then, that type can be called directly from JavaScript. L'idea viene presentata attraveso la creazione di un gadget che verifica periodicamente la presenza di nuovi messaggi di posta in un account di Gmail. Technorati tags: Windows, Programming, .NET

posted @ sabato 3 febbraio 2007 13:13 | Feedback (3) | Filed Under [ C# Windows Related ]

Regular Expression Library

Sul sito http://www.regexlib.com è disponibile una grande raccolta di espressioni regolari pronte all'uso. Attualmente l'archivio ne comprende quasi 1500, facimente accessibili grazie ad una comoda funzione di ricerca.

posted @ venerdì 2 febbraio 2007 22:14 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Visualizzare automaticamente la descrizione dei comandi di menu

In molte applicazioni, quando si sposta il puntatore del mouse sopra un comando di menu, nella barra di stato appare un messaggio che ne illustra la funzionalità. Per aggiungere questa caratteristica ai propri programmi, basta specificare la descrizione del comando nella sua proprietà Tag, quindi inserire nel form il seguente codice: 1 #region Status Bar Message Methods 2 3 private ToolStripStatusLabel _statusBar; 4 5 private void InitMenuDescription(ToolStripStatusLabel statusBar) 6 { 7 foreach (ToolStripMenuItem menuItem in this.MainMenuStrip.Items) 8 { 9 menuItem.MouseEnter...

posted @ venerdì 2 febbraio 2007 16:53 | Feedback (0) | Filed Under [ C# ]

La TreeView di Windows Vista

Ho già avuto modo di parlare di alcuni dei nuovi controlli introdotti da Windows Vista. Oggi è la volta della TreeView. Osservando il controllo utilizzato da Explorer per visualizzare l'elenco delle cartelle, si nota che i vari rami non sono più collegati da una linea e che, al posto del segno + per segnalare la presenza di sottoelementi, viene utilizzata una piccola freccina che si inclina verso il basso quando si espande una voce. Infine, la barra di scorrimento orizzontale è scomparsa: quando si sposta il mouse su un elemento che non è completamente visibile, la TreeView effettua lo scrolling automaticamente. E' possibile ottenere...

posted @ mercoledì 31 gennaio 2007 18:13 | Feedback (1) | Filed Under [ C# ]

Il più semplice utilizzo di Regular Expression

Attraverso le Regular Expression è possibile eseguire in maniera rapida ed efficiente tutta una serie di elaborazioni su stringhe. Uno dei più semplici utilizzi di tale strumento è quello che permette di dividere una stringa in token: Regex reg = new Regex(" "); foreach (string s in reg.Split(text)) MessageBox.Show(s); In questo esempio, dall'input contenuto nella variabile text viene estratta ogni singola parola. Si tratta di un esempio banale, infatti per questo particolare compito sarebbe stato sufficiente utilizzare il metodo String.Split. Le vere potenzialità delle espressioni regolari emergono quando si ha bisogno di qualcosa di più: come si legge su MSDN,...

posted @ mercoledì 31 gennaio 2007 13:26 | Feedback (7) | Filed Under [ C# ]

GhostDoc

Tutti sappiamo che la documentazione delle classi è una delle attività più noiose... Per fortuna GhostDoc consente di velocizzare enormemente questo lavoro. Si tratta di un add-in freeware per Visual Studio che aggiunge il comando Document this al menu contestuale delle finestre dell'editor: facendo clic su di esso, viene generato automaticamente lo stub della documentazione per il metodo, la proprietà, ..., su cui si è fatto clic. Lo schema prodotto comprende il campo summary e le eventuali entry di tipo param e returns, già precompilate, nel caso in cui il metodo prenda dei parametri in ingresso e restituisca un valore. Ma GhostDoc fa molto più di questo: esso, infatti,...

posted @ martedì 30 gennaio 2007 16:08 | Feedback (0) | Filed Under [ C# VB .NET ]

Vi ricordate Windows Explorer con Visual Studio 2005?

Qualche mese fa avevo parlato dell'add-in per Visual Studio 2005 che consente di avviare Esplora risorse facendolo puntare direttamente alla cartella che contiene la soluzione o il progetto selezionato. In realtà una funzionalità simile è disponibile anche in Visual Studio: dopo aver aperto il file di un progetto, facendo clic destro sul tab corrispondente, tra i comandi visualizzati c'è anche Open Containing Folder:

posted @ martedì 30 gennaio 2007 15:40 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Una classe helper per la formattazione binaria

Nelle mie applicazioni mi capita spesso di serializzare gli oggetti in formato binario per salvarli su disco, per inviarli sulla rete, ecc... Mi sono così definito una semplice classe helper per velocizzare questo procedimento: using System; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace SerializationHelper { public static class Serializator { public static void Serialize(object obj, Stream serializationStream) { try { ...

posted @ lunedì 29 gennaio 2007 23:31 | Feedback (4) | Filed Under [ C# ]

Mouse Gestures in .NET

Chi utilizza FireFox dice di non poterne più fare a meno: se anche voi volete aggiungere le mouse gestures alle vostre applicazioni .NET, date un'occhiata a questo articolo. Il codice sorgente è disponibile sia per C# sia per Visual Basic .NET.

posted @ lunedì 29 gennaio 2007 22:26 | Feedback (5) | Filed Under [ C# VB .NET ]

Estensioni della classe ThreadPool

Quando si lavora con il multithreading, una delle prime cose da valutare è la possibilità di utilizzo della classe ThreadPool. Su MSDN Magazine sono disponibili due articoli che spiegano come estendere questo oggetto per aggiungere alcune funzionalità secondo me molto importanti: attendere la terminazione di un pool di thread (ThreadPoolWait) ed annullare l'esecuzione di uno specifico thread inserito nella coda di esecuzione (AbortableThreadPool). Entrambi questi articoli sono accompagni dal codice sorgente in linguaggio C#.

posted @ lunedì 29 gennaio 2007 16:10 | Feedback (0) | Filed Under [ C# ]

Caricamento di DLL in AppDomain diversi

Quando si deve realizzare un sistema basato su plug-in, è buona norma utilizzare un AppDomain diverso per caricare le estensioni, in modo che un plug-in mal funzionante non possa compromettere il funzionamento dell'intera applicazione. La soluzione che adotto io si basa su una classe chiamata AssemblyLoader: 1 using System; 2 using System.Reflection; 3 4 namespace System.Reflection 5 { 6 public class AssemblyLoader : MarshalByRefObject 7 { 8 public AssemblyLoader() 9 { } 10 11...

posted @ domenica 28 gennaio 2007 15:55 | Feedback (2) | Filed Under [ C# ]

Confronto fra stringhe

Capita spesso di dover ordinare alfabeticamente una lista di stringhe. Quando si devono ordinare stringhe che contengono numeri, i metodi standard (come quello utilizzato impostando la proprietà Sorted del controllo ListBox su True) non sempre producono il risultato voluto. Tuttavia, utilizzando una apposita funzione dell'API di Windows, è possibile risolvere questo problema. Clicca qui per approfondire l'argomento.

posted @ sabato 27 gennaio 2007 18:25 | Feedback (2) | Filed Under [ C# ]

Ricavare gli indirizzi IP di un host da .NET

Volevo rispondere al post di Ermanno Goletto, ma sul suo blog i commenti sono disabilitati, quindi scrivo direttamente qui. Il codice per ricavare gli indirizzi IP di una macchina si può effettivamente portare anche sotto .NET, ma in questo caso è più semplice utilizzare la classe Dns contenuta nel namespace System.Net: foreach (IPAddress ipAddress in Dns.GetHostEntry(hostName).AddressList) { MessageBox.Show(ipAddress.ToString()); } Dove hostName è il nome della macchina di cui si vogliono conoscere gli indirizzi IP. In questo modo, inoltre, l'oggetto ipAddress fornisce un numero maggiore di informazioni, ad esempio se l'indirizzo è in formato IPv4 oppure IPv6.

posted @ giovedì 25 gennaio 2007 19:17 | Feedback (2) | Filed Under [ C# ]

Due parole sui miei progetti open-source

In un post di ieri ho annunciato il porting dei miei progetti open-source su CodePlex. Al momento ho attivato i progetti Graham Algorithm e RSS eXpert. Il primo è il risultato di un esame universitario (Mining di Dati Web): si tratta di un'implementazione del filtro bayesiano contro lo spam proposto da Paul Graham nel 2002, che ha di fatto aperto la strada allo sviluppo di filtri basati su metodi statistici per l'identificazione della posta indesiderata. RSS eXpert, invece, è un progetto che ho realizzato nei ritagli di tempo: è un'applicazione che consente di generare automaticamente feed RSS a partire dal contenuto...

posted @ mercoledì 24 gennaio 2007 13:56 | Feedback (1) | Filed Under [ C# CodePlex ]

Krypton Toolkit 2.4.1

E' stata rilasciata la versione 2.4.1 di Krypton Toolkit. Si tratta di una release di manutenzione che contiene solo alcuni bug fix. Per il download, fare clic qui.

posted @ mercoledì 24 gennaio 2007 10:58 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

DocProject for Sandcastle

DocProject è un add-in che rende disponibili le funzionalità di Sandcastle all'interno dell'editor di Visual Studio 2005. La Release Candidate rilasciata ieri supporta progetti C#, Visual Basic .NET e ASP .NET.

posted @ lunedì 22 gennaio 2007 21:50 | Feedback (3) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Il nuovo font di sistema di Windows Vista

Come riportato nelle linee guida di Microsoft (di cui ho parlato in questo post), Windows Vista utilizza un nuovo font per le interfacce grafiche, il Segoe UI. Di consenguenza, è auspicabile che un'applicazione, a seconda del sistema operativo su cui viene eseguita, utilizzi il carattere predefinito corrispondente. I form creati con Visual Studio 2005 usano di default il MS Sans Serif, che è lo standard su Windows XP. Il seguente stralcio di codice mostra come modificare il carattere di tutti i controlli presenti in un form qualora il sistema operativo sia Windows Vista: bool isWindowsVista = (Environment.OSVersion.Version.Major > 5); if (isWindowsVista) { ...

posted @ lunedì 22 gennaio 2007 19:22 | Feedback (16) | Filed Under [ C# Windows Related ]

Windows SideShow... Addendum

Ieri ho parlato del nuovo Framework che consente di sviluppare gadget per Windows SideShow utilizzando NET 2.0. Per completare il discorso, segnalo anche l'articolo Get Started Writing Gadgets For Windows SideShow Devices apparso su MSDN Magazine di Gennaio.

posted @ lunedì 22 gennaio 2007 13:22 | Feedback (0) | Filed Under [ C# Windows Related ]

Come elevare i privilegi di un'applicazione .NET

Questo post spiega come realizzare un'applicazione .NET per Windows Vista che all'avvio richiede i privilegi di amministratore. La procedura da seguire è abbastanza semplice, ora vorrei capire come eliminare il messaggio An unidentified program wants to access your computer. Se qualcuno ha già affrontato il problema mi faccia sapere

posted @ lunedì 22 gennaio 2007 12:54 | Feedback (2) | Filed Under [ C# VB .NET .NET 3.0 ]

Windows SideShow .NET Framework Components 1.0 (Beta)

Windows SideShow is a new technology that lets Windows Vista drive auxiliary, small displays of various form-factors where ready-access to bite-size bits of information could be imagined. These include displays embedded on the outside of a laptop lid or on a detachable device, enabling access to information and media even when the main system is in a standby mode. Data can also be displayed on cell phones and other network-connected devices via Bluetooth and other connectivity options. [da Wikipedia] Da qualche giorno è stato reso disponibile il Windows SideShow .NET Framework Components 1.0 (Beta), che consente di creare ed...

posted @ domenica 21 gennaio 2007 21:56 | Feedback (1) | Filed Under [ C# VB .NET Windows Related .NET 3.0 Updates & Service Pack ]

Tutorial su SQL Server 2005 Compact Edition

Recentemente su MSDN è stata pubblicata una serie di tutorial sull'utilizzo di SQL Server 2005 Compact Edition: Rapid Application Development Using SQL Server 2005 Compact Edition and Visual C#.NET SQL Server 2005 Compact Edition Data Access with the SqlCeResultSet and Visual C#.NET Remote Data Access Synchronization with SQL Server 2005 Compact Edition and Visual C#.NET Configuring Internet Information Services for SQL Server 2005 Compact Edition Remote Data Access and Merge Replication  I primi tre link contengono esempi di codice in C#, per avere accesso alle versioni Visual Basic .NET fare riferimento a questa pagina.

posted @ domenica 21 gennaio 2007 21:05 | Feedback (15) | Filed Under [ C# VB .NET ADO .NET & SQL ]

Visualizzare l'output di una compilazione con Visual Studio

Ogni volta che reinstallo Visual Studio me ne dimentico... Se si vuole visualizzare automaticamente la finestra Output quando si avvia la compilazione di un progetto, bisogna spuntare l'opzione evidenzata: Nota: lo screenshot è stato preso utilizzando lo Snipping Tool di Windows Vista 

posted @ domenica 21 gennaio 2007 17:49 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET .NET 3.0 ]

Comprimere e decomprimere un array di byte

Se si devono inviare array di byte da un client ad un server e viceversa, attraverso una connessione TCP, comprimendo i dati prima dell'invio si può ridurre il traffico di rete. A questo scopo, è possibile utilizzare una delle classi che fa parte della libreria SharpZipLib: public byte[] Compress(byte[] buffer) { using (MemoryStream ms = new MemoryStream()) { int size = buffer.Length; using (BinaryWriter bw = new BinaryWriter(ms)) { ...

posted @ domenica 21 gennaio 2007 15:24 | Feedback (3) | Filed Under [ C# ]

ShieldLink in C#

Dopo aver mostrato come utilizzare le nuove API di Windows Vista per creare ShieldButton e TextBox con Cue Banner, è la volta dello ShieldLink: Per creare un controllo di questo tipo è sufficiente inviare il messaggio BS_COMMANDLINK ad un oggetto Button: public class ShieldLink : Button { private const int BS_COMMANDLINK = 0x0000000E; private const uint BCM_SETNOTE = 0x00001609; private const uint BCM_SETSHIELD = 0x0000160C; [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern IntPtr SendMessage(HandleRef hWnd, UInt32 Msg, ...

posted @ sabato 20 gennaio 2007 19:29 | Feedback (3) | Filed Under [ C# ]

TextBox con Cue Banner

Alcune caselle di testo di Internet Explorer 7 e Windows Vista sono dotate di una caratteristica chiamata Cue Banner: quando non contengono testo e non hanno il focus, esse visualizzano un breve messaggio che funge da suggerimento (un effetto di questo tipo è utilizzato, ad esempio, nella casella di ricerca di IE7 e nella TextBox per la password della schermata di login di Vista). Su CodeProject è disponibile uno UserControl che consente di aggiungere questo effetto all'interno delle proprie applicazioni: Il codice sorgente, disponibile qui, è scritto in C#, ma all'interno del file scaricato è possibile trovare anche la DLL compilata...

posted @ sabato 20 gennaio 2007 13:27 | Feedback (2) | Filed Under [ C# VB .NET ]

Design guidelines for Windows Vista

A partire da questa pagina è possibile trovare tutte le linee guida ufficiali di Microsoft per la progettazione di interfacce grafiche secondo i nuovi standard introdotti da Windows Vista.

posted @ sabato 20 gennaio 2007 12:25 | Feedback (1) | Filed Under [ C# VB .NET Windows Related .NET 3.0 ]

L'evoluzione del mio Speech server

Ho già avuto modo di postare su questo blog le mie esperienze con il namespace System.Speech del .NET Framework 3.0. Poiché il sistema si è rapidamente evoluto integrando anche funzionalità di riconoscimento vocale, ho creato un progetto su CodePlex, Speech Server .NET, per gestire il tutto più agevolmente. Il mio obiettivo è realizzare un sistema che fornisca a palmari e smartphone con Windows Mobile 5.0 funzionalità di Text-To-Speech e Speech-To-Text sfruttando la connessione wireless con un server. Su quest'ultimo gira un applicativo in grado di generare stream di parlato a partire da un testo qualsiasi oppure riconoscere il linguaggio contenuto nello stream audio che gli viene inviato....

posted @ giovedì 18 gennaio 2007 21:54 | Feedback (0) | Filed Under [ C# .NET Compact Framework .NET 3.0 ]

Attivare/disattivare la virtualizzazione di Windows Vista

Per impostazione predefinita, la virtualizzazione dei file e delle chiavi di Registro di Windows Vista, di cui ho parlato in questo post, è attivata. Durante la fase di sviluppo di un'applicazione, tuttavia, può essere interessante provare a disattivarla per verificare la corretta esecuzione del programma anche in questa situazione. Per fare questo, visualizzare il Task Manager di Vista (chiamato Gestione attività Windows nella versione italiana ), quindi spostarsi nella scheda Processi e fare clic con il tasto destro del mouse sul processo di cui si vuole cambiare l'impostazione. All'interno del menu contestuale, bisogna attivare o disattivare l'opzione Virtualization (Virtualizzazione), rispettivamente, per consetire...

posted @ lunedì 15 gennaio 2007 13:03 | Feedback (0) | Filed Under [ C# VB .NET Windows Related ]

Aggiornamento di Krypton Toolkit

Poche ore fa è stata rilasciata la versione 2.4 del Krypton Toolkit, un componente freeware di cui ho parlato in questo post per la realizzazione di interfacce in stile Office 2007.

posted @ lunedì 15 gennaio 2007 12:07 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

Problemi nell'installazione del Service Pack 1 di Visual Studio 2005

In questo post Heath Stewart cerca di riassumere i problemi più comuni che si possono riscontrare durante l'installazione del Service Pack 1 di Visual Studio 2005. Per ognuno di essi è fornita anche una serie di link di approfondimento.

posted @ domenica 14 gennaio 2007 21:11 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

SharpForge, ovvero SourceForge in C#

SharpForge supports collaborative development and management of multiple software projects. Similar to SourceForge or CodePlex but for your own team or organisation. The software is written in C# for .NET 2.0. Da qualche giorno è stata rilasciata la versione 0.5a, le cui principali caratteristiche sono: Multi Portal Multi Project Subversion Administration Work Item Tracking Project Forums Release Management Subversion Wiki Browse Source Code I requisiti software sono i seguenti: Windows2000 / WinXP+SP1 or Windows2003 SQL Server Express SP1 or greater Apache 2.0.54 or greater Subversion 1.3 or greater  Dunque il controllo del codice sorgente è affidato a Subversion, per cui esiste un plug-in per l'integrazione con...

posted @ sabato 13 gennaio 2007 14:11 | Feedback (5) | Filed Under [ C# Tutto & Oltre :-) ]

Aggiornamento di Extensions for .NET Framework

Con un po' di ritardo, ho pubblicato un aggiornamento di Extensions for .NET Framework in cui ho aggiunto una classe per la gestione di alcune funzionalità della shell di Windows, ovvero spostamento di un file nel Cestino e aggiunta di collegamenti al menu Dati recenti (chiamato Oggetti recenti nel caso di Vista).

posted @ venerdì 12 gennaio 2007 12:32 | Feedback (0) | Filed Under [ C# VB .NET ]

TaskDialog API di Windows Vista

Windows Vista fornisce una nuova API, chiamata TaskDialog, che consente di visualizzare finestre di messaggio molto più user-friendly di quelle ottenibili con la classica funzione MessageBox.Show del .NET Framework: Su CodeProject è disponibile un wrapper scritto in C# per l'utilizzo di queste API. Il download può essere effettuato da questa pagina.

posted @ lunedì 8 gennaio 2007 13:26 | Feedback (0) | Filed Under [ C# VB .NET ]

Create your Conference System In .NET , C# VOIP & Video Conference Systems

Questa volta su CodeProject ho trovato un contributo con esempi in C# riguardanti Voice Over IP e Chat video in modalità P2P. Per il download, clic qui.

posted @ domenica 7 gennaio 2007 19:24 | Feedback (4) | Filed Under [ C# ]

Using Visual Studio 2005 on Vista

In questa pagina si può trovare un altro articolo che spiega come far funzionare correttamente Visual Studio 2005 su Windows Vista. Seguendo i suggerimenti riportati sono riuscito ad ottenere un ambiente di sviluppo funzionante correttamente, anche se rimane qualche problemino che spero venga risolto con l'Update del Service Pack 1.

posted @ sabato 6 gennaio 2007 20:01 | Feedback (3) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Windows Related ]

.NET Naming conventions

Negli ultimi mesi ho cercato di scrivere codice .NET rispettando le Naming conventions suggerite per i vari linguaggi. Oggi ho trovato un free ebook chiamato .NET Coding Guidelines, che credo mi sarà molto utile: .NET Coding Guidelines is a 100+ page ebook (PDF) on naming conventions, best coding practices and patterns written by the industry expert Steven Sartain and delivered to you for Free by SubMain. The document covers: Naming Guidelines Class Member Usage Guidelines Guidelines for Exposing Functionality to COM Error Raising & Handling Guidelines Array Usage Guidelines Operator Overloading Usage...

posted @ sabato 6 gennaio 2007 12:45 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Vista Application Crash Recovery

Questo articolo apparso su CodeProject sembra molto interessante: A new feature available in Vista is the ability to have a callback when your application crashes. This can allow you to attempt to persist your applications data before it is terminated. Upon restart, you can then reload that persisted data, thus giving your user a better experience (of course, it shouldn't crash in the first place, but we're being realistic, right!). Per il download e per maggiori dettagli, clic qui.

posted @ venerdì 5 gennaio 2007 21:30 | Feedback (1) | Filed Under [ C# VB .NET Windows Related ]

Spostare un file nel Cestino con C#

Utilizzando il metodo Delete degli oggetti File, FileInfo, Directory e DirectoryInfo, i file e le cartelle vengono cancellati dal sistema senza finire nel Cestino. Qualora si voglia passare per quest'ultimo, è necessario fare ricorso al Platform Invoke: [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] private struct SHFILEOPSTRUCT { public IntPtr hwnd; public int wFunc; public string pFrom; public string pTo; public short fFlags; public bool fAnyOperationsAborted; public IntPtr hNameMappings; [MarshalAs(UnmanagedType.LPWStr)] public string lpszProgressTitle; } [DllImport("shell32.dll", CharSet = CharSet.Unicode)] private...

posted @ venerdì 5 gennaio 2007 17:08 | Feedback (0) | Filed Under [ C# ]

Uno Speech Server mininale con il .NET Framework 3.0

La classe SpeechSynthesizer del .NET Framework 3.0 (di cui ho già parlato in questo post) consente di redirezionare l'output del Text-To-Speech su varie destinazioni, ovvero l'uscita audio del PC (default), un file WAV oppure un generico Stream. Sfruttando quest'ultimo, è possibile realizzare uno Speech Server minimale in grado di fornire funzionalità di Text-To-Speech anche a sistemi che non hanno la potenza adatta per gestire un motore di TTS oppure che non dispongono di una sua implementazione (come nel caso dei Pocket PC con il .NET Compact Framework 2.0). L'idea è semplice: sul server è in esecuzione un servizio che accetta le connessioni dai vari...

posted @ venerdì 5 gennaio 2007 14:08 | Feedback (1) | Filed Under [ C# .NET Compact Framework .NET 3.0 ]

Piccoli progetti crescono...

Poche ore fa ho fatto un check-in del progetto Extensions for .NET Framework, in cui ho aggiunto una classe per la gestione delle applicazioni a singola istanza. Queta estensione serve solo per i progetti realizzati in C#, dal momento che in VB .NET per ottenere lo stesso risultato è sufficiente attivare una casella di spunta nelle proprietà del progetto.

posted @ giovedì 4 gennaio 2007 18:27 | Feedback (0) | Filed Under [ C# CodePlex ]

Introduzione a SQL Server 2005 Compact Edition RC1

Questa pagina della Knowlege Base di Microsoft fornisce una panoramica su SQL Server 2005 Compact Edition RC1 e sulle note da tenere presente quando viene installato in un sistema con Visual Studio 2005 e SQL Server 2005.

posted @ giovedì 4 gennaio 2007 14:05 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Un componente per la creazione di interfacce in stile Office 2007

Qualche ora fa ho segnalato un esempio di Renderer che consente di creare menu e barre degli strumenti in stile Office 2007. Su quella stessa pagina, nella sezione dei feedback, si parla del Krypton Toolkit, un insieme di controlli che riproducono non solo i menu e le barre, ma tutti gli elementi dell'interfaccia del nuovo Office: Questo toolkit è completamente free e può essere utilizzato anche per applicazioni commerciali. Non vengono però forniti i codici sorgenti delle librerie, che sono disponibili solo a pagamento. Il download può essere effettuato dal sito del produttore Componet Factory. Il pacchetto, della dimensione di circa...

posted @ martedì 2 gennaio 2007 19:52 | Feedback (2) | Filed Under [ C# VB .NET ]

Office 2007 Renderer

Su CodeProject, a questo indirizzo, è disponibile un Renderer per menu, barre degli strumenti e barra di stato che riproduce lo stile di Office 2007: Il codice sorgente è in C#. Per poter effettuare il download è necessario registrarsi (gratuitamente).

posted @ martedì 2 gennaio 2007 14:08 | Feedback (0) | Filed Under [ C# ]

Qualche link utile

Ecco qualche lettura per iniziare l'anno nuovo: What Every Dev Must Know About Multithreaded Apps Discover the Design Patterns You're Already Using in the .NET Framework (questo mi è stato utilissimo!) ADO.NET and System.Transactions

posted @ lunedì 1 gennaio 2007 12:56 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET ]

Finestre di dialogo Apri e Salva con nome di Windows Vista con .NET 2.0

Chi ha provato ad utilizzare gli oggetti OpenFileDialog e SaveFileDialog di .NET 2.0 con Windows Vista si sarà sicuramente accorto che le finestre così visualizzate non utilizzano il nuovo stile, ma appaiono così come erano in Windows XP. Cercando maggiori informazioni in rete, ho scoperto perché. Le nuove API introdotte con Windows Vista non supportano l'hook delle finestre di dialogo: poiché gli oggetti OpenFileDialog e SaveFileDialog effettuano proprio l'hooking delle finestre, i controlli corrispondenti vengono visualizzati con il vecchio stile. Per fortuna qualcuno ha già pensato alla soluzione: sul sito Channel9 è disponibile un controllo, completo di codice sorgente in C#, che consente di visualizzare le finestre Apri...

posted @ domenica 31 dicembre 2006 14:39 | Feedback (5) | Filed Under [ C# VB .NET Windows Related ]

UAC: Shield Button in C#

Secondo le linee guida della UAC, se in un programma un pulsante determina l'esecuzione di attivà che richiedono i privilegi di amministratore, esso deve contenere l'icona di uno scudo: Per inserire quest'icona nei pulsanti di un programma .NET ci sono due possibilità: utilizzare un'immagine bitmap dello scudo oppure, più elegantemente, creare un controllo che estende la classe Button e utilizza l'API di Windows Vista per mostrare l'icona in questione: using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace System.Windows.Forms { public class ShieldButton : Button { private const uint BCM_SETSHIELD = 0x0000160C; ...

posted @ sabato 30 dicembre 2006 22:36 | Feedback (4) | Filed Under [ C# Windows Related ]

Upgrade Your Site's Authentication with the New ASP.NET 2.0 Membership API

This article discusses: Common authentication techniques for ASP.NET applications The Membership API and provider model in ASP.NET 2.0 Role-based security and authorizationClicca qui per leggere.

posted @ sabato 30 dicembre 2006 21:00 | Feedback (1) | Filed Under [ C# ASP .NET ]

The Performance Benefits of NGen

Questo articolo fornisce un'introduzione a NGen e spiega come utilizzarlo per migliorare le performance di un'applicazione .NET.

posted @ sabato 30 dicembre 2006 15:41 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Recommendations for Using Strings in Microsoft .NET 2.0

Code owners previously using the InvariantCulture for string comparison, casing, and sorting should strongly consider using a new set of String overloads in Microsoft .NET 2.0. Specifically, data that is designed to be culture-agnostic and linguistically irrelevant should begin specifying overloads using either the StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase members of the new StringComparison enumeration. These enforce a byte-by-byte comparison similar to strcmp that not only avoids bugs from linguistic interpretation of essentially symbolic strings, but provides better performance. Questo articolo è un po' vecchiotto, ma lo cito qui perché qualche giorno fa mi ha aiutato a risolvere un problema con cui stavo...

posted @ lunedì 25 dicembre 2006 21:14 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta

Da un paio di giorni è disponibile per il download la versione beta dell'aggiornamento per il Service Pack 1 di VS2005, il cui rilascio è previsto entro l'uscita a scaffale di Windows Vista e che dovrebbe risolvere i problemi che ancora affliggono Visual Studio quando è in esecuzione sul nuovo sistema operativo.

posted @ venerdì 22 dicembre 2006 19:43 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Windows Related ]

Text-To-Speech con il .NET Framework 3.0

Realizzare applicazioni con funzionalità di Text-To-Speech utilizzando il .NET Framework 3.0 è semplicissimo. Dopo aver aggiunto una reference allla libreria System.Speech, sono sufficienti poche righe di codice: using System.Speech.Synthesis; //... using (SpeechSynthesizer ss = new SpeechSynthesizer()) { ss.SelectVoice("ScanSoft Silvia_Dri40_16kHz"); ss.Speak("Ciao, spero che vada tutto bene. Ti auguro una buona giornata!"); } Il motore di text-to-speech può essere esteso con nuove voci. Nell'esempio ho utilizzato quella scaricabile gratuitamente all'indirizzo http://download.microsoft.com/download/1/2/2/12246417-CD66-4541-B32B-8CD18E92AAE7/RSSolo4Italian.zip. Questo codice funziona sia con Windows Vista sia con Windows XP.

posted @ martedì 19 dicembre 2006 18:51 | Feedback (13) | Filed Under [ C# ]

E' nato un dottore magistrale :-)

Ieri, alle ore 17.05 nel Dipartimento di Informatica dell'Università di Pisa, sono stato nominato Dottore Magistrale in Tecnologie Informatiche dopo aver discusso una tesi dal titolo "Progettazione e sviluppo di un framework per applicazioni mobili location-aware". Volevo rendervi partecipi della mia gioia, anche perché alcuni spunti per il lavoro che ho svolto mi sono venuti proprio leggendo gli articoli pubblicati su questo blog!

posted @ sabato 16 dicembre 2006 20:14 | Feedback (7) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) ]

Sandcastle December 2006 CTP

Il 10 Dicembre scorso è stata rilasciata la CTP di Dicembre 2006 di Sandcastle. Queste le novità: Sandcastle installer is now setting the DXROOT environment variable to the installation directory. All config files new has a DXROOT environment variable. MrefBuilder now Exclude (Ripping) Namespace, types and members. Exclude (Ripping) Namespace, types and members are configured through MrefBuilder.config. This issue was discussed at http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=935512&SiteID=1. The following HTML tags will pass through unchanged just like all the other HTML tags: <br/>, <hr/>, <h1></h1>, <h2></h2>, <h3></h3>, <h4></h4>, <h5></h5>, <h6></h6>, <pre></pre>, <div></div>, <span></span>, <blockquote></blockquote>, <abbr></abbr>, <acronym></acronym>. Support for separate...

posted @ sabato 16 dicembre 2006 20:02 | Feedback (23) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

X-10 in C#

Tempo fa, per un esame universitario, mi ero avvicinato a X-10, un protocollo con qualche anno sulle spalle e non molto diffuso qui in Europa (lo è molto di più in America) per controllare le apparecchiature elettriche di casa (http://www.x10.com/homepage.htm). Avevo trovato un OCX che consentiva di pilotare un dispositivo X-10, ma all'epoca non c'era niente per il mondo managed. Poi mi sono dedicato ad altro e non mi sono più tenuto aggiornato. Oggi, per puro caso, ho pensato di fare una nuova ricerca per vedere se qualcosa era cambiato: sono così incappato in questo sito: http://brian.vallelunga.com/code/x10. Sembra proprio quello che stavo cercando......

posted @ giovedì 14 dicembre 2006 16:42 | Feedback (4) | Filed Under [ C# Tutto & Oltre :-) ]

Vulnerability in Visual Studio 2005 Could Allow Remote Code Execution

Su questa pagina è stato pubblicato un comunicato relativo ad una vulnerabilità che affligge le seguenti versioni di Visual Studio: Standard Edition Professional Edition Team Suite Team Edition for Developers Team Edition for Architects Team Edition for Testers La vulnerabilità è considerata critica. Per fortuna è già stato reso disponibile un aggiornamento: http://www.microsoft.com/downloads/details.aspx?FamilyId=C2682C53-8E9A-4C7D-B782-BE78512DCBFA.

posted @ mercoledì 13 dicembre 2006 21:18 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Bruteforce in C#

E' proprio vero che su CodeProject si può trovare di tutto... Questa volta ho scovato un esempio di algoritmo di bruteforce scritto in C#! Per quanti sono interessati, o solo curiosi, il codice, ampiamente commentato, è disponibile qui.

posted @ martedì 12 dicembre 2006 21:31 | Feedback (2) | Filed Under [ C# ]

Interessante articolo sul Microsoft Intermediate Language

Segnalo questo interessante articolo che fornisce un'introduzione al Microsoft Intermediate Language (IL): http://www.devcity.net/Articles/54/msil_1_intro.aspx

posted @ sabato 9 dicembre 2006 14:45 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Script#

Durante uno dei miei soliti giri in rete alla ricerca di novità, mi sono imbattutto su Script#: The Script# compiler is a C# compiler that generates JavaScript as its output instead of IL. A key goal of the compiler to produce readable JavaScript (as if you had authored it by hand), and would be comfortable deploying into real apps. Hence the translation works from C# source directly into JavaScript without an intermediate IL layer. The compiler can also produce equivalent, but much more compact script for use in release mode deployment. The compiler does not introduce any additional levels of abstraction, thereby...

posted @ sabato 9 dicembre 2006 14:34 | Feedback (0) | Filed Under [ C# ]

Programmer's Heaven C# School Book

Segnalo un altro libro gratutito su C#: The Programmer's Heaven C# School book covers the .NET framework and the C# language. Starting with the basics of the language, it goes on to cover object oriented programming techniques and a wide range of C# languages features including interfaces, exceptions and delegates. Later chapters cover practical topics including database access with ADO.NET, building Windows forms applications, multi-threading and asynchronous I/O. The final chapter covers new features in C# 2.0, including generics. Per il download, fate clic qui oppure qui.

posted @ venerdì 8 dicembre 2006 19:40 | Feedback (0) | Filed Under [ C# ]

Paint.NET 3.0 Beta 1

Rispettando la roadmap comunicata qualche tempo fa, da un paio di giorni è disponibile la Beta 1 della versione 3.0 di Paint.NET. Il Change Log è molto lungo: New effect: Clouds New menu command: Edit->Fill Selection (shortcut key: Backspace). This will fill any selected area with the primary color. New toolbar item / hotkey: The brush size may be manipulated with +/- buttons in the toolbar. Hotkeys for this are [ and ], and you may hold Ctrl to increment or decrement by 5. New translations: They are not complete yet, and in fact some have just been started....

posted @ mercoledì 6 dicembre 2006 12:04 | Feedback (1) | Filed Under [ C# Tutto & Oltre :-) ]

Windows Explorer con Visual Studio 2005

Sul sito CodeProject è stato recentemente pubblicato un add-in per Visual Studio 2005 che aggiunge al menu contestuale del Solution Explorer un comando con cui è possibile avviare Esplora risorse facendolo puntare dirattemente sulla cartella che contiene la soluzione o il progetto selezionato. E' molto semplice, ma nello stesso tempo estramamente utile. Per i dettagli e per il download, fare clic qui.

posted @ lunedì 27 novembre 2006 12:40 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Sandcastle November 2006 CTP

Mi era sfuggito... Da qualche giorno è disponibile la CTP di Novembre 2006 di Sandcastle: What's new in this version: Support for the following nDoc custom tags: overloads preliminary threadsafety note Generating Friendly HTM names (A new transform "AddFriendlyFilenames.xsl" has been provided) Exclude (Ripping) Namespace, types and members (Configured through MrefBuilder.config) VS 2005 transforms support for FireFox Changes in this version: 1.    Moved cpref_reflection folder from Examples to Data directory 2.    Consistent versioning (2.2.00) of all assemblies and executables in ProductionTools folder 3.    All...

posted @ venerdì 17 novembre 2006 17:21 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

8 Simple Rules For Developing More Secure Code

Interessante articolo sulla sicurezza del codice, pubblicato su MSDN Magazine di Novembre.

posted @ martedì 7 novembre 2006 18:18 | Feedback (1) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Visual Studio 2005 SDK Version 4 November 2006 CTP

Da qualche giorno è disponibile la CTP della versione 4 - Novembre 2006 dell'SDK di Visual Studio 2005. Sul blog di Aaron Marten è disponibile l'elenco delle principali novità: ToolboxControlsInstaller Package Redistributable Controls sample (which demonstrates using the above ToolboxControlsInstaller) Sample showing how to use the VsIdeHostAdapter (look in the  Example.EditorWithToolbox\IntegrationTests folder) Sandcastle now shipping in the VS SDK New Setup UI Setup MSI Caching (helps in uninstall/repair scenarios) Better behavior under Vista/UAC Maggiori informazioni sono disponibili direttamente alla fonte.

posted @ lunedì 30 ottobre 2006 21:53 | Feedback (0) | Filed Under [ C# VB .NET ASP .NET Updates & Service Pack ]

Stored procedue in CLR

Su Code Project sono stati pubblicati tre interessanti articoli che si occupano della scrittura delle cosiddette CLR stored procedure: CLR store procedure vs. T-SQL store procedure: how to and when to choose CLR store procedure over T-SQL store procedure and vice versa How to create CLR store procedure: how to create CLR store procedure Deploy and Debug CLR store procedure: how deploy and debug CLR store procedure

posted @ domenica 15 ottobre 2006 14:31 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ]

NDoc 2005

A quanto pare qualcosa si sta muovendo... This project is a Fork of NDoc it was created to add VS2005 support to NDoc. The Source is developed in and intended for use with Visual Studio.net 2005. The Application is intended for use on Microsoft's .Net Framework v.2.0 Attualmente il programma, ospitato su SourceForge, è in fase di beta testing. Ho fatto qualche velocissima prova, e mi sembra che funzioni correttamente... Nei prossimi giorni farò qualche test più approfondito, spero proprio di aver trovato il tool che cercavo! Il progetto è raggiungibile qui.

posted @ venerdì 13 ottobre 2006 20:20 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Administering ClickOnce Deployments

ClickOnce provides an easy-to-use and flexible deployment mechanism for smart client applications built for the .NET Framework 2.0. ClickOnce offers end-user deployment, ready-made installation dialogs, a built-in security model, and automatic or on-demand updates. But while it's great to have so many built-in features, one area that users often request more control is in tracking who uses which applications, controlling access to those applications, and knowing when something goes wrong. You may just need to keep track of who is using which versions of each application at the user level. You may want to restrict access to certain applications and...

posted @ mercoledì 11 ottobre 2006 19:51 | Feedback (0) | Filed Under [ C# VB .NET ]

Sandcastle e Sandcastle Help File Builder

Lo scorso 7 ottobre è stata rilasciata la nuova CTP di Sandcastle. Il Wiki del programma è disponibile qui, mentre per il download fate riferimento a questa pagina. A giudicare dai bug fix di questa versione, sembra proprio che a breve potremmo utilizzare un prodotto molto ben fatto... A distanza di 2 giorni da questo annucio, anche il programma Sandcastle Help File Builder è stato aggiornato per supportare la nuova relase. L'autore ha deciso di spostare il progetto su CodePlex, per cui adesso la pagina di riferimento è http://www.codeplex.com/Wiki/View.aspx?ProjectName=SHFB.

posted @ martedì 10 ottobre 2006 11:24 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Un po' di chiarezza...

Forse perché mi ci sono avvicinato tardi, fatto sta che ho ancora qualche dubbio sui nuovi strumenti Microsoft per gli sviluppatori (.NET 3.0, Orcas, LINQ, ADO .NET vNext, e chi più ne ha più ne metta...). Sul sito www.larkware.com ho trovato il link a questo post che mi ha aiutato a fare un po' di chiarezza.

posted @ martedì 10 ottobre 2006 11:08 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Controlli ASP .NET

Theme Switcher Control (demo online) This free ThemeSwitcher control allows the user to choose one of the available themes (ASP.NET 2.0). The theme is applied automatically to all ASP.NET pages in the web site, and is made persistent through the use of a cookie. ASP.NET Popup Control (demo online) This control imitates MSN Messenger alert, but it is designed for use in a web page. Graphical appearance of this control can be completely changed by using one of predefined styles or by modifying all colors used on the control. Control supports Drag&Drop, so user can move...

posted @ lunedì 9 ottobre 2006 18:07 | Feedback (1) | Filed Under [ C# VB .NET ASP .NET ]

Nuovi articoli su MSDN

Questa sera ho fatto il mio solito salto sulla Home Page di MSDN per scoprire le ultime news, e ho trovato i seguenti articoli che mi sembrano molto interessanti: Smart Clients: New Guidance And Tools For Building Integrated Desktop Applications Integrated Desktop is a loosely coupled hosting architecture and composite UI that runs on the desktop and is supported by a loosely coupled architecture on the back end. It collapses the number of applications that users must work in. Build Smarter ASP.NET File Downloading Into Your Web Applications Buona lettura :-)

posted @ lunedì 2 ottobre 2006 21:41 | Feedback (0) | Filed Under [ C# VB .NET ]

Supporto al controllo di editing DHTML in Windows Vista

Come tutti sappiamo, Vista non supporterà il controllo di editing DHTML, essenzialmente per motivi di sicurezza. L'articolo Replacing the DHTML Editing Control in Windows Vista and Beyond fornisce qualche informazione utile sulle conseguenze di questo fatto.

posted @ domenica 1 ottobre 2006 21:10 | Feedback (0) | Filed Under [ C# VB .NET Windows Related ]

Bottoni arrotondati in C#

Mi è stato chiesto di realizzare un'interfaccia utente in C# che, tra le altre cose, deve utilizzare bottoni "arrotondati". Ho quindi fatto il solito giro su Code Project e mi sono imbattuto in questo esempio: http://www.codeproject.com/cs/miscctrl/RoundButton.asp.

posted @ giovedì 28 settembre 2006 15:42 | Feedback (1) | Filed Under [ C# ]

Web Service Studio Express... Il mio primo progetto su Subversion

Da tempo mi ero ripromesso di dare un'occhiata a Subversion. Oggi, quando ho trovato un addin per Visual Studio 2005, mi sono detto di non avere più scuse... Così l'ho installato, ho creato un progetto su Google Code ed ho iniziato a riversarci l'opera su cui sto attualmente lavorando: Web Service Studio Express, un ambiente di test che consente di invocare dinamicamente i metodi esposti da un qualunque Web service, con la possibilità di specificare tutti i parametri necessari, e di elaborare i messaggi di risposta (ho visto che una cosa del genere, nell'ambito free, esiste già (su GotDotNet.com), ma...

posted @ mercoledì 27 settembre 2006 13:08 | Feedback (4) | Filed Under [ C# VB .NET Tutto & Oltre :-) ]

Aggiornamento di Sandcastle Help File Builder

Poche ore fa l'autore del tool Sandcastle Help File Builder ha postato un aggiornamento del programma sul sito di Code Project. Non ho ancora avuto modo di provarlo, ma spero risolva i problemi che avevo riscontrato con la versione precedente. In attesa che Microsoft rilasci la versione definitiva di Sandcastle e fornisca uno strumenti visuale per il suo utilizzo...

posted @ martedì 26 settembre 2006 13:06 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Using Settings in C#

Ho una delle funzionalità che hanno semplificato maggiormente la mia vita di sviluppatore sono gli Application and User Settings introdotti con .NET 2.0: su questa pagina c'è una breve introduzione all'argomento.

posted @ mercoledì 20 settembre 2006 10:39 | Feedback (0) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET ]

How to make a Transparent WinForm like VistaForm in VS2005

Mi sembra un esempio carino: http://www.codeproject.com/useritems/How_to_make_VistaForm.asp. A dir la verità, non ho ancora avuto modo di provare il Framework .NET 3.0, ma penso che esisterà sicuramente una proprietà della classe Form con cui ottenere questo effetto senza dover scrivere una riga di codice...

posted @ domenica 27 agosto 2006 12:45 | Feedback (0) | Filed Under [ C# ]

NDoc con supporto al .NET Framework 2.0

Purtroppo sappiamo tutti che il progetto NDoc è stato abbandonato dal suo autore. In attesa dei prossimi sviluppi di Sandcastle, sulla pagina http://jonas.lagerblad.com/blog/?p=5 ho trovato una versione di NDoc modificata perché funzioni correttamente con il .NET Framework 2.0. Fin qui niente di nuovo... La novità è che essa fornisce anche un supporto per i generics, seppure parziale. Non è proprio la soluzione definitiva per la documentazione del codice, anche perché in alcuni casi la creazione della guida fallisce. Ad ogni modo, è comunque un progetto interessante, che può servire da soluzione temporanea, in attesa di buone notizie da Microsft :-) Per inciso, nella...

posted @ venerdì 18 agosto 2006 12:04 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Sandcastle Help File Builder

Sulla pagina http://www.codeproject.com/useritems/SandcastleBuilder.asp è stato recentemente pubblicato un programma scritto in C# che consente di automatizzare la creazione di file di documentazione con Sandcastle. Oltre al programma di installazione, è disponibile anche il codice sorgente. Personalmente, non sono ancora riuscito a far funzionare il nuovo tool Microsoft... sarà che è solo una CTP, ma prima avevo problemi utilizzando la riga di comando, ora con questo programma Sandcastle si ferma per un'ora sulla scritta Building help topics, poi genera il messaggio di errore BUILD FAILED: input string was not in a correct format... Comunque attendo fiducioso la prossima release!

posted @ mercoledì 16 agosto 2006 11:51 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET ]

Microsoft Virual Earth

Virtual Earth is the mapping technology that powers local.live.com, the latest local search and mapping site from Microsoft. Virtual Earth™ technology was built by the same team that created MapPoint® 2006 and the MapPoint Web service. It is implemented using a mix of both server-side and client-side technologies that include ASP.NET, asynchronous JavaScript, and JavaScript Object Notation (JSON). You can build your own application or Web site that uses Virtual Earth mapping technologies by using the Virtual Earth map control, a JavaScript component that provides all the functionality you need to draw maps, search for locations, and get driving...

posted @ martedì 15 agosto 2006 13:19 | Feedback (5) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET Tutto & Oltre :-) ]

SDK di Broadcom free!

Quando ho avuto la necessità di utilizzare dispositivi Bluetooth con .NET, mi sono scontrato con il fatto che le diverse periferiche in commercio implementano diversi stack Bluetooth. C'è l'implementazione di Microsoft, che è stata anche inclusa nel Service Pack 2 di Windows XP, e ci sono gli stack di Toshiba e Widcomm. Fino a qualche giorno fa, lo stack Microsoft era l'unico dotato di SDK gratutito, mentre per le altri implementazioni era necessario acquistare un SDK di terze parti, dal momento che le specifiche non erano pubbliche. Ora, però, la situazione sembra essere cambiata, infatti Bradcom ha annuciato la disponibilità...

posted @ mercoledì 9 agosto 2006 14:25 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ]

Disponibile la prima CTP di Sandcastle

Qualche ora fa è stata resa disponibile la prima CTP di Sandcastle. Per il download diretto, fate clic sul seguente collegamento: http://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en. Per maggiori informazioni, invece, visitate questa pagina, che tra le altre cose fornisce un esempio passo-passo che spiega come realizzare un file CHM con Sandcastle.

posted @ domenica 30 luglio 2006 14:53 | Feedback (0) | Filed Under [ C# VB .NET Updates & Service Pack ]

Interessante introduzione ad Atlas

Segnalo un altro articolo di MSDN Magazine che ritengo particolarmente interessante: ASP.NET Atlas Powers the AJAX-Style Sites You’ve Been Waiting For. Come si intuisce dal nome, esso fornisce un'introduzione ad Atlas, l'implementazione del pattern AJAX secondo Microsoft: Atlas, an extension of the .NET Framework 2.0, enables developers to more easily create rich, interactive Web sites that take advantage of both browser and server features. powered by IMHO 1.3

posted @ venerdì 28 luglio 2006 12:35 | Feedback (5) | Filed Under [ C# VB .NET ASP .NET ]

Monitorare un'applicazione con System.Diagnostics

Questo articolo: http://msdn.microsoft.com/msdnmag/issues/06/07/AdvancedBasics/, preso da MSDN Magazine di Luglio, spiega come utilizzare gli oggetti messi a disposizione dal namespace System.Diagnostics per monitorare la propria applicazione, ad esempio definendo un Performance Counter oppure scrivendo nel Log di sistema. Gli esempi di codice sono scritti in VB .NET 2005, per il quale vengono anche mostrate le scorciatoie utilizzando il namespace My, ma quanto detto si può realizzare facilmente anche con C#.

posted @ giovedì 27 luglio 2006 01:11 | Feedback (0) | Filed Under [ C# VB .NET ]

Aggiungere i file recenti alla propria applicazione

Spesso si ha la necessità di aggiungere al menu File di un'applicazione la classica funzionalità Documenti recenti a cui ormai tutti siamo abituati. Con il seguente snippet di codice è possibile semplificare enormemente questo task: using System;using System.Collections.Specialized;using System.Text;using System.Windows.Forms;using System.IO;using System.Collections;using System.Runtime.InteropServices;namespace SpecialServices{    public delegate void RecentFileSelectedEventHandler(RecentFiles sender, string FileName);    public class RecentFiles    {        #region Platform Invoke        private const int SHARD_PATH = 0x2;        [DllImport("shell32.dll")]        private static extern void SHAddToRecentDocs(uint uFlags, string pv);        #endregion        private const int MAX_MENU_ITEMS = 4;        private const int MAX_LENGTH = 24;        private ToolStripMenuItem mMenu;        private int mPosition;        private int mMaxMenuItems;        private StringCollection mFiles;        private RecentFileSelectedEventHandler mOnClick;        private bool mShowRecentFiles;                public RecentFiles(ToolStripMenuItem Menu, RecentFileSelectedEventHandler onClick)            : this(Menu, Menu.DropDownItems.Count, MAX_MENU_ITEMS, onClick)        { }        public RecentFiles(ToolStripMenuItem Menu, int Position, RecentFileSelectedEventHandler onClick)            : this(Menu, Position, MAX_MENU_ITEMS, onClick)        {}        public RecentFiles(ToolStripMenuItem Menu, int Position, int MaxMenuItems, RecentFileSelectedEventHandler onClick)            : this(Menu, Position, MaxMenuItems, true, onClick)        { }                public RecentFiles(ToolStripMenuItem Menu, int Position, int MaxMenuItems, bool ShowItem, RecentFileSelectedEventHandler onClick)        {            mFiles = Settings.Default.RecentFiles;            if (mFiles == null)                mFiles = new StringCollection();            mMenu = Menu;            mPosition = Position;            mMaxMenuItems = MaxMenuItems;            mOnClick = onClick;            mShowRecentFiles = ShowItem;            if (mShowRecentFiles)            {                //Visualizza l'elenco dei file recenti.                this.DrawMenu();            }        }        #region ShortenPathName        private string ShortenPathName(string PathName)        {            if (PathName.Length <= MAX_LENGTH)                return PathName;            StringBuilder root = new StringBuilder(Path.GetPathRoot(PathName));            if (root.Length > 3)                root.Append(Path.DirectorySeparatorChar);            String[] elements = PathName.Substring(root.Length).Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);            int filenameIndex = elements.GetLength(0) - 1;            if (elements.GetLength(0) == 1)             {                if (elements[0].Length > 5)                 {                    if (root.Length + 6 >= MAX_LENGTH)                        return root.Append(elements[0].Substring(0, 3) + "...").ToString();                    else                        return PathName.Substring(0, MAX_LENGTH - 3) + "...";                }            }            else if ((root.Length + 4 + elements[filenameIndex].Length) > MAX_LENGTH)             {                root.Append("...\\");                int len = elements[filenameIndex].Length;                if (len < 6)                    return root.Append(elements[filenameIndex]).ToString();                if ((root.Length + 6) >= MAX_LENGTH)                    len = 3;                else                    len = MAX_LENGTH - root.Length - 3;                return root.Append(elements[filenameIndex].Substring(0, len) + "...").ToString();            }            else if (elements.GetLength(0) == 2)            {                return root.Append("...\\" + elements[1]).ToString();            }            else            {                int len = 0;                int begin = 0;                for (int i = 0; i < filenameIndex; i++)                {                    if (elements[i].Length > len)                    {                        begin = i;                        len = elements[i].Length;                    }                }                int totalLength = PathName.Length - len + 3;                int end = begin + 1;                while (totalLength > MAX_LENGTH)                {                    if (begin > 0)                        totalLength -= elements[--begin].Length - 1;                    if (totalLength <= MAX_LENGTH)                        break;                    if (end < filenameIndex)                        totalLength -= elements[++end].Length - 1;                    if (begin == 0 && end == filenameIndex)                        break;                }                for (int i = 0; i < begin; i++)                {                    root.Append(elements[i]);                    root.Append('\\');                }                root.Append("...\\");                for (int i = end; i < filenameIndex; i++)                {                    root.Append(elements[i]);                    root.Append('\\');                }                return root.Append(elements[filenameIndex]).ToString();            }            return PathName;        }        #endregion        private void ClearMenu()        {            if (mFiles.Count > 0)            {                //Se necessario, elimina il separatore.                if ((mPosition + mFiles.Count) < mMenu.DropDownItems.Count)                    mMenu.DropDownItems.RemoveAt(mPosition + mFiles.Count - 1);                //Elimina l'elenco dei file recenti.                for (int i = (mPosition + mFiles.Count - 1); i >= mPosition; i--)                    mMenu.DropDownItems.RemoveAt(i);            }        }                        private void DrawMenu()        {            if (mFiles.Count > 0)            {                for (int i = 0; i < mFiles.Count; i++)                {                    if (i >= mMaxMenuItems)                    {                        mFiles.RemoveAt(i);                    }                     else                    {                        ToolStripMenuItem item = new ToolStripMenuItem("&" + (i + 1) + " " + this.ShortenPathName(mFiles[i]), null, item_Click);                        //Nel tag dell'item è salvato il numero di ordine del file                        //recente. Questo serve perchè, dal comando di menu, sia                        //possibile risalire immediatamente al nome del file vero                        //e proprio.                        item.Tag = i;                        mMenu.DropDownItems.Insert(mPosition + i, item);                    }                }                //Se i file recenti non sono le ultime voci del menu, inserisce un                //separatore dopo l'elenco.                if ((mPosition + mFiles.Count) < mMenu.DropDownItems.Count)                    mMenu.DropDownItems.Insert(mPosition + mFiles.Count, new ToolStripSeparator());            }        }        private void item_Click(object sender, EventArgs e)        {            string file = mFiles[int.Parse(((ToolStripMenuItem)sender).Tag.ToString())];            //Lancia l'evento che segnala che è stato selezionato un file recente.            if (mOnClick != null)                mOnClick(this, file);        }        public void AddFile(string FileName)        {            if (mShowRecentFiles)            {                //Cancella l'elenco dei file recenti.                this.ClearMenu();            }            //Controlla se il file da aggiungere è già presente nella lista: in            //questo caso, lo sposta in cima.            int index = this.IndexOf(FileName);            if (index != -1)                mFiles.RemoveAt(index);                            //Aggiunge (o sposta) il file all'inizio della lista.            mFiles.Insert(0, FileName);            SHAddToRecentDocs(SHARD_PATH, FileName);            //Se necessario, elimina i file "meno recenti".            if (mFiles.Count > mMaxMenuItems)            {                for (int i = mMaxMenuItems; i < mFiles.Count; i++)                    mFiles.RemoveAt(i);            }            if (mShowRecentFiles)            {                //Aggiorna l'elenco dei file recenti.                this.DrawMenu();            }        }        public int MaxMenuItems        {            get { return mMaxMenuItems; }            set             {                if (value != mMaxMenuItems)                {                    mMaxMenuItems = value;                    this.ClearMenu();                    this.DrawMenu();                }            }        }        public bool ShowRecentFiles        {            get { return mShowRecentFiles; }            set             {                if (value != mShowRecentFiles)                {                    mShowRecentFiles = value;                    if (mShowRecentFiles)                    {                        this.DrawMenu();                    }                    else                    {                        this.ClearMenu();                    }                }            }        }        private int IndexOf(string value)        {            //Utilizza questo metodo per evitare             int i  = 0;            while (i < mFiles.Count)            {                if (string.Compare(mFiles[i], value, true) == 0)                    return i;                i++;            }            return -1;        }    }} Ad esempio, per visualizzare i 4 file recenti nel menu File (mnuFile ), sopra l'ultimo comando (che tipicamente è Esci), ed eseguire la routine RecentFile_Click quando viene selezionato un documento, è sufficiente scrivere: RecentFiles Recents = new RecentFiles(mnuFile, mnuFile.DropDownItems.Count - 1,                                    4, RecentFile_Click);                                    private void RecentFile_Click(RecentFiles sender, string FileName){    //Inserire il codice per aprire il file FileName.}La classe RecentFiles si occupa anche di inserire il file selezionato nel menu Dati Recenti di Windows. Quello che manca è il salvataggio dell'elenco dei file alla chiusura dell'applicazione, ma può...

posted @ sabato 22 luglio 2006 21:55 | Feedback (2) | Filed Under [ C# ]

Cancellare ricorsivamente una directory

L'oggetto Directory contenuto nel namespace System.IO espone un metoto, Delete, che con un opportuno parametro consente di cancellare ricorsivamente tutte le directory, i file e le sottodirectory in essa contenute. Tuttavia, nel caso in cui un file abbia l'attributo di sola lettura, l'operazione fallisce. In questo caso è necessario ricorrere ad una cara funzione ricorsiva che, prima della cancellazione di ogni file, ne imposta l'attributo su Archivio: using System;using System.IO;namespace SystemControl{    public static class Cleaner    {        private static void DeleteFiles(DirectoryInfo di, bool DeleteDirectory)        {            foreach (FileInfo f in di.GetFiles())            {                try                {                    //Imposta l'attributo di archivio per il file prima di eliminarlo.                    File.SetAttributes(f.FullName, FileAttributes.Archive);                    f.Delete();                }                catch                 { }            }            foreach (DirectoryInfo d in di.GetDirectories())            {                //Richiama ricorsivamente la funzione per eliminare tutte le sottodirectory.                DeleteFiles(d, true);            }            if (DeleteDirectory)                di.Delete();        }        public static void Delete(DirectoryInfo di)        {            //Elimina tutti i file contenuti nella directory specificata.            DeleteFiles(di, false);        }                public static void Delete(Directory path)        {            //Elimina tutti i file contenuti nella directory specificata.            DeleteFiles(new DirectoryInfo(path), false);        }    }} powered by IMHO 1.3

posted @ lunedì 17 luglio 2006 21:35 | Feedback (1) | Filed Under [ C# ]

Recuperare le dipendenze di un assembly

Per sapere quale Assembly sono usati dalla nostra applicazione, è sufficiente invocare un metodo: AssemblyName[] names = Assembly.GetEntryAssembly().GetReferencedAssemblies();foreach (AssemblyName name in names)    lvwDipendenze.Items.Add(new ListViewItem(new string[] { name.Name, name.Version.ToString(3) })); Questo esempio popola la ListView lvwDipendenze, inserendo nella prima colonna il nome dell'assembly e nella seconda la sua versione. powered by IMHO 1.3

posted @ giovedì 13 luglio 2006 21:20 | Feedback (0) | Filed Under [ C# ]

Creare un'applicazione senza interfaccia utente

Il framwork .NET offre un metodo abbastanza semplice per creare un'applicazione senza interfaccia utente (ad esempio, un'applicazione che deve rispondere alla pressione di una HotKey, come ho mostrato in un post precedente). E' sufficiente creare una classe che estende ApplicationContext e richiamarla utilizzando il metodo Application.Run. Ad esempio, creiamo una nuova Windows Application, quindi rimuoviamo il file Form1.cs e inseriamo il codice sotto riportato nel file Program.cs, sostituendo quello esistente:     static class Program    {        static void Main()        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            Application.Run(new Control());        }        public class Control : ApplicationContext        {            private System.Threading.Timer timer;            public Control()            {                timer = new System.Threading.Timer(new System.Threading.TimerCallback(TimerCallback), null, 5000, 5000);            }            private void TimerCallback(object state)            {                timer.Dispose();                Application.Exit();            }        }    } Questo esempio si limita ad avviare un'applicazione senza interfaccia utente che attende cinque secondi, quindi termina la sua esecuzione. Lo schema qui illustrato ha comunque validità generale, e può essere riadattato...

posted @ domenica 9 luglio 2006 19:32 | Feedback (0) | Filed Under [ C# ]

Impedire l'esecuzione multipla di un'applicazione

Tavolta si ha l'esigenza di impedire l'esecuzione di più istanze della stessa applicazione. Visual Basic .NET, nella sua ultima versione, consente di aggiungere questa funzionalità semplicemente spuntando un'opzione del progetto. Con C#, invece, è necessario scrivere qualche riga di codice: using System;using System.Diagnostics;using System.Runtime.InteropServices;using System.Threading;using System.Reflection;namespace SpecialServices{    //SingleProgamInstance uses a mutex synchronization object    // to ensure that only one copy of process is running at    // a particular time.  It also allows for UI identification    // of the intial process by bring that window to the foreground.    public class SingleProgramInstance : IDisposable    {        #region Platform Invoke        //Win32 API calls necesary to raise an unowned processs main window        [DllImport("user32.dll")]         private static extern bool SetForegroundWindow(IntPtr hWnd);        [DllImport("user32.dll")]         private static extern bool ShowWindowAsync(IntPtr hWnd,int nCmdShow);        [DllImport("user32.dll")]         private static extern bool IsIconic(IntPtr hWnd);        private const int SW_RESTORE = 9;        #endregion        private Mutex processSync;        public SingleProgramInstance()            : this(string.Empty)        {        }        public SingleProgramInstance(string identifier)        {                processSync = new Mutex(false,                Assembly.GetExecutingAssembly().GetName().Name + identifier);        }        ~SingleProgramInstance()        {            //Release mutex (if necessary)             //This should have been accomplished using Dispose()             this.Release();        }        public bool IsSingleInstance        {            get            {                if (processSync.WaitOne(0, false))                    return true;                else                    return false;            }        }        public void RaiseOtherProcess()        {            Process proc = Process.GetCurrentProcess();            // Using Process.ProcessName does not function properly when            // the name exceeds 15 characters. Using the assembly name            // takes care of this problem and is more accruate than other            // work arounds.            string assemblyName = Assembly.GetExecutingAssembly().GetName().Name;            foreach (Process otherProc in Process.GetProcessesByName(assemblyName))            {                //ignore this process                if (proc.Id != otherProc.Id)                {                    // Found a "same named process".                    // Assume it is the one we want brought to the foreground.                    // Use the Win32 API to bring it to the foreground.                    IntPtr hWnd = otherProc.MainWindowHandle;                    if (IsIconic(hWnd))                        ShowWindowAsync(hWnd,SW_RESTORE);                    SetForegroundWindow(hWnd);                    return;                }            }        }        #region Implementation of IDisposable        private void Release()        {            try            {                if (processSync.WaitOne(0, false))                {                    //If we own the mutex then release it so that                    // other "same" processes can now start.                    processSync.ReleaseMutex();                }                processSync.Close();            }            catch { }        }        public void Dispose()        {            //release mutex (if necessary) and notify             // the garbage collector to ignore the destructor            this.Release();            GC.SuppressFinalize(this);        }            #endregion    }}     Questo codice fa uso di un oggetto Mutex per evitare che verificare se lo stesso processo è già in esecuzione: in questo caso, fornisce un metodo che consente di riportare la sua finestra in primo piano. Ecco un semplice esempio del suo utilizzo (da inserire nel metodo Main del file Program.cs): using (SpecialServices.SingleProgramInstance spi = new SpecialServices.SingleProgramInstance()){    if (spi.IsSingleInstance)    {        //E' la prima esecuzione del programma.        Application.EnableVisualStyles();        Application.SetCompatibleTextRenderingDefault(false);        Application.Run(new Form1());    }    else    {        //E' già attiva un'altra istanza del programma. La porta in primo piano.        spi.RaiseOtherProcess();    }} Questo esempio di codice è stato realizzato prendendo spunto dal suggerimento...

posted @ venerdì 7 luglio 2006 11:32 | Feedback (5) | Filed Under [ C# ]

Snippet Compiler

Capita spesso di dover provare al volo un piccolo stralcio di codice, e in questi casi può essere noioso (oltre che lento) creare una soluzione di Visual Studio, magari solo per testare un paio di righe. In casi come questo, ci viene in aiuto un piccolo strumento freeware, Snippet Compiler. Una volta avviato, presenta una finestra in cui è subito possibile iniziare a scrivere il codice da provare. Fatto questo, con la pressione del tasto F5 si manda in esecuzione: tutti i salvataggi sono fatti automaticamente dal programma. Sono supportati anche il debug, la colorazione del codice e l'IntelliSense. Per...

posted @ martedì 4 luglio 2006 11:01 | Feedback (0) | Filed Under [ C# VB .NET ]

Gestire le HotKey con C#

Il Framework .NET non fornisce metodi che consentono di registrare HotKey a livello di sistema. In questo caso ci viene in aiuto il Platform Invoke: using System;using System.Runtime.InteropServices;using System.Collections.Generic;using System.Windows.Forms;namespace HotKey{    public class HotKeyHandler : NativeWindow, IDisposable    {        #region Platform Invoke        [Flags]        public enum Modifiers        {            NONE = 0,            MOD_ALT = 0x01,            MOD_CONTROL = 0x02,            MOD_SHIFT = 0x04,            MOD_WIN = 0x08        }        private static readonly int WM_HOTKEY = 0x0312;        [DllImport("user32.dll")] private static extern bool RegisterHotKey(IntPtr hWnd, int Id, int fsModifiers, int vlc);        [DllImport("user32.dll")] private static extern bool UnregisterHotKey(IntPtr hWnd, int Id);        #endregion        private struct HotKeyInfo        {            public Keys Key;            public Modifiers Modifier;            public HotKeyInfo(Keys Key, Modifiers Modifier)            {                this.Key = Key;                this.Modifier = Modifier;            }            public static bool operator==(HotKeyInfo HotKey1, HotKeyInfo HotKey2)            {                return ((HotKey1.Key == HotKey2.Key) && (HotKey1.Modifier == HotKey2.Modifier));            }            public static bool operator !=(HotKeyInfo HotKey1, HotKeyInfo HotKey2)            {                return ((HotKey1.Key != HotKey2.Key) || (HotKey1.Modifier != HotKey2.Modifier));            }            public override bool Equals(object obj)            {                if (obj == null || GetType() != obj.GetType())                    return false;                return this == (HotKeyInfo)obj;            }            public override int GetHashCode()            {                return base.GetHashCode();            }        }        private static int mLastID = 0;        private Dictionary<int, HotKeyInfo> mHotKeys = null;        public HotKeyHandler()        {            this.CreateHandle(new CreateParams());            mHotKeys = new Dictionary<int, HotKeyInfo>();        }        public bool Register(Keys Key)        {            return this.Register(Key, Modifiers.NONE);        }        public bool Register(Keys Key, Modifiers Modifier)        {            mLastID++;            //Registra la HotKey.            if (RegisterHotKey(this.Handle, mLastID, (int)Modifier, (int)Key) == true)            {                //Se la registrazione ha avuto esito positivo, aggiunge la hotkey all'hashtable.                //Questo serve per sapere quale hotkey è stata premuta, nel caso in cui ne                //siano state registrate più di una.                mHotKeys.Add(mLastID, new HotKeyInfo(Key, Modifier));                return true;            }            return false;        }        public void Unregister(Keys Key, Modifiers Modifier)        {            HotKeyInfo hotKey = new HotKeyInfo(Key, Modifier);            if (mHotKeys.ContainsValue(hotKey))            {                foreach (int ID in mHotKeys.Keys)                {                    if (mHotKeys[ID] == hotKey)                    {                        UnregisterHotKey(this.Handle, ID);                        mHotKeys.Remove(ID);                        return;                    }                }            }        }        public void Unregister()        {            foreach (int ID in mHotKeys.Keys)                UnregisterHotKey(this.Handle, ID);                       mHotKeys.Clear();            mLastID = 0;        }        #region Dispose        private void FreeResources()        {            try            {                this.Unregister();                if (this.Handle != IntPtr.Zero)                    this.DestroyHandle();            }            catch { }        }        ~HotKeyHandler()        {            this.FreeResources();        }        public void Dispose()        {            this.FreeResources();            GC.SuppressFinalize(this);        }        #endregion        public delegate void HotKeyPressedEventHandler(object sender, HotKeyPressedEventArgs e);        //Evento che viene generato quando si preme una HotKey.        public event HotKeyPressedEventHandler HotKeyPressed;        protected override void WndProc(ref System.Windows.Forms.Message m)        {            if (m.Msg == HotKeyHandler.WM_HOTKEY)            {                //hID contiene l'ID della HotKey premuta.                int hID = m.WParam.ToInt32();                if (mHotKeys.ContainsKey(hID))                {                    if (this.HotKeyPressed != null)                        this.HotKeyPressed(this, new HotKeyPressedEventArgs(mHotKeys[hID].Key, mHotKeys[hID].Modifier));                    else                        base.WndProc(ref m);                }                else                {                    base.WndProc(ref m);                }            }            else            {                base.WndProc(ref m);            }        }    }    public class HotKeyPressedEventArgs : EventArgs    {        private Keys mKey;        private HotKeyHandler.Modifiers mModifier;        public HotKeyPressedEventArgs(Keys Key, HotKeyHandler.Modifiers Modifier)        {            mKey = Key;            mModifier = Modifier;        }        public Keys Key        {            get { return mKey; }        }        public HotKeyHandler.Modifiers Modifier        {            get { return mModifier; }        }    }} Dopo aver aggiunto questa classe al proprio progetto, per utilizzarla è sufficiente scrivere, ad esempio: using HotKey;//...HotKeyHandler HotKey = new HotKeyHandler();HotKey.Register(Keys.F12);HotKey.Register(Keys.Q, HotKeyHandler.Modifiers.MOD_ALT);HotKey.HotKeyPressed += new HotKeyHandler.HotKeyPressedEventHandler(HotKey_HotKeyPressed);private void HotKey_HotKeyPressed(object sender, HotKeyPressedEventArgs e){    if (e.Key == Keys.F12)    {        //...    }    else if (e.Key == Keys.Q && e.Modifier == HotKeyHandler.Modifiers.MOD_ALT)    {        //...    }} Infine, per una corretta esecuzione, è bene richiamare il metodo Dispose dell'oggetto HotKeyHandler dopo aver terminato di lavorare con esso (tipicamente in fase di chiusura dell'applicazione). powered by IMHO 1.3

posted @ domenica 2 luglio 2006 17:30 | Feedback (96) | Filed Under [ C# ]

Attendere la terminazione di un pool di thread

Questo articolo: http://msdn.microsoft.com/msdnmag/issues/04/10/NETMatters/, mostra come è possibile attendere la terminazione di un pool di thread. Viene fornita anche una classe di esempio, ThreadPoolWait, che rende il tutto ancora più semplice. Non è recentissimo, ma a me è stato di grande aiuto.

posted @ sabato 24 giugno 2006 11:50 | Feedback (0) | Filed Under [ C# ]

32feet .NET, per utilizzare Bluetooth e IrDA da applicazioni .NET

Tempo fa stavo cercando una libreria per utilizzare il protocollo Bluetooth in applicazioni .NET, e quasi per caso sono capitato sul sito http://32feet.net. Sulla Home page si legge questo testo: 32feet.NET is a project to make personal area networking technologies such as Bluetooth, Infrared (IrDA) and more, easily accessible from .NET code. E, in effetti, il materiale disponibile soddisfa in pieno le promesse: si tratta di un'insieme di librerie che consentono di gestire in maniera molto semplice, tra le altre cose, le periferiche Bluetooth e quelle ad infrarossi IrDA. Inoltre, sono supportati sia il Compact Framework sia il Framework "Full" (mentre il supporto...

posted @ martedì 20 giugno 2006 00:19 | Feedback (0) | Filed Under [ C# VB .NET .NET Compact Framework ]

Activator.CreateInstance sul Compact Framework

Il metodo Activator.CreateInstance del .NET Compact Framework dispone di un'unica signature e non consente di specificare i parametri da passare al costruttore della classe che si sta creando. Poiché mi sono trovato in questa necessità, ho fatto una piccola ricerca ed ho trovato questo post: http://dotnet247.com/247reference/msgs/17/87045.aspx, che spiega come definire un Activator custom per Compact Framework utilizzando la Reflection. Spero che possa essere utile anche a qualcun'altro, come lo è stato per me.

posted @ domenica 18 giugno 2006 12:27 | Feedback (0) | Filed Under [ C# .NET Compact Framework ]

Stored Procedure Object Interface Layer

Girando per il sito di MSDN, ho trovato un interessantissimo articolo: Stored Procedure Object Interface Layer. Esso fornisce una class library (completa di codice sorgente) che semplifica enormemente l'utilizzo di stored procedure da codice .NET. In pratica, consente di mappare le stored procedure direttamente su metodi .NET, incaricandosi di effettuare "dietro le quinte" tutti i passaggi di parametri e le conversioni necessarie. Questo meccanismo, inoltre, si integra perfettamente con il data layer realizzato con RapTier (di cui ho parlato in un post precedente).

posted @ venerdì 16 giugno 2006 12:26 | Feedback (0) | Filed Under [ C# ADO .NET & SQL ]

RapTier... Data Layer a portata di click :-)

In questi giorni ho avuto la necessità di creare un data layer per un'applicazione abbastanza complessa. Su consiglio di un mio professore universitario, ho provato RapTier. Dopo averlo scaricato e installato, sono rimasto sorpreso dalla sua potenza: Una volta specificato quale database utilizzare, è sufficiente premere un tasto per ottenere automaticamente un data layer (sono supportati sia C# sia VB .NET) che permette di manipolare le informazioni in pieno stile object-oriented. Ad esempio, se il database contiene una tabella di nome Clients, RapTier genera una classe di nome ClientsCollection che al suo interno contiene tutti i metodi necessari per recuperare, aggiungere, modificare...

posted @ venerdì 16 giugno 2006 12:15 | Feedback (2) | Filed Under [ C# VB .NET ADO .NET & SQL ASP .NET ]

[OT] Benvenuti

Ciao a tutti! Con questo post inauguro ufficialmente il mio blog, che utilizzerò per condividere con quante più persone possibile le mie esperienze di programmatore .NET. Se qualcuno si ricorda di me, tempo fa (più o meno fino all'anno scorso), gestivo il sito L'angolo del programmatore VB, che con un certo rammarico ho deciso di abbandonare per mancanza di tempo. Ora però voglio riprendere a farmi sentire, sperando di poter dare qualche contributo utile a chi, come me, con l'informatica vive e si diverte :-) Ci sentiamo presto su queste pagine!

posted @ giovedì 15 giugno 2006 13:54 | Feedback (6) | Filed Under [ C# VB .NET .NET Compact Framework ADO .NET & SQL ASP .NET Tutto & Oltre :-) ]

Powered by:
Powered By Subtext Powered By ASP.NET