<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="it-IT">
    <title>NeatCoding</title>
    <link rel="self" type="application/atom+xml" href="http://blogs.ugidotnet.org/Box/Atom.aspx" />
    <subtitle type="html">Che cos'è il genio? E' fantasia, intuizione, colpo d'occhio, velocità d'esecuzione. </subtitle>
    <id>http://blogs.ugidotnet.org/Box/Default.aspx</id>
    <author>
        <name>Alessandro Ghizzardi</name>
        <uri>http://blogs.ugidotnet.org/Box/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 2.1.0.3">Subtext</generator>
    <updated>2010-03-09T14:49:03Z</updated>
    <entry>
        <title>[Umbraco] Tips and Tricks</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/03/09/umbraco-tips-and-tricks.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/03/09/umbraco-tips-and-tricks.aspx</id>
        <published>2010-03-09T14:49:03Z</published>
        <updated>2010-03-09T14:49:03Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Ci sono molte parti di Umbraco che hanno bisogno di essere… “aiutate” per funzionare correttamente!&lt;/p&gt;  &lt;p&gt;Molto si trova con la pratica, molto leggendo blog come il mio :)   &lt;br /&gt;Quindi, visto che non sono geloso, vi giro un altro blog da cui ricavo un sacco di informazioni utili, che spesso utilizzo:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.nibble.be/" href="http://www.nibble.be/"&gt;http://www.nibble.be/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A discapito dell’estensione, il sito è in comprensibilissimo inglese, e punta molto sull’argomento “startup” di Umbraco, che io spesso posso tralasciare per motivi pratici… &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:91b69143-7a2c-489a-a725-eabbdbd3bb5f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tips+%26+Tricks" rel="tag"&gt;Tips &amp;amp; Tricks&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98163.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98163.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98163.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98163.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Weekly Issue] ASP.NET, System.Drawing.Image.Save() e Generic Error in GDI+</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/03/04/weekly-issue-asp.net-system.drawing.image.save-e-generic-error-in-gdi.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/03/04/weekly-issue-asp.net-system.drawing.image.save-e-generic-error-in-gdi.aspx</id>
        <published>2010-03-04T16:04:07Z</published>
        <updated>2010-03-04T16:04:07Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Utilizzando l’oggetto Image, può capitare di ricevere un errore, abbastanza criptico, che spesso è impossibile da interpretare:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Generic Error in GDI+&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Chiaramente, i componenti COM non hanno la buona educazione di avvisarci riguardo a _quale_ sia effettivamente l’errore….   &lt;br /&gt;Per fortuna, in ASP.NET le cause per questo errore sono principalmente due:&lt;/p&gt;  &lt;p&gt;1: Permessi. Ossia, stiamo cercando di salvare un immagine in un percorso in cui l’utente interattivo non ha i permessi di scrittura. Come al solito, ma non solo in questo caso, è buona norma assicurarsi che i permessi siano corretti soprattutto quando si portano i file dal proprio PC al server di stage/produzione&lt;/p&gt;  &lt;p&gt;2: Si sta chiamando il metodo Save() passandogli il full path del file. Non so perchè, ma in quasi tutte le prove che ho fatto questo metodo fallisce. Purtroppo, non in tutte. Il giorno in cui capirò perchè sarò, probabilmente, un uomo felice. Nel frattempo, ostento finta felicità utilizzando un oggetto FileStream:&lt;/p&gt;  &lt;p&gt;using (FileStream fileStream = System.IO.File.Create(filePath))   &lt;br /&gt;{    &lt;br /&gt;   img.Save(fileStream, ImageFormat.Jpeg);    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;In questo modo, di solito, non fallisce :)&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:64a2a97a-f6e4-4454-8efd-6e23951ccf42" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Image.Save" rel="tag"&gt;Image.Save&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GDI%2b" rel="tag"&gt;GDI+&lt;/a&gt;,&lt;a href="http://technorati.com/tags/FileStream" rel="tag"&gt;FileStream&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98136.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98136.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98136.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98136.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Weekly Issue] DataReader.GetOrdinal e invalid column name</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/03/03/weekly-issue-datareader.getordinal-e-invalid-column-name.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/03/03/weekly-issue-datareader.getordinal-e-invalid-column-name.aspx</id>
        <published>2010-03-03T15:25:45Z</published>
        <updated>2010-03-03T15:25:45Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Mi è capitato un problema bizzarro, ultimamente, uno dei tanti in cui mi sto scontrando lavorando con siti con alto traffico di utenti.&lt;/p&gt;  &lt;p&gt;Il problema in questione era che il DataReader, improvvisamente, è “impazzito”, restituendo una System.IndexOutOfRangeException nel metodo GetOrdinal. In pratica, mi diceva che nel set di dati restituito mancava la colonna che cercava di leggere. Peccato che, nel metodo in questione, la colonna ci fosse, la stored fosse corretta… insomma, funzionasse tutto “normalmente”. Come nel classico dei bachi, il problema si presentava in maniera assolutamente randomica. Quindi, per esempio, andava perfettamente in 10 casi, l’undicesimo esplodeva.&lt;/p&gt;  &lt;p&gt;Il progetto in questione utilizza un mio “storico” data access helper, utilizzato ormai in una marea di progetti anche con più traffico, e più importanti, di questo. Quindi, ho cercato in altri punti il problema, senza arrivare a soluzione alcuna. Mi sono quindi rimesso in discussione, ed ho ricontrollato il data access, trovandolo senza falla (per fortuna!). L’unico dubbio che mi è, per fortuna, venuto, riguarda il fatto che il progetto era gestito da un’altra azienda, cui ho dato alcune dritte, ma che poteva tranquillamente aver male interpretato le mie istruzioni. Quindi, vado a rivedere _come_ è stato utilizzato il mio data access… ed ho trovato la magagna!&lt;/p&gt;  &lt;p&gt;In sostanza, il mio data access ha la possibilità di operare in ambiente multi transazionale. Aprendo una transazione, ed una connessione, il data access si predispone a “transazionare” tutti gli oggetti di business in un determinato contesto. Senza questa funzionalità attiva, il data access si predispone per aprire, utilizzare, e richiudere subito la connessione in modo da rimandarla nel pool. L’utilizzo improprio, invece, ha fatto in modo che la connessione venisse aperta _fuori da un contesto transazionale_, e poi di fila venivano chiamati 5 o 6 metodi che riempivano un reader e lo consumavano, chiudendolo ma senza utilizzare CommandBehavior.CloseConnection. Alla fine di tutto, veniva chiusa la connessione. &lt;/p&gt;  &lt;p&gt;Senza nessun contesto transazionale attivo, e vista l’intrinseca concorrenzialità di un progetto web, succedeva che i dati del datareader venissero “mischiati” da una chiamata arrivata tra la lettura e l’effettivo consumo del reader. Ho trovato una buona spiegazione di questo problema in &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/74a5db87-c63f-4386-b317-e848dedb2cd9" target="_blank"&gt;questo post&lt;/a&gt; sul forum. Per risolvere è bastato rimuovere le connessioni aperte e chiuse in maniera programmatica, e lasciare fare a lui il suo lavoro. &lt;/p&gt;  &lt;p&gt;E con questo siamo a due problemi di concorrenza su thread nel corso di una sola settimana… è un segno che, in giro, si fa troppa poca attenzione a questo genere di problematiche? :)&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:49be976c-f0cb-492a-8655-567bc81b17aa" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Multithread" rel="tag"&gt;Multithread&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ADO.NET" rel="tag"&gt;ADO.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IndexOutOfRangeException" rel="tag"&gt;IndexOutOfRangeException&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98128.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98128.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98128.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98128.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Weekly Issue] Generic collection &amp;amp; Multithread</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/03/01/weekly-issue-generic-collection-amp-multithread.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/03/01/weekly-issue-generic-collection-amp-multithread.aspx</id>
        <published>2010-03-01T18:06:48Z</published>
        <updated>2010-03-01T18:06:48Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;In uno dei tanti progetti che sto seguendo, mi è capitato un errore di quelli che nessuno vorrebbe mai avere: l’applicativo schizza come una lippa ma, improvvisamente, la CPU schizza al 100% (su un server con 16 core e 16 giga di ram…) e rimane li, inchiodata, per quasi un minuto. Poi va giù, senza generare errori rappresentativi, e ritorna a funzionare… per non si sa quanto!&lt;/p&gt;  &lt;p&gt;Abbiamo passato differenti giornate a cercare di capire il problema. Alla fine, siamo abbastanza sicuri di aver isolato la causa: l’utilizzo di una cache esterna basata su Dictionary, “falliva” in ambiente multithread in quanto si era dimenticata che le Generic Collection non sono thread-safe. Come dice giustamente in &lt;a href="http://blogs.msdn.com/bclteam/archive/2005/03/15/396399.aspx" target="_blank"&gt;questo post&lt;/a&gt;, la funzionalità è stata volutamente lasciata fuori. Peccato che, in certi casi, un FindElement su una collection che è magari stata modificata nel frattempo da un altro thread, può portare .NET a un loop infinito (e questo, però, vorrei tanto capire per quale motivo dovrebbe succedere….). &lt;a href="http://blogs.msdn.com/tess/archive/2009/12/21/high-cpu-in-net-app-using-a-static-generic-dictionary.aspx" target="_blank"&gt;Questo post&lt;/a&gt; mi ha abbastanza aperto gli occhi sul motivo per cui si sono rivelati i problemi! &lt;/p&gt;  &lt;p&gt;Modale della favola: fate attenzione quando utilizzate tutti gli oggetti, anche quelli forniti dal Framework, e controllate bene se sono thread-safe, in caso vogliate usarli in applicativi con alto traffico! Ora, rimane solo da vedere se la cosa risolve veramente :)&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8f21a4eb-14d1-4e66-89f4-8a3edc7ad554" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Generics" rel="tag"&gt;Generics&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Multithread" rel="tag"&gt;Multithread&lt;/a&gt;,&lt;a href="http://technorati.com/tags/List" rel="tag"&gt;List&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dictionary" rel="tag"&gt;Dictionary&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98117.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98117.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98117.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98117.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Template, XSLT e parametri</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/25/umbraco-template-xslt-e-parametri.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/25/umbraco-template-xslt-e-parametri.aspx</id>
        <published>2010-02-25T15:51:53Z</published>
        <updated>2010-02-25T15:51:53Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Probabilmente molti di voi, usando Umbraco, si appoggiano a dei template XSLT per gestire le proprie macro. Se già non lo fate, iniziate a farlo… la gestione dei template è importante, e permette di mantenere gli XSLT relativamente semplici da gestire.&lt;/p&gt;  &lt;p&gt;Una comodissima funzionalità dei template XSLT è la possibilità di richiamare un dato template, passando dei parametri. Questi parametri possono essere passati, o avere un valore di default che verrà utilizzato all’interno del template stesso. &lt;/p&gt;  &lt;p&gt;Per dichiarare il template con i parametri, la sintassi è &lt;/p&gt;  &lt;p&gt;&amp;lt;xsl:template match="node" mode="list"&amp;gt;   &lt;br /&gt;    &amp;lt;xsl:param name="startingLetter"&amp;gt;A&amp;lt;/xsl:param&amp;gt;    &lt;br /&gt;    &amp;lt;!-- do something here –&amp;gt;    &lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;/p&gt;  &lt;p&gt;Per richiamarlo, invece, la sintassi è &lt;/p&gt;  &lt;p&gt;&amp;lt;xsl:apply-templates select="$currentPage" mode="list"&amp;gt;   &lt;br /&gt;    &amp;lt;xsl:with-param name="startingLetter"&amp;gt;    &lt;br /&gt;        &amp;lt;xsl:value-of select="$startingLetter" /&amp;gt;    &lt;br /&gt;    &amp;lt;/xsl:with-param&amp;gt;    &lt;br /&gt;&amp;lt;/xsl:apply-templates&amp;gt;&lt;/p&gt;  &lt;p&gt;In questo modo, se non si passa il parametro, il template prenderà il valore di default “A”.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c4ccb65d-b2cb-46ac-9f92-cb82e1a2afe9" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Template" rel="tag"&gt;Template&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Xslt.+Parametri" rel="tag"&gt;Xslt. Parametri&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98100.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98100.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98100.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98100.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[OT] Finally live&amp;hellip; Vogue Italia!</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/24/ot-finally-livehellip-vogue-italia.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/24/ot-finally-livehellip-vogue-italia.aspx</id>
        <published>2010-02-24T00:07:08Z</published>
        <updated>2010-02-24T00:07:08Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;… e speriamo che sia l’inizio di un periodo con più sonno! :)&lt;/p&gt;  &lt;p&gt;E’ online da pochi minuti il &lt;a href="http://www.vogue.it" target="_blank"&gt;nuovo sito di Vogue Italia&lt;/a&gt;, la mia ultima fatica in Umbraco! Così capirete cosa intendo quando parlo di “siti impossibili” usando Umbraco :)    &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98092.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98092.aspx</wfw:comment>
        <slash:comments>5</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98092.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98092.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Remove old versions</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/23/umbraco-remove-old-versions.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/23/umbraco-remove-old-versions.aspx</id>
        <published>2010-02-23T18:53:37Z</published>
        <updated>2010-02-23T18:53:37Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Umbraco ha alcune grandi pecche. Una delle più grandi è la crescita, a volte incontrollata, della base dati. Questo succede perchè per ogni salvataggio, Umbraco si tiene una versione di tutte le proprietà specificate per un DocumentType, nella tabella cmsPropertyData. Questo è comodissimo dal punto di vista redattoriale, ma per siti con grande ricambio di dati (come le testate giornalistiche che sto seguendo in questo periodo) si traduce in una crescita veramente esponenziale. Inoltre, anche la tabella umbracoLog cresce a dismisura, poichè non è possibile filtrare il livello di verbosity: o si spegne tutto, o ci si becca qualsiasi operazione loggata (salvataggio, pubblicazione, etc). Su &lt;a href="http://www.style.it" target="_blank"&gt;Style.it&lt;/a&gt;, lanciato a fine Novembre, in soli tre mesi di attività eravamo arrivati a 4gb di dati. &lt;/p&gt;  &lt;p&gt;Per la umbracoLog, è necessario cancellare la tabella. Per le versioni vecchie, invece, purtroppo non è prevista (per ora) una funzionalità di cancellazione delle versioni vecchie. E’ quindi necessario farlo a mano. In &lt;a href="http://blog.thoehler.com/2009/01/08/cleaning-versions-in-the-umbraco-db-for-given-nodes-via-sql" target="_blank"&gt;questo post&lt;/a&gt;, viene spiegato quali istruzioni SQL lanciare per farlo. Dopo aver cancellato le ultime versioni ed eseguito il clear del log, il database si è ridotto da 4gb a 400mb.&lt;/p&gt;  &lt;p&gt;Esistono anche dei tools offline, la maggior parte non sono aggiornati. I più “recenti”, cioè quelli che dicono di funzionare sulla 4.x, sono i &lt;a href="http://clienttools4umbraco.codeplex.com/" target="_blank"&gt;Client Tools for Umbraco&lt;/a&gt;, che però purtroppo non sono mai riuscito a far funzionare… se qualcuno ci riesce me lo faccia sapere :)&lt;/p&gt;  &lt;p&gt;Io personalmente ho una stored, grazie all’aiuto di Xeed, che prende le ultime versioni precedenti ad una certa data, e cancella i relativi dati. Molto utile per evitare di zappare tutti i contenuti alla redazione: lasciargli solo l’ultima settimana di aggiornamenti è piu che sufficente per salvare spazio, e mantiene un certo livello di sicurezza agli editori.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5af083c9-4d7a-432b-b5e9-c6c2add3d2de" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Old+Versions" rel="tag"&gt;Old Versions&lt;/a&gt;,&lt;a href="http://technorati.com/tags/umbracoLog" rel="tag"&gt;umbracoLog&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cmsPropertyData" rel="tag"&gt;cmsPropertyData&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98090.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98090.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98090.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98090.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Uppercase e lowercase in XSLT</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/22/umbraco-uppercase-e-lowercase-in-xslt.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/22/umbraco-uppercase-e-lowercase-in-xslt.aspx</id>
        <published>2010-02-22T14:28:32Z</published>
        <updated>2010-02-22T14:28:32Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Una delle funzionalità più richieste è operare con il testo nell’ambito dell’XSLT. Uppercase e lowercase sono sicuramente i metodi più popolari. Umbraco, nelle sue extension, non fornisce supporto per queste funzionalità. Ma non è una mancanza: le funzionalità di questo genere sono esposte dalle &lt;a href="http://www.exslt.org/" target="_blank"&gt;Xslt string utilities&lt;/a&gt;. In particolare, per l’Uppercase, si dovrà scrivere:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;lt;xsl:value-of select="Exslt.ExsltStrings:uppercase($month)"/&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Per il lowercase… beh, indovinate :)&lt;/p&gt;  &lt;p&gt;Purtroppo, nella &lt;a href="http://www.exslt.org/str/index.html" target="_blank"&gt;reference&lt;/a&gt; queste due funzioni non sono specificate… quindi è altamente probabile che possano sfuggire!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5ae2bd3-ac02-4a37-9031-c14b868863a9" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Uppercase" rel="tag"&gt;Uppercase&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Lowercase" rel="tag"&gt;Lowercase&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Xslt+string+utilities" rel="tag"&gt;Xslt string utilities&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Exslt" rel="tag"&gt;Exslt&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98076.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98076.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98076.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98076.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Visualizzare le icone nella combo dei DocumentType</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/20/umbraco-visualizzare-le-icone-nella-combo-dei-documenttype.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/20/umbraco-visualizzare-le-icone-nella-combo-dei-documenttype.aspx</id>
        <published>2010-02-20T16:15:18Z</published>
        <updated>2010-02-20T16:17:59Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Box/WindowsLiveWriter/UmbracoVisualizzareleiconenellacombodeiD_E439/Folders_2.png" rel="lightbox"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="Folders" border="0" alt="Folders" align="left" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Box/WindowsLiveWriter/UmbracoVisualizzareleiconenellacombodeiD_E439/Folders_thumb.png" width="134" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ho &lt;a href="http://blogs.ugidotnet.org/Box/archive/2010/02/19/umbraco-icone-per-i-documenttype.aspx" target="_blank"&gt;scritto ieri&lt;/a&gt; riguardo il FamFamFam Icon Pack, ed alla sua importanza nel caso di alberi realmente complessi, per dare un feedback visivo all’utente/editore su quello che sta facendo.&lt;/p&gt;  &lt;p&gt;Mi hanno scritto alcune persone dicendo che è “inutile”, poichè nella selezione del DocumentType, le icone non vengono visualizzate, quindi ci si trova con una combo lunghissima, senza poter sapere che cosa si sta selezionando. &lt;/p&gt;  &lt;p&gt;Purtroppo, è un “baco noto” di umbraco quello di non visualizzare le icone con nessun browser, tranne Firefox. Quindi, se volete giocare con i DocumentType e le nuove icone, e non usate Firefox, dovrete costringervi ad usarlo solo per questo task, visto che non funzionano neanche con Safari, Chrome, etc. Di fianco potete vedere come si vedono le icone con IE8, e sotto con Firefox. Molto meglio, vero? &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2a0ad7a6-77ff-4269-a3f8-4d10ed6a72ba" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DocumentType" rel="tag"&gt;DocumentType&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Icone" rel="tag"&gt;Icone&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Preview" rel="tag"&gt;Preview&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98067.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98067.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98067.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98067.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Icone per i DocumentType</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/19/umbraco-icone-per-i-documenttype.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/19/umbraco-icone-per-i-documenttype.aspx</id>
        <published>2010-02-19T17:03:30Z</published>
        <updated>2010-02-19T17:15:31Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;
&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Box/WindowsLiveWriter/UmbracoIconeperiDocumentType_D629/Style.it_2.png" rel="lightbox"&gt;&lt;img width="62" height="244" border="0" align="left" style="border: 0px none; display: inline; margin-left: 0px; margin-right: 0px;" title="Style.it" alt="Style.it" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/Box/WindowsLiveWriter/UmbracoIconeperiDocumentType_D629/Style.it_thumb.png" /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Sono sicuro che anche a voi le icone standard fornite da Umbraco scontentano proprio. Quando si ha a che fare con molti DocumentType, avere a disposizione una gamma più ampia di icone è quasi una necessità, per consentire alla redazione di lavorare meglio ed accorgersi, anche visivamente, nel caso stiano facendo qualche errore.&lt;/p&gt;
&lt;p&gt;Il miglior icon pack che ho trovato per Umbraco è il &lt;a href="http://our.umbraco.org/projects/famfamfam-icons" target="_blank"&gt;Fam fam fam icon pack&lt;/a&gt;, del già “famoso” &lt;a href="http://www.famfamfam.com/about/" target="_blank"&gt;Mark James&lt;/a&gt;. Installatelo ed avrete a disposizione una marea di icone per i vostri DocumentType… avrete solo l’imbarazzo di dover svegliere quella giusta!&lt;/p&gt;
&lt;p&gt;… e se pensate che sia solo una frivolezza inutile…. beh, questo di fianco è lo screenshot del primo canale di &lt;a href="http://www.style.it"&gt;www.style.it&lt;/a&gt;, non espanso completamente: mancano tutti gli articoli. Contate  che ci sarebbero altri 5 canali egualmente complessi, più il nodo dei servizi. Con solo le 20 icone, tutte uguali, fornite da Umbraco, la redazione morirebbe :)&lt;/p&gt;
&lt;div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:46a586c8-11f3-4d65-850e-12b2967984bb" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Icon+Pack" rel="tag"&gt;Icon Pack&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Fam+Fam+Fam" rel="tag"&gt;Fam Fam Fam&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DocumentType" rel="tag"&gt;DocumentType&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98063.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98063.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98063.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98063.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[TeamCity] AjaxControlToolkit e roblemi di compilazione nelle DLL con Umbraco</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/18/teamcity-ajaxcontroltoolkit-e-roblemi-di-compilazione-nelle-dll-con-umbraco.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/18/teamcity-ajaxcontroltoolkit-e-roblemi-di-compilazione-nelle-dll-con-umbraco.aspx</id>
        <published>2010-02-18T15:09:33Z</published>
        <updated>2010-02-18T15:09:33Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Teamcity è un ottimo prodotto gratuito (con limitazioni, ma molto ampie) che risolve brillantemente il problema della Continuous Integration, senza spostarsi su prodotti più articolati come TFS, che per molti clienti è fuori portata.&lt;/p&gt;  &lt;p&gt;Lo uso abitualmente in congiunzione con SVN: formano un’accoppiata molto stabile, e non mi danno praticamente nessun problema.&lt;/p&gt;  &lt;p&gt;Ogni tanto, però, la build si rompe per misteriosi motivi, soprattutto usando Umbraco. Come premessa, in tutte le solution che hanno umbraco come website ho disabilitato la compilazione del website, perchè ci mette un sacco. Quindi, l’unico modo per assicurarsi che tutto funzioni correttamente e fare un “publish” manuale del website prima di committare le modifiche. Mi è successo con l’AjaxControlToolkit, che la build si rompesse comunque, in progetti complessi con altre web application oltre ad Umbraco, indipendentemente dal fatto che il publish fosse eseguito con successo. &lt;/p&gt;  &lt;p&gt;L’errore era: [exec] &lt;strong&gt;Nomecontrollo.ascx.designer.cs(23,27): error CS0400: The type or namespace name 'AjaxControlToolkit' could not be found in the global namespace (are you missing an assembly reference?)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Il motivo era che, per errore, la DLL dell’ajax control toolkit referenziata era quella in GAC, non quella nella cartella apposita sotto SVN che contiene le dll referenziate di terze parti. E’ bastato cambiare la referenza al percorso giusto, ed il problema è rientrato. In alternativa, si sarebbe potuto anche installare l’AjaxControlToolkit, ma non era una soluzione che mi piaceva molto, non essendo il server sotto la nostra giurisdizione.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:240dd6be-5a16-43d4-bb27-fee0d52d3f26" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco.+TeamCity" rel="tag"&gt;Umbraco. TeamCity&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AjaxControlToolkit" rel="tag"&gt;AjaxControlToolkit&lt;/a&gt;,&lt;a href="http://technorati.com/tags/compilazione" rel="tag"&gt;compilazione&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98039.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98039.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98039.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98039.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] DirectoryUrl, IIS 7 e Session a null</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/17/umbraco-directoryurl-iis-7-e-session-a-null.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/17/umbraco-directoryurl-iis-7-e-session-a-null.aspx</id>
        <published>2010-02-17T14:57:22Z</published>
        <updated>2010-02-17T14:57:22Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;In molti casi, è necessario estendere Umbraco per aggiungergli diversi tipi di funzionalità.    &lt;br /&gt;Nell’ultimo progetto, che andrà online tra qualche settimana, abbiamo dovuto creare un sito parallelo che girasse dentro umbraco (quasi come abbiamo fatto con &lt;a href="http://www.style.it" target="_blank"&gt;www.style.it&lt;/a&gt;). In questo sito, che comunque gira sotto umbraco, abbiamo dovuto utilizzare la sessione per diversi motivi.&lt;/p&gt;  &lt;p&gt;Ovviamente, pubblicato sull’ambiente di stage, non funzionava piu nulla. Gli “object reference not set” del log non davano molte informazioni, ma con un pò di magia abbiamo scoperto l’arcano: le sessioni erano tutte misteriosamente a null. Ma non nel senso valore null, nel senso che HttpContext.Current.Session era null. Praticamente non veniva caricato il modulo della Session. L’errore restituito è:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;“Session state can only be used when enableSessionState is set to true, either in a configuration file or in the Page directive.”&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;L’unica differenza tra il nuovo progetto e quello che abbiamo fatto con style era l’utilizzo dei DirectoryUrl, ossia abbiamo levato le estensioni .aspx dai documenti di umbraco. Cercando in giro, abbiamo trovato la soluzione in &lt;a href="http://forum.umbraco.org/yaf_postst9997_ContextSession-always-null-on-top-umbraco-page.aspx" target="_blank"&gt;questo post&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Praticamente, IIS7 ha una sorta di feature (baco?) per cui bisogna specificare nel web.config, nel tag Modules, l’attributo “runAllManagedModulesForAllRequests” e valorizzarlo a true. In questo modo:&lt;/p&gt;  &lt;p&gt;&amp;lt;modules runAllManagedModulesForAllRequests="True"&amp;gt;&lt;/p&gt;  &lt;p&gt;… A me va anche bene, con la modifica tutto funziona.. mah.. mi chiedo perchè “discriminare” alcuni moduli, come quello della session, e altri no… mi sarei aspettato un sito totalmente non funzionante, non tutto funzionante tranne le Session! Anche perchè questo genere di problemi, se non si dispone di un IIS7 su cui fare debug (es: lo sviluppatore che ha XP o Vista sul suo PC, e pubblica su uno shared host), possono portare a un sacco di problemi!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5052f5fd-6e9d-493a-a7c4-57c746c68e5a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Session" rel="tag"&gt;Session&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS7" rel="tag"&gt;IIS7&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98033.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98033.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98033.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98033.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Bootcamp] Tasto INS e Visual Studio</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/15/bootcamp-tasto-ins-e-visual-studio.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/15/bootcamp-tasto-ins-e-visual-studio.aspx</id>
        <published>2010-02-15T15:09:26Z</published>
        <updated>2010-02-15T15:09:26Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Chiunque possegga un mac e lo utilizzi (violenti?) per farci girare windows, si scontra probabilmente ogni giorno con il grande problema della tastiera, soprattutto se si ha un macbook o macbook pro.&lt;/p&gt;  &lt;p&gt;Una delle grandi conquiste che ho avuto negli ultimi tempi è trovare la combinazione per il tasto “INS”, comodissimo in certi casi, inutile in molti altri: &lt;strong&gt;fn+Invio&lt;/strong&gt;. Me ne sono accorto a mie spese, quando l’ho attivato inavvertitamente (cercando di fare un canc, fn+Backspace) e ho sudato per levarlo… :)&lt;/p&gt;  &lt;p&gt;Invece, non ho ancora trovato alternativa alla tilde… se non utilizzare la tastiera americana, o la mappa caratteri.. o il copia/incolla… la &lt;a href="http://support.apple.com/kb/HT1167?viewlocale=it_IT" target="_blank"&gt;documentazione apple&lt;/a&gt; è altamente indietro, magari dovrebbero aggiornarla un pò…&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:230817f4-e332-43df-b9e4-dabd56474beb" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Bootcamp" rel="tag"&gt;Bootcamp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/shortcut" rel="tag"&gt;shortcut&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98016.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98016.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98016.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98016.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Bootcamp] Bootcamp driver 3.1</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/13/bootcamp-bootcamp-driver-3.1.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/13/bootcamp-bootcamp-driver-3.1.aspx</id>
        <published>2010-02-13T11:11:19Z</published>
        <updated>2010-02-15T14:59:39Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;
In realtà, sono usciti il 19 di Gennaio… ma io sono _sempre_ in ritardo, e me li sono installati solo ora.&lt;/p&gt;
&lt;p&gt;Risultato:spettacolo! Io ho un Macbook pro 2009 @ 2.8ghz e finalmente il mio Seven ha&lt;/p&gt;
&lt;p&gt;- Smesso di pensare che il digital audio fosse sempre attivo, sparando fuori la luce rossa a-la Terminator dall’audio in;   &lt;br /&gt;
- Risolto i problemi audio che avevo coi vecchi driver, ed ha iniziato a vedermi il microfono anche fuori dal registratore di suoni di Windows, senza fare giri strani con driver di terze parti e modifiche degli ini (che tra parentesi non sono mai funzionate bene…). E posso tornare ad usare Skype e Netmeeting senza particolari barbatrucchi    &lt;br /&gt;
- Installato dei driver decenti per la mia NVidia, che ora arriva finalmente a 6.3 di Performance Index (prima era 5.3 con i driver bootcamp 3.0 standard. Bisognava passare da &lt;a target="_blank" href="http://www.laptopvideo2go.com/"&gt;laptopvideo2go&lt;/a&gt; per avere qualche speranza di arrivare oltre i 6)&lt;/p&gt;
&lt;p&gt;Assolutamente consigliati, installateli subito se non lo avete già fatto! Li trovate sia nella versione a &lt;a target="_blank" href="http://support.apple.com/kb/DL996"&gt;32 bit&lt;/a&gt; che in quella a &lt;a target="_blank" href="http://support.apple.com/kb/DL979"&gt;64 bit&lt;/a&gt;.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fe85305f-9ccd-49df-bc06-08b5e713cf81" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Bootcamp"&gt;Bootcamp&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Update"&gt;Update&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Nvidia"&gt;Nvidia&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Audio+problems."&gt;Audio problems.&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98002.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98002.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98002.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98002.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Performance del Backend e Cache</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/12/umbraco-performance-del-backend-e-cache.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/12/umbraco-performance-del-backend-e-cache.aspx</id>
        <published>2010-02-12T21:02:35Z</published>
        <updated>2010-02-12T21:02:35Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Forse non tutti sanno che, negli ultimi mesi, sono stato presissimo perchè la mia azienda si è occupata totalmente del rilascio del nuovo &lt;a href="http://www.style.it" target="_blank"&gt;sito di style.it&lt;/a&gt;. Posso affermare senza ombra di dubbio che è il progetto piu complesso che abbia mai affrontato con Umbraco. Con qualche ombra di dubbio, posso affermare che è uno dei progetti più complessi che conosca in generale, sviluppato con Umbraco. Se qualcuno sta pensando al novello ASP.NET, la grande differenza tra i due è che ASP.NET è utilizzato e editato da gente che, più o meno, capisce quello che sta facendo. Style ha invece dietro di se una batteria di 30 redattori veri, cioè giornalisti che usano il PC per impaginare con Publisher. Questo è stato lo scoglio più insormontabile, che ci ha portato alla creazione di un numero impressionante di custom data type incredibilmente complessi, ed alla gestione di contenuti editoriali automatici e semiautomatici abbastanza complessi.&lt;/p&gt;  &lt;p&gt;Tralasciando le magagne di sviluppo, che verranno sicuramente affrontate nei prossimi miliardi di post che farò su questo CMS, uno dei problemi principali che ci ha afflitto è la scarsità delle performance del backend. La rete interna del cliente non è il massimo e spesso si avevano degradazioni non imputabili al CMS, ma a fattori esterni.&lt;/p&gt;  &lt;p&gt;L’onnipresente &lt;a href="http://twitter.com/umbraco" target="_blank"&gt;Niels&lt;/a&gt;, in un suo &lt;a href="http://umbraco.org/blog/2007/12/14/dec-10-dramatic-performance-increase-in-two-minutes" target="_blank"&gt;post del lontano 2007&lt;/a&gt;, ci ha fornito la soluzione: aggiungere l’expire a 7, o più, giorni sugli elementi comuni di Umbraco direttamente in IIS. Non tutti, attenzione, perchè anche molti css (tipo quelli sotto umbraco\css) sono gestiti in maniera dinamica. Nel post spiega esattamente quali cartelle possono subire questa variazione. Vi assicuro che le differenze in termini di performance sono chiaramente visibili!&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bf4b8d02-1bf7-4b13-9b62-d943a18c04ad" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Cache" rel="tag"&gt;Cache&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Backend" rel="tag"&gt;Backend&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Http+Header" rel="tag"&gt;Http Header&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/98000.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/98000.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/98000.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/98000.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] Trace e Chrome</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/11/umbraco-trace-e-chrome.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/11/umbraco-trace-e-chrome.aspx</id>
        <published>2010-02-11T18:44:06Z</published>
        <updated>2010-02-11T18:44:06Z</updated>
        <content type="html">&lt;p&gt;   &lt;br /&gt;Probabilmente molte persone che usano umbraco ormai sono a conoscenza della possibilità di visualizzare il trace di .NET ed i relativi messaggi di errore delle macro utilizzando &lt;strong&gt;umbShowDebugTrace &lt;/strong&gt;(per chi non ne fosse a conoscenza, fate un salto qui: &lt;a title="http://our.umbraco.org/wiki/how-tos" href="http://our.umbraco.org/wiki/how-tos"&gt;http://our.umbraco.org/wiki/how-tos&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Per chi invece già lo conosce e, come me, lo ritiene a volte poco intuitivo e pratico, segnalo &lt;a href="http://kenny.no/archive/2009/12/12/umbraco-developer-chrome-extension" target="_blank"&gt;questa utilissima estensione&lt;/a&gt; per Chrome di &lt;a href="http://kenny.no/" target="_blank"&gt;Kenneth&lt;/a&gt;, con cui ho avuto il piacere di lavorare spesso. In pratica ti aggiunge un menù che ti permette di entrare e uscire dalla modalità di debug, navigare direttamente in umbraco e un paio di altre cose carine. Veramente utile. Grazie anche a Giorgione per avermela segnalata.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ebc0bd99-6d44-41f1-ad3c-9b999f015810" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/umbShowDebugTrace" rel="tag"&gt;umbShowDebugTrace&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Chrome" rel="tag"&gt;Chrome&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/97996.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/97996.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/97996.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/97996.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Umbraco] umbraco.DataLayer.SqlHelperException not marked as Serializable</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/09/umbraco-umbraco.datalayer.sqlhelperexception-not-marked-as-serializable.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/09/umbraco-umbraco.datalayer.sqlhelperexception-not-marked-as-serializable.aspx</id>
        <published>2010-02-09T17:25:48Z</published>
        <updated>2010-02-09T17:32:39Z</updated>
        <content type="html">&lt;p&gt;Visto che, ultimamente, la maggior parte dei miei Weekly (Daily? Hourly?) Issue sono dovuti principalmente a questo CMS, ho deciso di creare una sezione apposta :)&lt;/p&gt;  &lt;p&gt;Iniziamo con uno degli errori più comuni che mi sono capitati in questi ultimi giorni: non si sa per quale motivo, l’applicativo in produzione ha iniziato a crashare prima ancora di avviarsi, tirandosi dietro tutto il W3WP.exe. L’errore, abbastnza criptico, era:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Type 'umbraco.DataLayer.SqlHelperException' in Assembly 'umbraco.DataLayer, Version=0.3.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Dopo parecchi giri, discussioni via MSN con alcune persone del core team, e ricerche dovunque, si è scoperto che questo problema è dovuto ad una stringa di connessione sbagliata.    &lt;br /&gt;Lo so, è abbastanza ridicolo, e non ho ancora controllato i meccanismi di base per cui una stringa di connessione possa far crashare tutto l’applicativo invece di notificare l’errore. Ma vi assicuro che è assolutamente quello il problema: controllate bene il server, la password, qualsiasi problema di spelling o di mancanze (nel mio caso, lo script nant si era “mangiato” la keyword “Data Source”….).&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:80681e20-5f2b-48b0-aca6-f0deaec66868" class="wlWriterEditableSmartContent"&gt;Technorati Tag: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SqlHelperException" rel="tag"&gt;SqlHelperException&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Serializable" rel="tag"&gt;Serializable&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ConnectionString" rel="tag"&gt;ConnectionString&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/97972.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/97972.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/97972.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/97972.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Weekly Issue] Pre/Post build Events, la sintassi</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2010/02/09/weekly-issue-prepost-build-events-la-sintassi.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2010/02/09/weekly-issue-prepost-build-events-la-sintassi.aspx</id>
        <published>2010-02-09T12:07:51Z</published>
        <updated>2010-02-09T17:29:08Z</updated>
        <content type="html">&lt;p&gt;Mi capita spessissimo di lavorare con i Build Events sulle solution, soprattutto usando &lt;a href="http://www.umbraco.org" target="_blank"&gt;Umbraco&lt;/a&gt; (seguiranno infatti una serie di post su questo CMS. Che è il motivo principale per cui sono sparito in questi mesi :)). &lt;/p&gt;  &lt;p&gt;Il problema principale che ho avuto è trovare una vera reference della sintassi. Le macro ci sono quasi tutte, ma spesso non si sa bene che cosa si può fare e che cosa no. Girando un pò, sul sito msdn si spiega che la sintassi dei Pre/Post build event in realtà è la medesima dei “vecchi” comandi MS-DOS. Quindi, potete agilmente trovare la reference sul &lt;a href="http://technet.microsoft.com/en-us/library/bb490890.aspx" target="_blank"&gt;sito technet&lt;/a&gt;. Probabilmente molti lo sapevano già, ma a me ha salvato un pò di ricerche inutili :)&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0cea4798-cdc8-4a2f-9ceb-b526d15553aa" class="wlWriterEditableSmartContent"&gt;Technorati Tag: &lt;a href="http://technorati.com/tags/Umbraco" rel="tag"&gt;Umbraco&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Post+Build+Events" rel="tag"&gt;Post Build Events&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Pre+Build+Events" rel="tag"&gt;Pre Build Events&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/97970.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/97970.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/97970.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/97970.aspx</trackback:ping>
    </entry>
    <entry>
        <title>[Weekly Issue] Leggere dati binari con WebRequest</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2009/10/05/weekly-issue-leggere-dati-binari-con-webrequest.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2009/10/05/weekly-issue-leggere-dati-binari-con-webrequest.aspx</id>
        <published>2009-10-05T09:24:28Z</published>
        <updated>2009-10-05T09:24:28Z</updated>
        <content type="html">&lt;p&gt;Capita, ogni tanto, di avere a che fare con la lettura di dati da server remoti. In questi casi, HttpWebRequest ci viene in contro, fornendoci tutti gli strumenti necessari.&lt;/p&gt;  &lt;p&gt;Finché si tratta di pagine web, ci sono pochi problemi. Abbiamo qualche piccolo pensieri in più, invece, quando si tratta di dati binari: spesso e volentieri, il risultato appare incompleto. Per esempio, le immagini vengono restituite con un bel po' di byte persi qua e là. Questo perché, se è vero che nel leggere stringhe basta utilizzare il consueto ReadToEnd, per leggere dati binari conviene sempre utilizzare il meccanismo del buffer, ossia leggere un pezzo per volta. &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;byte&lt;/span&gt;[] output;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;WebRequest request = WebRequest.Create(url);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt;(WebResponse response = request.GetResponse())&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;   &lt;span class="kwrd"&gt;using&lt;/span&gt;(Stream rs= response.GetResponseStream())&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;   {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;      &lt;span class="kwrd"&gt;using&lt;/span&gt;(MemoryStream ms= &lt;span class="kwrd"&gt;new&lt;/span&gt; MemoryStream())&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;      {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;         &lt;span class="kwrd"&gt;int&lt;/span&gt; count = 0;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;         &lt;span class="kwrd"&gt;byte&lt;/span&gt;[] buffer = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;byte&lt;/span&gt;[4096];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;         &lt;span class="kwrd"&gt;do&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;         {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            count = rs.Read(buffer, 0, buffer.Length);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            ms.Write(buffer, 0, count);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;         } &lt;span class="kwrd"&gt;while&lt;/span&gt;(count != 0);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;         output= ms.ToArray();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;      }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;   }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;}&lt;/pre&gt;

  &lt;pre&gt; &lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;In questo modo siamo sicuri di riuscire a leggere tutto il contenuto binario, senza perderci dati per strada. L’ideale è, chiaramente, fare un metodo helper che si occupi di tutto!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/97179.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/97179.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/97179.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/97179.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Back in black</title>
        <link rel="alternate" type="text/html" href="http://blogs.ugidotnet.org/Box/archive/2009/10/04/back-in-black.aspx" />
        <id>http://blogs.ugidotnet.org/Box/archive/2009/10/04/back-in-black.aspx</id>
        <published>2009-10-04T16:26:49Z</published>
        <updated>2009-10-04T16:26:49Z</updated>
        <content type="html">&lt;p&gt;No, non vuol dire che mi sono venute manie strane riguardo al metal in genere…&lt;/p&gt;  &lt;p&gt;Semplicemente, sto cercando di prendere maschera e boccaglio e di riemergere dall’apnea communitaria che mi ha contraddistinto in questi mesi… chi mi conosce sa che sono “periodico” da questo punto di vista. Tutto sta a vedere quanto gli impegni lavorativi mi permetteranno di stare fuori dall’acqua! Se non altro, non ho libri in progetto per questo periodo, quindi speriamo bene! &lt;/p&gt;  &lt;p&gt;A presto con nuovi issue :)&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/Box/aggbug/97176.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blogs.ugidotnet.org/Box/comments/97176.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blogs.ugidotnet.org/Box/comments/commentRss/97176.aspx</wfw:commentRss>
        <trackback:ping>http://blogs.ugidotnet.org/Box/services/trackbacks/97176.aspx</trackback:ping>
    </entry>
</feed>