C#
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
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....
...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
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à!
...e ho detto tutto!!! ;-)
http://msdn.microsoft.com/security/default.aspx?pull=/library/en-us/dnpag2/html/crypto1.asp
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...
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
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...
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... :-(
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
Full C# Archive