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...

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...

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...

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

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

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

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

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; } ...

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...

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...

Full C# Archive