DotNet

Questo ce lo segniamo!

http://www.codinghorror.com/blog/archives/001098.html Ce lo segniamo, perchè Dario è italiano (e perchè non chiedergli di fare qualche intervento ad un prossimo meeting? Sarebbe molto bello!) e perchè Screwturn è veramente un progetto bene fatto.  

Sorgenti di .Net anche con VS2005? SI... PUO'... FARE...

http://www.wintellect.com/cs/blogs/jrobbins/archive/2008/02/06/download-all-the-net-reference-source-code-at-once-with-net-mass-downloader.aspx Direi che il titolo dice tutto...  

Clause "Using" di C#

Ho appena finito di ramazzare un po di codice in cui veniva pesantemente usata la clause "Using" di C#. Per chi non lo sapesse in pratica è un "sintactic sugar" che non fa altro che incapsulare dentro un try...catch...finally la variabile usata dentro lo using. Quindi un costrutto del tipo using(SqlConnection cn = new SqlConnection()) {..}catch {...} è equivalente a SqlConnection cn;try { cn=new SqlConnection();}catch {...}finally { in(null!=cn)   cn.Dispose();} Il risultato è che il codice è più compatto, dal punto di vista dell'IL generato non cambia nulla. Cambia però, a mio avviso, la mantenibilità del codice, perchè quella che era partito come un codice...

Scrittura di XML su database, tempi e modi

L'applicazione creata e mantenuta dal mio gruppo di lavoro fa un uso molto pesante di dati XML salvati sul database, fino ad ora abbiamo sempre usato SQL2000 ma dalla prossima release manterremo solo la compatibilità con SQL 2005 e quindi finalmente diventa possibile usare qualcuna delle sue nuove feature. Ho quindi scritto un piccolo client di test per testare il salvataggio e la lettura di 10000 record XML (con lunghezza variabile da 52 a 136588 byte ed una media di 3373) sui diversi tipi di campi che si possono usare su SQL 2005. Questi i risultati: Campo di tipo NText: scrittura in 4.9...

Access Denies su applicazioni Asp.Net

... a volte ritornano. Oggi improvvisamente da un cliente mi sono trovato con dei web service Asp.Net che non funzionavano più con un messaggio "Access denied" alle DLL dentro Temporary Asp.Net File. All'inizio avevo immediatamente pensato a dei problemi di Policy di sicurezza cambiati, poi ho rammentato il colpevole: Index Server, che blocca dei file e causa sporadici problemi di questo genere e che sono assolutamente un incubo da diagnosticare. Posto quindi a futura memoria... Maggiori dettagli a questi due link, soprattutto vi consiglio di leggere il secondo che è molto esaustivo: http://support.microsoft.com/kb/329065 http://www.aspnetpro.com/newsletterarticle/2003/01/asp200301dk_l/asp200301dk_l.asp

Mono Compatibility Analyzer

http://www.mono-project.com/MoMA E' un tool molto interessante che permette di analizzare i vostri Assembly e determinare il loro livello di compatibilità con Mono. E' interessante per 2 aspetti: 1) E' notevole vedere come, anche fatto girare su un progetto assolutamente non banale (all'ultima conta siamo a circa 400mila righe di codice C#) il numero di metodi non implementati da Mono sia molto basso (nel mio caso ci sono alcuni metodi già marcati come Todo da Mono e quelli not implemented sono relativi a funzioni base di Windows come la pubblicazione dei performance counters)2) Alla fine del processo viene generato un report che può anche...

Comparazione di XML

Una delle problematiche tipiche che ci troviamo ad affrontare spesso è comparare due file XML. La comparazione mediante stringhe è impossibile, dato che per la semantica XML, i due file seguenti sono uguali <Dati A="a" B="b" /><Dati B="b" A="a" /> Come fare? Oggi ho scoperto che dentro la classe Cryptography esiste una classe chiamata (con un nome tra i più astrusi dell'universo) XmlDsigC14NTransform che si occupa (per motivi completamente diversi da quelli che servono a noi) di trasformare l'Xml in una rappresentazione canonizzata, quindi utilizzabile per fare comparazioni che non considerino gli elementi "estranei" dell'Xml (ordine dei nodi, whitespace, ecc.). Quindi, con poche righe di...

Load recording e replay per applicazioni Web

Lavorando in una ditta grossa ho la fortuna di avere a disposizione un buon laboratorio equipaggiato con LoadRunner di Mercury per fare dei test di carico sulla mia applicazione. E per fare dei test "pesanti" in cui vengono registrati i dati, le performance, si tabula tutto e si vede dove si migliora e dove si peggiora, dove lavorare e così via devo dire che è veramente un tool abbastanza impressionante. Ma ha il difetto che è "grosso". Le licenze costano parecchio, la loro installazione (delle licenze) è sempre abbastanza complicata, la gestione dei risultati abbastanza complicata (avere troppi dati a volte...

Impazzimenti del giorno

E' tutto il giorno che sto lavorando a localizzare un calendario e ne ho scoperte alcune di veramente divertenti La prima: Dato il seguente pezzettino di codice CultureInfo ci = new CultureInfo(..LanguageString..);for(int i=0; i<ci.DateTimeFormat.AbbreviatedMonthNames.Length-1; i++)  Console.WriteLine(ci.DateTimeFormat.AbbreviatedMonthNames[i].ToString()); Cosa vi aspettereste per i nomi corti? Gen, Dec, ecc.ecc. Bene, funziona tutto tranne per la lingua cs-CZ (di quelle che ho provato, ma ovviamente abbiamo un cliente in repubblica ceca e quindi è fondamentale che vada bene) in cui stampa I, II, III, IV, V... Dato che sto lavorando con dei cechi di fianco a me ho appena chiesto e vi posso garantire che anche in repubblica ceca i mesi hanno...

Spiegazione delle novità di C# 3.0

http://blogs.tedneward.com/2005/09/22/Language+Innovation+C+30+Explained.aspx Particolarmente interessante perchè spiega il perchè di svariate scelte. La frase da tenere: "fact, most of the features of C# 3.0 are, arguably, nothing but syntactic sugar designed to make programming more productive"...  

Come scrivere e leggere un Guid da Oracle (e come modificare un dataset tipizzato di conseguenza)

Sempre per il fatto di lavorare con Oracle mi sono scontrato con il fatto che il file .cs che viene generato automaticamente da Visual Studio non gestisce correttamente il caso in cui il dato sottostante sia un Guid su SQL Server (in cui il Guid è invece un tipo nativo) mentre su Oracle i campi Guid sono stati definiti come Char(36). Poi possiamo anche discutere di questa conversione (vi dico subito che sono ovviamente tutti campi chiave e quindi sotto ci sono delle motivazioni collegate alle performance), ma il problema è che il Dataset tipizzato mi espone dei Guid, dato...

Primo post

Blog2theMax - Il futuro VB e C#: LINQ, anonymous types, e altre diavolerie A me quello che scrive Balena è sempre piaciuto, il suo libro su VB è stato veramente un classico che non invecchia e generalmente dice cose molto serie. Questo suo post invece non mi trova d’accordo, nel senso che su alcune cose la penso come lui ma per motivi completamente ed assolutamente differenti, mentre per altre sono completamente in disaccordo, quindi butto lì anche il mio parere su alcune cose nuove della PDC. Late Binding vs. Strong Typing: su questo sono d’accordo con Francesco, ma non ritengo che il...