C#

VS2005 Code Snippet

I code snippet non sono amati da tutti, ma spesso sono mooolto comodi tanto che Microsoft ha rilasciato un set di code snippet per C# non direttamente installati con Visual Studio 2005 (VB ne è fornitissimo): http://msdn.microsoft.com/vstudio/downloads/codesnippets/default.aspx Thanks to Scott Dockendorf  

posted @ Friday, February 17, 2006 4:53 PM | Feedback (87)

I Parametri: questi strani oggetti...

Ancora oggi trovo diversi post in forum o newsgroup di gente che si lamenta perchè non funziona questa query, perchè non mi riconosce quel dato, perchè non riesco ad eseguire..., ecc...ecc. Poi vedi che utilizzano ancora query costruite "onthefly" che, nel 99% dei casi, risultano essere la causa di quelle "stranezze". Non so se il problema esiste ancora per leggerezza, pigrizia o ignoranza (nel senso che ignora ) dello sviluppatore di turno, ma usare i parametri pare così brutto? Circa 8/9 anni fa, quando muovevo i primi passi con ASP e le query SQL, ammetto che ero solito anch'io utilizzare questo sistema....

posted @ Friday, February 3, 2006 12:15 AM | Feedback (32)

Language Specification

...un breve promemoria: C# 1.2, 2.0, ECMA, ChmFile C++/CLI Working Draft 1.9, Jan 2005 Visual Basic .NET 7.0 8.0 Java PDF La lista viene aggiornata qui. powered by IMHO 1.2

posted @ Friday, June 10, 2005 1:19 AM | Feedback (2)

Pubblicata la lista delle breaking changes del .NET Framework 2.0 rispetto alla 1.1

Pubblicata la lista dei cambiamenti applicati al .NET Framework 2.0 rispetto alla versione 1.1 e aggiornata alla Beta2. Di seguito i documenti pubblicati: Differenze e problematiche di deployment con il .NET Framework 2.0 L'elenco delle Breaking Changes in formato chm Fonte: ASPItalia.com Attenzione!!! I documenti segnalati riportano ciò che è stato modificato ma non le novità!

posted @ Thursday, May 26, 2005 11:49 AM | Feedback (11)

Cryptography Application Block

...e ho detto tutto!!! ;-) http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dnpag2/html/crypto1.asp

posted @ Friday, February 18, 2005 5:26 PM | Feedback (11)

ADO.NET 2.0: Improve your performance...

Probabilmente alcuni di voi già ne sono a conoscenza, ma la lettura di questo articolo ha suscitato in me parecchie curiosità che mi hanno portato a replicare il test eseguito dall'autore sulla mia macchina. Così l'altro giorno ho creato ed eseguito due applicazioni console, stesso codice ma su diverse versioni, e devo dire di essere rimasto a bocca aperta: Codice C# DataTable dt = new DataTable();DataColumn id = dt.Columns.Add("ID", System.Type.GetType("System.Int32"));id.Unique = true;dt.Columns.Add("test", System.Type.GetType("System.String"));DateTime dtStart = DateTime.Now;Random rnd = new Random(1);Console.WriteLine("Start at {0}", dtStart.ToString());for(int i=0;i<1000000;i++){    DataRow dr = dt.NewRow();    dr["ID"] = rnd.Next();    dr["test"] = DateTime.Now.ToString();    try    {        dt.Rows.Add(dr);    }    catch(System.Data.ConstraintException ce)    {        dr["ID"] = rnd.Next();        dt.Rows.Add(dr);    }    Console.WriteLine("Row {0} added", i);}Console.WriteLine("End at {0} in {1}", dtStart.ToString(), DateTime.Now.Subtract(dtStart)); .NET Framework 1.1 .NET Framework 2.0 Salta immediatamente all'occhio il tempo di esecuzione: il fw 1.1 impiega 31 minuti mentre il 2.0 quasi 2 minuti!!! Questo perchè è stata completamente riscritta la gestione degli indici del DataTable/DataSet, come ben evidenziato nell'articolo, per renderla maggiormente scalabile. Il...

posted @ Saturday, January 29, 2005 11:56 AM | Feedback (13)

Quiz Sharp: Ci provo anch'io

public class TestClass { int iVar = 100; private void MyMethod3(int iVar) { iVar = 45; } private void MyMethod2() { int iVar = 44; } private void MyMethod() { iVar = 43; } private void TestScope() { iVar = 0; MyMethod(); MyMethod2(); MyMethod3(iVar); Console.Write(iVar.ToString()); } } Qual'è il risultato dell'esecuzione del metodo TestScope? A. 45 B. 100 C. 0 D. 43 E. 44 powered by IMHO

posted @ Wednesday, December 1, 2004 12:44 AM | Feedback (16)

Recuperare il contenuto ordinato di una directory in base a filtri multipli

Se avete bisogno di recuperare l'elenco dei file contenuti in una directory ordinati, ad esempio, in base alla dimensione o alla data di creazione, e magari applicando più filtri (ad esempio: *.jpg e *.gif), utilizzate la classe DirectoryHelper qui esposta:       public sealed class DirectoryHelper       {             ///             /// Determina il tipo di ordinamento da eseguire             ///             public enum SortType             {                   MinToMax,                   MaxToMin             }             ///             /// Esegue l'ordinamento in base alla proprietà passata al costruttore             ///             private class...

posted @ Thursday, November 4, 2004 4:15 PM | Feedback (18)

Stranezze dell'ereditarietà

Considerate queste classi:  public interface IMyInterface {  void Method1(); } public class ClassA:IMyInterface {  public void Method1()  {   Console.WriteLine("ClassA.Method1");  } } public class ClassB:ClassA {  new public void Method1()  {   Console.WriteLine("ClassB.Method1");  } } Considerate questo codice:  IMyInterface a = new ClassA(); a.Method1(); IMyInterface b = new ClassB(); b.Method1();  Console.ReadLine(); per quale motivo il risultato è questo? ClassA.Method1ClassA.Method1 Sembra che il runtime cerca a ritroso la classe che implementa esplicitamente l'interfaccia per eseguire il metodo corrispondente, ma non è il comportamento che ci si aspetta. Ovviamente implementando l'interfaccia anche in ClassB il tutto ritorna normale. Ci ho perso 30 minuti oggi... :-(  

posted @ Tuesday, October 19, 2004 6:05 PM | Feedback (1654)

P/INVOKE Wizard

Segnalo questo interessante tool di Paul Yao che consente di creare il codice C#/VB.NET per le chiamate via P/INVOKE a DLL unmanaged in C++. Semplicissimo da usare, basta aprire un file .h per ottenere il codice. http://www.paulyao.com/resources/tools/pinvoke.asp Putroppo è trial, non da la possibilità di copiare/salvare il codice ottenuto... da provare

posted @ Friday, October 15, 2004 1:53 PM | Feedback (23)

Full C# Archive