|
C#
There are 78 entries for the tag C#
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
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...
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
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#
WinRT non comprende il namespace System.Data: non offre supporto per la connessione diretta a database, e quindi neanche Entity Framework. D'altra parte, neppure SQL Compact può essere utilizzato con le Windows Store apps. La conseguenza è che, per accedere ad un database, dobbiamo passare attraverso servizi WCF, Azure, ecc.
Se la nostra applicazione ha bisogno di un database locale, su file, possiamo però utilizzare SQLite, di cui è stata rilasciata da qualche tempo la versione ufficiale per WinRT, con supporto alle architetture x86, x64 e ARM. Tale release è pienamente compatibile con le Windows Store apps, quindi passa la certificazione (a...
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...
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#
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
Ho aggiornato la mia libreria per il Text-To-Speech con Microsoft Translator aggiungendo il supporto a WinRT. Come sempre, è possibile scaricarla da CodePlex, dove ho pubblicato anche una semplice applicazione di esempio. In alternativa, è disponibile su NuGet. Il package è sempre TranslatorService.Speech, ma ora comprende anche la versione WinRT: a seconda del tipo di progetto che si sta utilizzando, sarà automaticamente aggiunta la reference alla versione corretta. Ora voglio effettuare il porting su Silverlight ed inoltre creare una versione ad hoc per .NET 4.5: anche se quella per la versione 4 funziona correttamente, voglio realizzare una versione...
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
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...
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...
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
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...
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#
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#
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:...
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
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
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...
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...
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...
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...
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
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...
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...
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
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
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:...
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...
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
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...
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: ...
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
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...
Sul blog Shimmy on .NET è disponibile l’implementazione di un ObservableDictionary per WPF. Tag di Technorati: .NET,Programming,C#,WPF
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: ...
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#
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...
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...
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...
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...
Il 13 Dicembre prossimo, a Firenze, si svolgerà la tappa toscana del Community Tour di Microsoft dedicato a Visual Studio 2010, le novità del Web e Windows Phone 7. Noi di DotNetToscana vi prenderemo parte con due sessioni, una dedicata a Silverlight e l’altra al nuovo ASP .NET MVC 3, il tutto preceduto da un’interessante introduzione a Windows Phone 7 e allo sviluppo su questa nuova piattaforma. Sul nostro sito è disponibile l’agenda dell’evento, in cui troverete anche il link per la registrazione. Speriamo di vedervi numerosi! Tag di Technorati: Visual Studio,Programming,ASP .NET,Silverlight,C#,Community,Windows Phone
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
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...
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
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
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...
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
Nella sezione Database di HTML.it è stato pubblicato un mio articolo sull'utilizzo del FILESTREAM in SQL Server 2008. Personalmente, è una feature che ritengo molto interessante: l'idea di poter salvare i dati binari su disco, potendovi però accedere se fossero memorizzati in un database, mantenendo la consistenza transazionale delle informazioni, dovrebbe semplificare la gestione delle informazioni; inoltre, l'utilizzo del FILESTREAM garantisce prestazioni di accesso ai dati binari molto superiori rispetto a quelle ottenibili utilizzando campi di tipo VARBINARY(MAX). Nell'articolo, inoltre, mostro anche un semplice esempio di utilizzo del FILESTREAM da un'applicazione C#. Technorati Tag: .NET,Programming,SQL Server,C#
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
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))
...
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
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,...
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
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);
...
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#
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...
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#
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
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,...
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...
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
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
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#
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 ...
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...
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#
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#
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...
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
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...
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
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
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
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...
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
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
|