<rss version="2.0" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>.NET Architectonics</title>
        <link>http://blogs.ugidotnet.org/dinoes/Default.aspx</link>
        <description>Pensieri, parole, opere ed omissioni.</description>
        <language>it-IT</language>
        <copyright>Dino Esposito</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <image>
            <title>.NET Architectonics</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/dinoes/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Le quote di ASP.NET </title>
            <category>Perspective</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/06/18/le-quote-di-asp.net.aspx</link>
            <description>&lt;p&gt;Ho trovato questo post di oramai 5 anni fa che discute la &lt;strong&gt;&lt;a href="http://news.netcraft.com/archives/2004/03/23/aspnet_overtakes_jsp_and_java_servlets.html"&gt;penetrazione di ASP.NET&lt;/a&gt;&lt;/strong&gt; sul mercato delle WebApp. E mi chiedevo se qualcuno conosce riferimenti più recenti.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Grazie!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/96459.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/06/18/le-quote-di-asp.net.aspx</guid>
            <pubDate>Thu, 18 Jun 2009 16:22:56 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/96459.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/06/18/le-quote-di-asp.net.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/96459.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/96459.aspx</trackback:ping>
        </item>
        <item>
            <title>Opt-in per viewstate in ASP.NET 4.0</title>
            <category>ASP.NET AJAX</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/06/13/opt-in-per-viewstate-in-asp.net-4.0.aspx</link>
            <description>&lt;p&gt;A parte un discreto insieme di novità per AJAX, non è che ASP.NET 4.0 offra poi granché. Chi si illudeva di trovarci magari una schema di implementazione per MVP è per ora rimasto deluso. La parola d'ordine sembra essere "più controllo". E in effetti se escludiamo rivoluzioni filosofiche non è che sia rimasto molto da sistemare. Quindi o ci sta bene com'è o ci si rivolge a ASP.NET MVC. &lt;/p&gt;
&lt;p&gt;Una cosa effettivamente sistemata per il meglio (oddio, a parte la confusione tra proprietà un pochino sovrapposte) riguarda il viewstate. &lt;/p&gt;
&lt;p&gt;Non starò qui a menarla (ancora) sul fatto che il viewstate &lt;strong&gt;non è un modo perverso&lt;/strong&gt; di appesantire le pagine. Che ci crediate o no, il viewstate serve a qualcosa e lasciarlo nella pagina è la soluzione con &lt;strong&gt;meno controindicazioni&lt;/strong&gt;.  Detto che il viewstate di fatto serve realmente solo per pochissimi controlli in una pagina, fino ad ASP.NET 3.5 SP1 si scopre che in effetti &lt;strong&gt;opt-out&lt;/strong&gt; è il solo approccio supportato. Tradotto, che vuol dire?&lt;/p&gt;
&lt;p&gt;Il viewstate è controllato dalla proprietà booleana &lt;strong&gt;EnableViewState&lt;/strong&gt;. E uno pensa che gli basta disabilitarlo sul controllo che vuole e tutto va a meraviglia. Sbagliato. Se il viewstate è abilitato sulla pagina (in generale sul container di un controllo) ogni controllo  figlio ne eredita il valore. Punto. E soprattutto indipendentemente dal valore di EnableViewState sul controllo stesso. &lt;/p&gt;
&lt;p&gt;Ora in ASP.NET 4.0 potevano semplicemente invertire la logica nel setter di EnableViewState. Ma questo probabilmente avrebbe causato casini con le miriadi di applicazioni esistenti. Ergo, appare dal nulla una nuova proprietà: &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.control.viewstatemode(VS.100).aspx"&gt;ViewStateMode&lt;/a&gt;&lt;/strong&gt;. La proprietà può assumere tre valori (Disabled-Enabled-Inherit) ovviamente riferiti allo stato del viewstate sul controllo. Grazie a questa proprietà, il supporto per il viewstate in ogni controllo diventa &lt;strong&gt;opt-in &lt;/strong&gt;ovvero ciascun controllo decide se vuole il viewstate o no. Soprattutto può farlo indipendentemente da ci; che fa il parent.&lt;/p&gt;
&lt;p&gt;Tutto facile? Manco per sogno &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/teeth_smile.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Per un vero scenario opt-in seguire le istruzioni:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;EnableViewState&lt;/strong&gt; per la pagina/container deve essere sempre &lt;strong&gt;true&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ViewStateMode&lt;/strong&gt; per la pagina/container va messo a &lt;strong&gt;Disabled&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ViewStateMode&lt;/strong&gt; per i controlli che si vuole va messo a &lt;strong&gt;Enabled&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Al momento altre combinazioni o non funzionano o non danno risultati predicibii.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/96422.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/06/13/opt-in-per-viewstate-in-asp.net-4.0.aspx</guid>
            <pubDate>Sat, 13 Jun 2009 20:41:33 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/96422.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/06/13/opt-in-per-viewstate-in-asp.net-4.0.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/96422.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/96422.aspx</trackback:ping>
        </item>
        <item>
            <title>Testing o Testabilità</title>
            <category>Software design</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/05/14/testing-o-testabilita.aspx</link>
            <description>&lt;p&gt;Mentre noto che da qualche anno si parla molto di &lt;strong&gt;testing&lt;/strong&gt;, mi pare di rilevare una minore attenzione verso uno degli attributi fondamentali del software, almeno stando agli standard internazionali ISO/IEC--la &lt;strong&gt;testabilità&lt;/strong&gt; del software. &lt;/p&gt;
&lt;p&gt;Cosa conta di più, allora? &lt;/p&gt;
&lt;p&gt;Beh, il testing è sotanzialmente il risultato dell'esecuzione di una serie di programmi ad hoc (OK, intendo automated testing) volti ad assicurare che le classi (unit) o il sistema nel suo insieme si comportano come ci si aspetta in relazione al codice ed eventualmente a componenti esterni.&lt;/p&gt;
&lt;p&gt;Il testing ci dice che il software funziona. O più esattamente ci dice che le funzioni/scenario che abbiamo testato funzionano. Il che non è male, ma non è nemmeno certezza assoluta. Come scriviamo con &lt;a href="http://blogs.ugidotnet.org/pape"&gt;&lt;strong&gt;Andrea&lt;/strong&gt;&lt;/a&gt; in "&lt;a href="http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-PRO-Developer/dp/073562609X/ref=pd_sim_b_7"&gt;Architecting Applications for the Enterprise&lt;/a&gt;", il testing e in particolare lo unit-testing serve solo al team per darsi la sicurezza che si sta procedendo sulla giusta strada e per crearsi uno strumento di difesa contro regressioni post-modifiche. &lt;/p&gt;
&lt;p&gt;La testabilità, invece, ci porta a scrivere codice che sia semplice da sottoporre a unit-testing. E come è possibile ciò? Sostanzialmente facendo uso di principi di design e opportuni pattern. Alla fine, il paradosso sapete qual è? E' che la testabilità serve non direttamente al testing, ma ad avere soprattutto codice migliore e meglio disegnato. Il testing è una scusa per dedicarsi seriamente alla testabilità. &lt;/p&gt;
&lt;p&gt;E la testabilità del codice comincia dalla definizione di software contracts. O come li chiama MS (che deve sempre distinguersi...) code-contracts. Oggi anche per VS 2008 in attesa di .NET 4.0 e VS2010.&lt;/p&gt;
&lt;p&gt;Certo talvolta la testabilità rischia di fare a pugni con la purezza del design OOD. Ma la ricerca della testabilità porta a codice più flessibile, modificabile e anche leggibile. E se poi non è puro OOD... chi se ne frega. E se, come dice un esperto del campo--il mio amico &lt;strong&gt;&lt;a href="http://weblogs.asp.net/rosherove/archive/2007/02/25/why-you-should-think-about-ootp-object-oriented-testable-programming.aspx"&gt;Roy Osherove&lt;/a&gt;&lt;/strong&gt;--fosse ora di cambiare alcune definizioni di OOD?&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/96188.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/05/14/testing-o-testabilita.aspx</guid>
            <pubDate>Thu, 14 May 2009 11:04:38 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/96188.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/05/14/testing-o-testabilita.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/96188.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/96188.aspx</trackback:ping>
        </item>
        <item>
            <title>Interviste</title>
            <category>Perspective</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/05/03/interviste.aspx</link>
            <description>E' solo un caso, ma pare che io abbia molte cose da dire in questi giorni... Infatti escono online due interviste (in inglese) rilasciate molto di recente. Una su &lt;strong&gt;&lt;a href="http://www.dotnetrocks.com/default.aspx?showNum=442"&gt;DotNetRocks&lt;/a&gt;&lt;/strong&gt; e una su &lt;strong&gt;&lt;a href="http://www.sodthis.com/podcast/2009/04/30/sod-this-4-now-with-100-less-swearing"&gt;SodThis&lt;/a&gt;&lt;/strong&gt;, quest'ultima registrata peraltro durante &lt;strong&gt;&lt;a href="http://www.bastaitalia.it"&gt;Basta Italia&lt;/a&gt;&lt;/strong&gt;.&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/96092.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/05/03/interviste.aspx</guid>
            <pubDate>Sun, 03 May 2009 07:44:24 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/96092.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/05/03/interviste.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/96092.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/96092.aspx</trackback:ping>
        </item>
        <item>
            <title>100 di questi giorni</title>
            <category>Perspective</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/04/23/100-di-questi-giorni.aspx</link>
            <description>&lt;p&gt;Come abbondantemente ricordato da tiggì e giornali, il 22 aprile &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Rita_Levi-Montalcini"&gt;Rita Levi Montalcini&lt;/a&gt;&lt;/strong&gt; ha compiuto 100 anni. &lt;a href="http://en.wikipedia.org/wiki/Rita_Levi-Montalcini"&gt;&lt;strong&gt;Rita Levi Montalcini&lt;/strong&gt;&lt;/a&gt; ha ricevuto il &lt;strong&gt;&lt;a href="http://nobelprize.org/nobel_prizes/medicine/laureates/index.html"&gt;premio Nobel&lt;/a&gt;&lt;/strong&gt; per la Medicina nel 1986 ed è senatore a vita dal 2001. E' meno noto che la Montalcini ha una sorella gemella &lt;strong&gt;&lt;a href="http://www.luxflux.net/artists/levi/biog.htm"&gt;Paola Levi Montalcini&lt;/a&gt;&lt;/strong&gt; morta nel 2000 che è stata una ottima artista e pittrice. &lt;/p&gt;
&lt;p&gt;Credo fosse il Natale del 1993 quando la piccola società per cui lavoravo realizza un "banale" chiosco elettronico con un'applicazione che gira ad libitum mostrando immagini zoomabili e descrizioni. Questo chiosco viene piazzato alla Galleria d'Arte Contemporanea di Roma in occasione di una mostra con opere anche della Montalcini. Alla cerimonia d'apertura partecipano le gemelle Montalcini e bontà degli organizzatori la mia società riceve alcuni inviti. Uno lo passano a me. &lt;/p&gt;
&lt;p&gt;Non so come, né perché, ma ad un certo punto il mio capo mi chiama e dice più o meno che una persona vuole conoscermi. Penso ad un professore universitario, forse ad un top manager, più probabilmente a qualche politicante. Invece no, si tratta di Rita Levi Montalcini. Quando me lo dice, passo i successivi 20 secondi a pensare intensamente a cosa dire. Quando mi stringe la mano riesco a mormorare un "sono onorato...". E lei ribatte qualcosa come "ma che dice, io sono onorata di conoscere queste giovani menti che creano cose così meravigliose...". &lt;/p&gt;
&lt;p&gt;Io avevo solo scritto una DLL Win16 per incapsulare una libreria di compressione frattale che all'epoca (...1993...) se la giocava da favorito con JPEG. Nulla nel chiosco era mio e nemmeno avevo idea di come potesse essere fatto. &lt;/p&gt;
&lt;p&gt;Il 1993 era proprio un altro mondo, molto più lontano di 16 anni. Durante il trasloco con cui sono alle prese in questi giorni sono saltate fuori copie di MC Microcomputer dell'epoca o di Computer Programming e Microsoft Systems Journal. E' istruttivo rileggere di COM+ per esempio oggi nel 2009.&lt;/p&gt;
&lt;p&gt;That's life!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/96031.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/04/23/100-di-questi-giorni.aspx</guid>
            <pubDate>Thu, 23 Apr 2009 20:42:08 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/96031.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/04/23/100-di-questi-giorni.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/96031.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/96031.aspx</trackback:ping>
        </item>
        <item>
            <title>Web Forms vs. ASP.NET MVC</title>
            <category>ASP.NET MVC</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/04/15/web-forms-vs.-asp.net-mvc.aspx</link>
            <description>&lt;p&gt;Tema difficile ... In un articolo che apparirà presto su &lt;strong&gt;MSDN Magazine&lt;/strong&gt; provo a guardare ai fatti e non alle emozioni. Alla fine, mi viene da dire che è proprio come dice MS--auto o moto. Ciascun framework ha le sue caratteristiche e i suoi pregi e difetti. Uno è più RAD, l'altro più TDD. &lt;/p&gt;
&lt;p&gt;Quello che mi preme dire è che NON è vero che serve ASP.NET MVC per scrivere una buona applicazione ASP.NET con pagine ragionevolmente testabili e modularità. Basta saper scrivere software o al limite lasciarsi guidare da un pattern. In ASP.NET MVC la Microsoft ha preso un pattern che ha visto funzionare (RoR e MonoRail) l'ha chiamato (anzi ribattezzato) MVC e, &lt;em&gt;vox dei-vox populi, &lt;/em&gt;ci è accorti di quanto importante sia SoC. &lt;/p&gt;
&lt;p&gt;Ma trentanni di software non hanno insegnato niente a nessuno? &lt;strong&gt;&lt;a href="http://en.wikipedia.org/wiki/Edsger_W._Dijkstra"&gt;Dijkstra&lt;/a&gt;&lt;/strong&gt; era un mito già negli anni 80 a &lt;strong&gt;&lt;a href="http://www.di.unipi.it/main.html"&gt;Pisa&lt;/a&gt;&lt;/strong&gt;; la SoC appartiene a un suo documento del 1974, quando la &lt;strong&gt;&lt;a href="http://www.sslazio.it"&gt;Lazio&lt;/a&gt;&lt;/strong&gt; aveva appena vinto un incredibile scudetto... Anni luce ...&lt;/p&gt;
&lt;p&gt;E adesso mi tocca leggere su blog e articoli che la MS ha lanciato un framework basato su un pattern che è troppo figo perché ti fa testare il software e ti fa separare logica da presentation e da business. Grande! Bellissimo! &lt;/p&gt;
&lt;p&gt;Non ci posso credere... Scusate, ma prima? Come si faceva? Quando non c'era la TV come si faceva? &lt;/p&gt;
&lt;p&gt;Microsoft aveva un solo obiettivo e due strade: costringere un milione di sviluppatori a scrivere codice migliore. Per farlo poteva migliorare ASP.NET Web Forms ficcandoci dentro un pattern oppure creare qualcosa di diverso ma compatibile. &lt;/p&gt;
&lt;p&gt;La strada &lt;a href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx "&gt;&lt;strong&gt;Web Client Software Factory&lt;/strong&gt;&lt;/a&gt; è stata giudicata troppo complessa; ergo si è andati a prendere esempio da RoR. Ed è nato ASP.NET MVC. Tra l'altro (ora che l'ho visto un po' da vicino) nemmeno fatto male...&lt;/p&gt;
&lt;p&gt;Nel mio blog in inglese potete leggere &lt;strong&gt;&lt;a href="http://weblogs.asp.net/despos/archive/2009/04/11/web-forms-vs-asp-net-mvc.aspx"&gt;qualcosa di più&lt;/a&gt;&lt;/strong&gt; in attesa dell'articolo di MSDN e di un mio libro che uscirà in autunno. &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/95965.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/04/15/web-forms-vs.-asp.net-mvc.aspx</guid>
            <pubDate>Wed, 15 Apr 2009 18:45:32 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/95965.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/04/15/web-forms-vs.-asp.net-mvc.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/95965.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/95965.aspx</trackback:ping>
        </item>
        <item>
            <title>La logica del ribasso</title>
            <category>Perspective</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/04/11/la-logica-del-ribasso.aspx</link>
            <description>&lt;p&gt;Quoto da &lt;strong&gt;&lt;a href="http://www.repubblica.it/2009/04/sezioni/cronaca/sisma-aquila-3/sabbia/sabbia.html"&gt;Repubblica.it&lt;/a&gt;&lt;/strong&gt; un frammento di un articolo sul cemento abruzzese e la sabbia di mare. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;"Chiederemo che venga reintrodotta una figura di controllo che accompagni la costruzione di un edificio dall'inizio alla fine. Evitando che i subappalti, da strumento necessario di duttilità, diventino il ricettacolo di furbizie e illegalità. &lt;u&gt;&lt;font style="BACKGROUND-COLOR: #ffff00"&gt;Ma ci batteremo anche perché il Paese esca dalla logica del ribasso. Quella che spinge molti, pur di stare nel mercato, a costruire a prezzi impossibili. Ad abdicare alla qualità e alla sicurezza&lt;/font&gt;&lt;/u&gt;". &lt;br /&gt;
&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Checchè se ne dica il terremoto di lunedi (come quello molisano del 2002) non era niente di che. Forte certo, ma di &lt;u&gt;media&lt;/u&gt; potenza. Da prendersi un grosso spavento; magari da morirci d'infarto, ma non schiacciati dal piano di sopra. Questo terremoto era niente che un normalissimo cemento armato (senza neppure speciali cure anti-sismiche) non potesse sopportare.  E questo lo dicono numeri sciorinati nell'articolo. Ma lo scopo di questo post non è quello di commentare la tragedia del terremoto. Ma quello di riflettere sulle frasi evidenziate, generalizzandone il contesto. E poi adattandolo al mondo del software.&lt;/p&gt;
&lt;p&gt;Proprio ieri con &lt;strong&gt;&lt;a href="http://blogs.ugidotnet.org/pape"&gt;Andrea&lt;/a&gt;&lt;/strong&gt; commentavamo la spirale al ribasso dei costi per sviluppatore su progetto. Crisi o non crisi è chiaro che la spirale al ribasso non può esistere oltre un limite fisico (peraltro superato da tempo). Mi torna in mente un classico fighetto ventenne figlio-di-papà che tanti anni fa circondato da fanciulle in fiore filosofeggiava che un'auto potente "te la devi poter permettere, sennò tanto vale rinunciare e fare il pezzente con la 500".  Ovviamente quello con la 500 ero io, mentre lui se la spassava in BMW &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/teeth_smile.gif" /&gt;.&lt;/p&gt;
&lt;p&gt;E' la logica del ribasso che uccide questo paese. La logica del ribasso inevitabilmente porta ad abdicare alla qualità e alla sicurezza. E quando questo avviene nel pubblico è semplicemente un'indecenza criminale. E non è nemmeno vero che nel software si rischi di meno. Non si rischia di rimanere sotto le macerie; ma di vedere la propria e altrui qualità della vita collassare... decisamente sì. &lt;/p&gt;
&lt;p&gt;Razionalizzare i costi NON significa tagliare a prescindere. Significa spendere meglio e magari meno. Significa aumentare il ricavo a fronte di una spesa. Significa spolpare i margini del grasso accumulato in (ma quali?) anni di abbondanza. Significa capire cosa si compra. Non significa che un progetto dato in outsourcing sia per default ben fatto e possa non essere testato tanto la responsabilità non è la mia ... Ma chi sono questi fenomeni... &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/95934.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/04/11/la-logica-del-ribasso.aspx</guid>
            <pubDate>Sat, 11 Apr 2009 13:28:19 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/95934.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/04/11/la-logica-del-ribasso.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/95934.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/95934.aspx</trackback:ping>
        </item>
        <item>
            <title>Com'è "verde" il mio design</title>
            <category>Perspective</category>
            <category>Software design</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/04/06/comera-verde-il-mio-design.aspx</link>
            <description>&lt;p&gt;Durante la scrittura del libro "&lt;strong&gt;&lt;a href="http://www.amazon.com/Microsoft®-NET-Architecting-Applications-PRO-Developer/dp/073562609X/ref=pd_bxgy_b_text_b"&gt;Microsoft .NET: Architecting Applications for the Enterprise&lt;/a&gt;&lt;/strong&gt;" con &lt;strong&gt;&lt;a href="http://blogs.ugidotnet.org/pape"&gt;Andrea&lt;/a&gt;&lt;/strong&gt; abbiamo spesso discusso delle caratteristiche dei possibili &lt;em&gt;lettori ideali&lt;/em&gt;. E ci siamo trovati d'accordo che i contenuti del capitolo 3 ("Design principles and patterns") sono di fatto patrimonio comune di architetti e sviluppatori di ogni ordine e grado e persino di manager e IT people. &lt;/p&gt;
&lt;p&gt;Il design del software e l'ingegneria del software non sono nulla di nuovo. Ma sono qualcosa che, almeno nel mondo MS, è andato scomparendo--anzi non è mai entrato--nel corso degli anni. E' evidente la differenza con il mondo Java: da una parte strumenti di sviluppo straordinari e sostenibili; dall'altra la cieca (e persino a volte ottusa) implementazione di pattern e regole di design. &lt;/p&gt;
&lt;p&gt;Ora che MS sembra curarsi un po' piu' del design del codice che gli sviluppatori VS andranno a scrivere si nota un livello di cultura del design non del tutto atteso. Come avrebbe detto la mia professoressa di italiano/storia/geografia alle medie, al ragazzo (MS) mancano un po' le basi. Ma ha volontà di imparare e magari ce la farà. Sia pure a suon di strafalcioni. &lt;/p&gt;
&lt;p&gt;C'è una sessione che ho presentato a &lt;strong&gt;&lt;a href="http://www.devconnections.com"&gt;DevConnections&lt;/a&gt;&lt;/strong&gt; e che presenterò a un po' di DevDays in giro che sia pure con vari titoli affronta i principi base del software design e li inquadra in ottica .NET. Roba come &lt;u&gt;high cohesion&lt;/u&gt;, &lt;u&gt;low coupling&lt;/u&gt;, &lt;u&gt;composition vs inheritance&lt;/u&gt;, &lt;u&gt;information hiding&lt;/u&gt;, &lt;u&gt;dependency inversion&lt;/u&gt;. Tutti più o meno sanno di che si parla, pochi li applicano sistematicamente. Pochi davvero conoscono la high cohesion e il &lt;u&gt;Single Responsibility Principle&lt;/u&gt;. Va molto meglio con il low coupling e il programming-to-interfaces.&lt;/p&gt;
&lt;p&gt;Addirittura mi è stato fatto notare che sarebbe un fulgido esempio di Green IT. Più codice scritto correttamente la prima volta, meno testing, meno debugging, meno ore in ufficio, meno traffico nell'ora di punta, meno condizionatori, meno riscaldamento, meno energia elettrica. &lt;/p&gt;
&lt;p&gt;Facciamoci un favore--scriviamo codice migliore. Il futuro del software è nella qualità. Non nella quantità&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/95893.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/04/06/comera-verde-il-mio-design.aspx</guid>
            <pubDate>Mon, 06 Apr 2009 20:44:50 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/95893.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/04/06/comera-verde-il-mio-design.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/95893.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/95893.aspx</trackback:ping>
        </item>
        <item>
            <title>Nascere digitali</title>
            <category>Perspective</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/03/31/nascere-digitali.aspx</link>
            <description>&lt;p&gt;Espressioni come &lt;strong&gt;digital native&lt;/strong&gt; e &lt;strong&gt;digital immigrant&lt;/strong&gt; lo confesso mi scioccano e mi lasciano tra i denti la domanda "ma in che razza di mondo viviamo?".  Da Wikipedia: &lt;/p&gt;
&lt;p&gt;&lt;em&gt;A digital native is a person who has grown up with digital technology such as computers, the Internet, mobile phones and MP3.&lt;/em&gt; &lt;/p&gt;
&lt;p&gt;Ne consegue che un immigrant è qualcuno che si è spostato in un mondo digitale, ci si trova decentemente, ma non vi è nato. E' un fatto anche generazionale. E noi presunti guru e professionisti siamo tutti, a vario titolo e livello, immigrati.&lt;/p&gt;
&lt;p&gt;Chi sono i nativi? Di sicuro lo sono a pieno titolo i ragazzini di oggi, quelli che hanno una decina d'anni e sono alle elementari. (Ho qualche dubbio che gli adolescenti e i liceali lo siano del tutto.)&lt;/p&gt;
&lt;p&gt;Alcuni che erano a &lt;strong&gt;&lt;a href="http://www.bastaitalia.it"&gt;Basta-Italia&lt;/a&gt;&lt;/strong&gt; lo avranno notato; di sicuro &lt;strong&gt;&lt;a href="http://blogs.msdn.com/italy/"&gt;Gabriele Castellani di MS&lt;/a&gt;&lt;/strong&gt; se lo ricorda benissimo. Mio figlio di 11 anni (autorizzato) ha marinato la scuola per assistere alla keynote su Windows 7 e ha tempestato il buon Gab di domande su driver, performance, personalizzazione e procedura di setup. E si è candidato per una keynote all'evento Launch di Windows 7 quando sarà &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/teeth_smile.gif" /&gt;. Non contento, tornati a casa si è pure installato &lt;u&gt;da solo&lt;/u&gt; Windows 7 (versione inglese, clean install) chiedendomi solo lumi sul layout della tastiera e sul "currenci". Alla fine, e solo alla fine, i compiti. Giusto no?&lt;/p&gt;
&lt;p&gt;E' abbastanza &lt;strong&gt;native&lt;/strong&gt;? Sentite questa allora. Ieri sera lo becco in camera sua alle prese con un "lavoro urgente da finire" al punto da ritardare la cena di qualche minuto.&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Collegato in chat sull'ultima versione di Messenger con un'amichetta a mandarsi incomprensibili emoticons (ma già io sono solo un &lt;strong&gt;immigrato&lt;/strong&gt;...) &lt;/li&gt;
    &lt;li&gt;In voce su Skype mentre dava istruzioni ad un altro amico solo un po' meno native di lui su come personalizzare il desktop di Windows XP. &lt;/li&gt;
    &lt;li&gt;Nel mentre faceva i compiti in modalità "collaborativa" su &lt;strong&gt;&lt;a href="http://www.ibrii.com"&gt;IBrii&lt;/a&gt;&lt;/strong&gt;, nel senso che su una nota condivisa ognuno (di non so quanti compagni) scriveva i risultati di un'operazione di matematica. E &lt;a title="iBrii--Web sticky notes" rel="" href="http://www.ibrii.com"&gt;iBrii&lt;/a&gt; è solo una roba (niente male, ..., modestamente) che esiste da qualche giorno in rete ... &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il futuro è nel software. Esultiamo, gente, esultiamo!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/95839.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/03/31/nascere-digitali.aspx</guid>
            <pubDate>Tue, 31 Mar 2009 07:41:53 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/95839.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/03/31/nascere-digitali.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/95839.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/95839.aspx</trackback:ping>
        </item>
        <item>
            <title>Ancora BASTA! Questa volta in Tour</title>
            <category>Events</category>
            <link>http://blogs.ugidotnet.org/dinoes/archive/2009/03/30/ancora-basta-questa-volta-in-tour.aspx</link>
            <description>&lt;p&gt;Ci risiamo ed è ora ufficiale. Di BASTA non se ne è avuta ancora abBASTAstanza &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/teeth_smile.gif" /&gt; (Di lunedi mattina che pretendevate? Battute &lt;em&gt;smart&lt;/em&gt; alla Benigni?)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.bastaitalia.it"&gt;BASTA-on-Tour&lt;/a&gt;&lt;/strong&gt; è a Milano il &lt;strong&gt;28 e 29 Maggio 2009&lt;/strong&gt;, &lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=crowne+plaza+linate+milan&amp;amp;vps=1&amp;amp;jsv=151e&amp;amp;sll=45.421483,9.253449&amp;amp;sspn=0.011085,0.027809&amp;amp;ie=UTF8&amp;amp;latlng=45421490,9252709,11636975676916251380&amp;amp;ei=0XTQSenrG4LK2wLC6OSUCA&amp;amp;cd=1"&gt;Hotel Crowne Plaza Linate&lt;/a&gt; con il seguente programma: &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table style="WIDTH: 478px" cellspacing="1" cellpadding="1" width="478" summary="" border="1"&gt;
    &lt;caption&gt;&lt;strong&gt;Giovedi 28 Maggio 2009&lt;/strong&gt;&lt;/caption&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;Sviluppare applicazioni Web con ASP.NET &lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;a href="http://blogs.aspitalia.com/Daniele"&gt;Daniele Bochicchio&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Sviluppare applicazioni Sharepoint 2007 &lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;Michele Adamo, Vincenzo Tenisci&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Il Web secondo Silverlight &lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;a href="http://blogs.ugidotnet.org/dinoes"&gt;Dino Esposito&lt;/a&gt; &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="FONT-SIZE: 11pt"&gt;&lt;font size="2"&gt;.NET Solution Architecture - Part 1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.ugidotnet.org/pape"&gt;Andrea Saltarello&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table cellspacing="1" cellpadding="1" width="478" summary="" border="1"&gt;
    &lt;caption&gt;&lt;strong&gt;Venerdi 29 Maggio 2009&lt;/strong&gt;&lt;/caption&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;Real-world Entity Framework&lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;a href="http://blogs.ugidotnet.org/RobyMes"&gt;Roberto Messora&lt;/a&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;All’opera con ASP.NET MVC e jQuery &lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;a href="http://blogs.ugidotnet.org/dinoes"&gt;Dino Esposito&lt;/a&gt; &lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="FONT-SIZE: 11pt"&gt;&lt;font size="2"&gt;.NET Solution Architecture - Part 2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.ugidotnet.org/pape"&gt;Andrea Saltarello&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;&lt;span style="FONT-SIZE: 11pt"&gt;&lt;font size="2"&gt;Implementare soluzioni service-oriented in .NET&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;
            &lt;td&gt;
            &lt;p align="center"&gt;&lt;font size="2"&gt;&lt;a href="http://blogs.aspitalia.com/sm15455"&gt;Stefano Mostarda&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;I prezzi come segue&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt; &lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;table cellspacing="1" cellpadding="1" width="200" summary="" border="1"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;Very Early Bird (30/4)&lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;169eur / gg&lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Early Bird (15/5)&lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;199eur / gg&lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Standard    &lt;/td&gt;
            &lt;td&gt;&lt;strong&gt;289eur / gg&lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;em&gt;                   &lt;/em&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;&lt;em&gt;&lt;hr /&gt;
&lt;/em&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;Per quanto mi riguarda, ecco gli abstract e qualche ulteriore dettaglio:&lt;/div&gt;
&lt;div style="MARGIN: 0in 0in 0pt"&gt;
&lt;p&gt;&lt;strong&gt;ASP.NET MVC e jQuery&lt;br /&gt;
&lt;/strong&gt;&lt;em&gt;Da semplice alternativa al classico modello Web Forms, ASP.NET MVC è diventato la vera faccia del Web made in Microsoft e sta conquistando spazi inaspettati e insospettabili. Basato su una variante del modello MVC, la nuova piattaforma “costringe” a pensare in termini di azioni e definisce rigidamente il flusso di dati. Altra novità significativa nel panorama Web è la libreria jQuery per applicazioni client-side. Parte dello stesso download, ASP.NET MVC e jQuery 1.3.2 si integrano perfettamente e danno nuova linfa al Web. In questo workshop, svilupperemo alcune pagine con ASP.NET MVC per vedere all’opera il framework nei più comuni scenari quali data binding, data entry, user experience e interazioni AJAX. Si parlerà di jQuery UI per fare cose meravigliose come tab/accordion/dialog box.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Il Web secondo Silverlight&lt;/strong&gt;&lt;br /&gt;
&lt;em&gt;Solo per programmatori e con una prospettiva .NET. Quindi poca roba su WPF, animazioni e HD. Si parlerà di isolated storage, occasionally connected applications, networking, threading, compatibilità con WPF, M-V-VM, e vedremo in azione Silverlight 3 e in particolare out-of-browser e local messaging. &lt;/em&gt;&lt;/p&gt;
&lt;!-- }HTML --&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/dinoes/aggbug/95827.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Dino Esposito</dc:creator>
            <guid>http://blogs.ugidotnet.org/dinoes/archive/2009/03/30/ancora-basta-questa-volta-in-tour.aspx</guid>
            <pubDate>Mon, 30 Mar 2009 07:51:24 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/dinoes/comments/95827.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/dinoes/archive/2009/03/30/ancora-basta-questa-volta-in-tour.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/dinoes/comments/commentRss/95827.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/dinoes/services/trackbacks/95827.aspx</trackback:ping>
        </item>
    </channel>
</rss>