<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>Pensieri malcelati</title>
        <link>http://blogs.ugidotnet.org/PensieriMalcelati/Default.aspx</link>
        <description>Il blog di Andrea Raimondi</description>
        <language>it-IT</language>
        <copyright>Andrea Raimondi</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <image>
            <title>Pensieri malcelati</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Ma perch&amp;eacute; la Webmail telecom &amp;egrave; cos&amp;igrave; pessima?</title>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/16/67196.aspx</link>
            <description>&lt;p&gt;Se c'è una cosa che proprio odio fare è dover cancellare lo spam dalla webmail telecom.&lt;/p&gt; &lt;p&gt;Ogni volta è un&amp;nbsp;macello e ci mette un sacco di tempo per restituirmi la pagina successiva di posta.&lt;/p&gt; &lt;p&gt;E' una roba assurda ed indecente, considerando che ho una linea ADSL.&lt;/p&gt; &lt;p&gt;Sono veramente basito.&lt;/p&gt; &lt;p&gt;Andrea&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/67196.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/16/67196.aspx</guid>
            <pubDate>Tue, 16 Jan 2007 17:05:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/16/67196.aspx#feedback</comments>
            <slash:comments>34</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/67196.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/67196.aspx</trackback:ping>
        </item>
        <item>
            <title>No ad Internet Explorer 7? Un punto di vista...</title>
            <category>Altro</category>
            <category>Programmazione generale</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/13/66612.aspx</link>
            <description>&lt;p&gt;Mi riallaccio al &lt;a href="http://blogs.ugidotnet.org/raffaele/archive/2007/01/13/66395.aspx"&gt;post di Raffaele&lt;/a&gt; inerente l'idea che chi dice no per principio ad Internet Explorer 7 sia ignorante riguardo(vale a dire, non sia a conoscenza di)&amp;nbsp;la struttura componentizzata di Internet Explorer e di tutte le "cose" che IE fa.&lt;/p&gt; &lt;p&gt;E'&amp;nbsp;ciò assolutamente vero? E' solo questa l'unica possibile spiegazione? Non credo proprio, e spiego subito perché.&lt;/p&gt; &lt;p&gt;Raffaele stesso parla del più grande &lt;strong&gt;limite&lt;/strong&gt; di Windows, cioè che molte sue parti sono basate proprio su Internet Explorer.&lt;/p&gt; &lt;p&gt;Perché è un limite? Molto semplicemente, perché se c'è un errore nel browser, questo si propaga a &lt;strong&gt;tutto il sistema ed a tutte le applicazioni che sfruttano, consapevolmente o meno, quello stesso browser&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Non è successo una volta sola che un problema di sicurezza di Internet Explorer abbia causato problemi in applicazioni terze, magari completamente scorrelate.&amp;nbsp;&lt;br&gt;Può essere ok se si usa il controllo web browser, può essere ok se si usano gli oggetti HTML, è meno ok se per esempio il problema risiede in MSXML, tanto per dirne una.&lt;/p&gt; &lt;p&gt;Quindi, siamo sicuri che chi dice "No ad Internet Explorer 7" così, senza se e senza ma, lo faccia per "ignoranza"? O forse non è proprio il &lt;strong&gt;sapere&lt;/strong&gt; certe cose che spinge a dire "NO!"?&lt;/p&gt; &lt;p&gt;Quanto poi al discorso che Internet Explorer cerca di installarsi "ammucciato", come dicono i siciliani, non c'è niente di nuovo.&lt;br&gt;Lo fa già lo strumento di rimozione malware per Windows, che mi viene riproposto ogni volta che faccio l'aggiornamento, anche se io gli dico &lt;strong&gt;espressamente&lt;/strong&gt;&amp;nbsp;di non presentarmelo più.&lt;/p&gt; &lt;p&gt;E' quindi corretto dire che MS cerca di imporlo? Si, secondo me è corretto dirlo.&lt;/p&gt; &lt;p&gt;E' giusto o no scaricarlo? Beh, qui la risposta è molto soggettiva secondo me. Anzitutto c'è da considerare che IE è &lt;strong&gt;storicamente&lt;/strong&gt; pieno di problemi, non solo di sicurezza.&lt;/p&gt; &lt;p&gt;D'altro canto, però, è anche vera un'altra cosa e cioè che ci sono tantissimi siti che, purtroppo, funzionano solo con IE. E' dunque possibile che alcuni di quei siti vengano aggiornati per utilizzare le nuove caratteristiche di IE e quindi che sia necessario aggiornarlo.&lt;/p&gt; &lt;p&gt;L'unica categoria per la quale l'aggiornamento è davvero irrinunciabile, a mio avviso, risulta quella dei webdeveloper. Chiunque sviluppi anche una sola pagina web dovrebbe rassegnarsi e scaricarlo, visto che la stragrande maggioranza degli utenti lo sta adottando.&lt;/p&gt; &lt;p&gt;Come vedete, le cose non sono sempre così semplici quando si va ad analizzarle un pò meglio.&lt;/p&gt; &lt;p&gt;Infine, voglio contestare l'idea che chi dice una certa cosa lo faccia solo ed esclusivamente per ignoranza, quando non è &lt;strong&gt;affatto&lt;/strong&gt; sicuro che sia così, come mi sembra di aver dimostrato.&lt;/p&gt; &lt;p&gt;Concludendo: io IE7 l'ho installato perché - a volte - faccio parte dei webdeveloper :) quindi per me non c'era scelta. Altri, però, potrebbero fare scelte differenti.&lt;/p&gt; &lt;p&gt;Saluti,&lt;/p&gt; &lt;p&gt;Andrea&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/66612.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/13/66612.aspx</guid>
            <pubDate>Sat, 13 Jan 2007 15:50:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2007/01/13/66612.aspx#feedback</comments>
            <slash:comments>450</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/66612.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/66612.aspx</trackback:ping>
        </item>
        <item>
            <title>Borland Developer Studio e dotNET</title>
            <category>Programmazione Delphi</category>
            <category>Programmazione Delphi.NET</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2006/01/19/33291.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Eccomi qui pronto di nuovo a postare.&lt;/P&gt;
&lt;P&gt;L'argomento, che tratterò in una serie di post, è il nuovo Borland Developer 
Studio 2006, uno&lt;BR&gt;splendido strumento per lo sviluppo Win32 e dotNET.&lt;/P&gt;
&lt;P&gt;In questa serie, mi focalizzerò sullo sviluppo dotNET, in particolare una 
nuovissima e molto promettente tecnologia di nome &lt;STRONG&gt;&lt;EM&gt;Enterprise Core 
Objects ver. III&lt;/EM&gt;&lt;/STRONG&gt;(abbreviato ECOIII).&lt;/P&gt;
&lt;P&gt;Essa è basata(per ora) su dotNET 1.1 SP1, poiché BDS 2006 non supporta dotNET 
2.0(previsto invece per la prossima versione) e consente di avere un completo 
motore di persistenza e di gestione di oggetti.&lt;/P&gt;
&lt;P&gt;BDS2K6 viene in tre edizioni diverse: Pro, Enterprise, Architect. Ognuna di 
esse ha un "pezzo" di ECO, tranne la Architect che ha invece 
*&lt;STRONG&gt;tutto&lt;/STRONG&gt;*.&lt;/P&gt;
&lt;P&gt;Vediamo come funziona ECO "concettualmente": l'idea è basata sul Model Driven 
Development, infatti allo scopo BDS2K6 include Together, un tool di modellazione 
Borland anche per Visual Studio. Esso viene esteso da ECO per supportare la 
modellazione di classi persistenti, quindi si ha a disposizione un insieme di 
elementi UML da utilizzare per la pianificazione e la modellazione del 
sistema-applicazione.&lt;/P&gt;
&lt;P&gt;Quando servirà poi definire il sistema di persistenza, ecco che ECO mostra i 
muscoli: nelle versioni Enterprise ed Architect, infatti, è disponibile un 
completo framework che consente di avere indipendenza dal sistema database 
utilizzato(sono supportati tutti i DB attraverso i Borland Data Provider, di cui 
parlerò più avanti) e consente anche - in caso di cambio al modello - di 
evolvere il database.&lt;/P&gt;
&lt;P&gt;La funzione di evoluzione è anche utile quando si ha un database preesistente 
e si vuole generare il modello(opzione disponibile), aggiungendo quindi al DB 
tutti i campi e le robe che servono ad ECO per&lt;BR&gt;funzionare in modo 
corretto.&lt;/P&gt;
&lt;P&gt;Come detto, però, ECO non è solo un motore di persistenza: è infatti 
disponibile un Object Control Language(OCL) tramite il quale definire, vincoli, 
constraints, ma anche operazioni(supponendo ad&lt;BR&gt;esempio di voler caricare 
tutti gli elementi di classe TPersona, lo statement OCL è 
semplicemente&lt;BR&gt;"TPersona.AllInstances").&lt;/P&gt;
&lt;P&gt;Tra i vari metodi di serializzazione disponibili, ovviamente, c'è anche il 
formato XML, specificatamente SOAP - molto utile se si sviluppano Webservices 
oppure se si scrivono applicazioni "desktop".&lt;/P&gt;
&lt;P&gt;E non è finita qui &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Dicevo che avrei parlato dei Borland Data Provider più avanti... beh, spero 
che la piccola introduzione abbia suscitato un minimo di interesse, quindi ecco 
una piccola descrizione di cosa sono.&lt;/P&gt;
&lt;P&gt;Posto in termini semplici, la tecnologia BDP si appoggia alla 
"infrastruttura" ADO.NET aggiungendo&lt;BR&gt;però un pò di cose: anzitutto, c'è un 
sistema di connection pooling built-in(cosa che fa molto&lt;BR&gt;comodo in certi 
ambiti) e poi... uhm... mi sa che se continuo così, questo post non finisce più 
&lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;,&lt;BR&gt;quindi vi rimando a &lt;A title="" href="http://bdn.borland.com/article/0,1410,31939,00.html" target="" name=""&gt;questo articolo introduttivo sui BDP&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Ah, ovviamente ECO supporta anche ASP.NET 1.1(versioni ENT e ARCH), quindi 
potete creare dei "Webservice ECO" i quali sono quindi già "mezzi pronti", basta 
solo aggiungere il codice.&lt;/P&gt;
&lt;P&gt;Si, parlo di codice, infatti ECOIII non è un C.A.S.E.: pur potendo modellare 
le classi da rendere persistenti, si possono aggiungere delle operazioni(metodi) 
e codarle "a manina" mentre ECO si occupa di tutto il resto(persistenza, 
distruzione, ecc).&lt;/P&gt;
&lt;P&gt;Sfortunatamente, io dispongo solo della versione PRO, per di più da pochi 
giorni, quindi sto ancora imparando "bene" come realizzare i modelli e le vere 
potenzialità della tecnologia.&lt;/P&gt;
&lt;P&gt;Una cosa però&amp;nbsp;è degna di menzione: l'edizione Architect, oltre ad una 
serie di "goodies" in generale(troppa roba per elencarla in un post) contiene 
una parte&amp;nbsp;di ECO molto interessante:&amp;nbsp;è infatti possibile realizzare 
delle "ECO State Machines" che consentono di realizzare delle macchine a stati 
da usare con le classi persistenti. Molto, molto, molto carino &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Per ora finisco qui, spero di tornare presto con un altro post ed un pò di 
codice per mostrare come nella pratica funziona ECOIII(quindi anche con un pò di 
codice).&lt;/P&gt;
&lt;P&gt;Saluti,&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;

&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.3&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO 1.3 (EN) Instant Blogger Copyright (c) 2005 A.Boschin - http://www.imhoproject.org --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/33291.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2006/01/19/33291.aspx</guid>
            <pubDate>Thu, 19 Jan 2006 15:28:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2006/01/19/33291.aspx#feedback</comments>
            <slash:comments>311</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/33291.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/33291.aspx</trackback:ping>
        </item>
        <item>
            <title>[OT](~) It was bound to happen...</title>
            <category>Altro</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/29/28908.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Ebbene, finalmente si è "congelato l'inferno" e posto&amp;nbsp;il mio primo OT 
qui &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;. 
Che poi, in realtà, è OT fino ad un certo punto - visto 
che comunque di informatica si tratta(ed ecco il perché della tilde, il famoso 
"circa", messo tra parentesi fuori dal tag per&amp;nbsp;consentire comunque il filtering).&lt;/P&gt;
&lt;P&gt;Riguardo il fatto che prima o poi sarebbe accaduto, non c'era alcun dubbio, 
almeno per me.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;A title="" href="http://blogs.ugidotnet.org/Markino/archive/2005/10/28/28843.aspx" target="" name=""&gt;Questo post&lt;/A&gt; di Marco Birzaghi parla di una chiosa finale 
di Beppe Grillo(o Grullo &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;?) in un&amp;nbsp;post di quest'ultimo.&lt;/P&gt;
&lt;P&gt;Un pò di chiarimenti, diciamo così, preliminari: sono d'accordo che la scelta 
di un sistema dovrebbe essere &lt;STRONG&gt;tecnica&lt;/STRONG&gt; oltre che pratica, senza 
guardare "cui prodest" a meno che non vi siano motivi specifici.&lt;BR&gt;E' 
altrettanto vero, però, che una posizione di monopolio - anche se solo "di 
fatto"&amp;nbsp;- è &lt;STRONG&gt;sempre&lt;/STRONG&gt; un male, per il semplice motivo che 
impedisce agli altri di partecipare lealmente(e soprattutto, economicamente) 
alla "competizione".&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Marco poi espone un commento&amp;nbsp;che, a suo dire, riflette le sue stesse 
opinioni, per poi lanciarsi in una&lt;BR&gt;filippica, mi si passi il termine, 
"contro" i progetti OpenSource. Si, lo so, non dice "l'OpenSource è male", ma 
lascia intendere che dell'OpenSource &lt;STRONG&gt;in quanto tale&lt;/STRONG&gt; non ci si 
può fidare.&lt;/P&gt;
&lt;P&gt;Chissà com'è, però, quando io dico delle cose su argomenti che magari non 
conosco proprio benissimo(e succede...) allora mi si dice "eh ma tu parli senza 
conoscere", però quando poi lo fanno gli altri... nessuno fiata.&lt;/P&gt;
&lt;P&gt;Perché magari il nostro Marco non si è accorto, passando in edicola, che 
esistono &lt;STRONG&gt;tante&lt;/STRONG&gt; riviste su Linux e probabilmente non ha mai 
provato a scrivere una URL come &lt;A title="" href="http://groups.google.com/groups?q=howto+linux" target="" name=""&gt;&lt;/A&gt;&lt;A title=questa href="http://groups.google.com/groups?q=howto+linux" target="" name=""&gt;questa&lt;/A&gt;&amp;nbsp;oppure &lt;A title=questa href="http://groups.google.com/groups?q=howto+linux+italiano&amp;qt_s=Search" target="" name=""&gt;questa&lt;/A&gt;.&lt;BR&gt;Magari gli sarà anche sfuggito, ma si sa, non 
tutti conoscono i segreti di Google, che scrivendo "documentazione linux" e 
premendo "Mi sento fortunato" si finisce sul sito ZioBudda.net nella 
sezione(dici il caso...) &lt;A title=documentazione href="http://www.ziobudda.net/documentazione/" target="" name=""&gt;documentazione&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Qualora però tutto ciò non fosse possibile farlo perché magari il modem non 
si installa, allora la casalinga di Voghera potrà, scrivendo a qualcuna di 
quelle riviste che trova in edicola, scoprire che esistono i Linux User Group e 
scoprire(per uno strano scherzo del destino, la città non l'ho scelta io, ma lui 
&lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;) che proprio a Voghera ce n'è uno(il cui 
sito&amp;nbsp;però sembra al momento irraggiungibile, altrimenti avrei postato il 
link).&lt;BR&gt;Ecco che lì potrà trovare tutto l'aiuto che serve(il modem&amp;nbsp;è uno 
dei problemi più comuni) e risolvere, anche magari per farsi aiutare ad 
installarlo e configurarlo correttamente(ed i conflitti hardware si 
risolvono...).&lt;/P&gt;
&lt;P&gt;Infine, se proprio si vule provarlo prima di installarlo, esistono le 
distribuzioni Live, avviabili da CD senza fare(in alcuni casi) proprio niente. 
Vorrei anche far notare, giusto "en passant", che è molto comodo avere delle 
distro avviabili perché nella stragrande maggioranza dei casi sono un toccasana 
per computer che ad esempio non si avviano oppure per i quali non si conosce la 
password di Administrator e bisogna recuperare qualche file importante. Questo 
però con Windows non si può fare, non perché sia impossibile tecnicamente - ma 
solo perché Microsoft non lo consente, e siccome tutti i diritti sono suoi 
nessuno può modificarlo &lt;STRONG&gt;legalmente&lt;/STRONG&gt; affinché la cosa funzioni. 
Come detto, sarebbe comodo, però non siamo &lt;STRONG&gt;liberi di farlo, perché 
Windows è un prodotto proprietario!&lt;/STRONG&gt; Ecco, l'ho detto! &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Riguardo agli sviluppatori Linux che "se ne lavano le mani"(parole tue, 
Marco), sarebbe bello avere qualche esempio, qualche fonte, sai perché le parole 
hanno un peso un pò diverso quando vengono supportate da una fonte rispetto a 
quando questo non succede.&lt;/P&gt;
&lt;P&gt;Altro aspetto, invece, è la semplicità di Windows o Mac. Posso testimoniare 
in prima persona in quanto utente di entrambi i sistemi(si, sto usando un Mac 
da... uhm... Giugno in modo continuativo, inoltre mi è capitato di usarlo 
abbastanza spesso nell'ultimo anno e mezzo).&lt;BR&gt;Ovviamente, Windows lo conosco e 
lo "capisco"(nel senso di conoscerne il punto di vista, diciamo) molto meglio di 
Mac - tuttavia secondo me sono tutt'altro che facili, specialmente Windows.&lt;/P&gt;
&lt;P&gt;Però, a questo punto vale la pena fare qualche esempio 
Windows. Prendiamo il desktop: create due cartelle, con questi nomi: "Questa è' 
una cartella con un nome supermegaiperstratosfericamente lungo" e "Questa è una 
cartella con un nome lungo" . Noterete che sul desktop non c'è modo di 
distinguerle, specialmente se contengono molti files di tipo non omogeneo e non 
"riconosciuti" da Windows. Mac consente, invece, ad esempio, di 
&lt;EM&gt;colorare&lt;/EM&gt;             
             
          
     le cartelle in modi diversi, quindi anche se 
hanno dei nomi simili, quando sono colorate in modo differente si distinguono.&lt;/P&gt;
&lt;P&gt;Quanto ai problemi hardware... provate ad usare un modem TRUST USB&amp;nbsp; in Windows e poi ne 
riparliamo. Si tratta del primo esempio che mi è venuto in mente(visto che l'ho 
sperimentato personalmente ed anche qualche persona che conosco di vista) ma 
certamente ce ne sono altri.&lt;/P&gt;
&lt;P&gt;Cosa voglio dire con questo? Voglio dire semplicemente 
che &lt;STRONG&gt;un numero verde non sempre risolve i problemi&lt;/STRONG&gt;, voglio anche 
dire che &lt;STRONG&gt;non sempre un supporto comunitario è inefficace&lt;/STRONG&gt;, per 
questo basta constatare come lavorano gli MVP: qualcuno mette in discussione la 
loro preparazione? Mi pare proprio di no, e questo medesimo discorso vale anche 
per Linux(anche se non ci sono MVP... oppure è &lt;EM&gt;proprio quello il 
problema&lt;/EM&gt;? Scusate, ma non resisto quando si tratta di&amp;nbsp;teorie di 
complotto &lt;IMG height=19 src="http://www.imhoproject.org/files/complice.gif" width=19 align=absMiddle border=0&gt;    
           
             
     ).&lt;/P&gt;
&lt;P&gt;Torniamo alla documentazione: certo, per alcuni progetti non ce n'è proprio, 
per altri è abbastanza scarsa, però nemmeno nel software proprietario le cose 
vanno molto meglio: vogliamo parlare di certe API di Windows dove la 
documentazione dice una cosa, ma il funzionamento è diverso?&lt;BR&gt;Purtroppo - su 
due piedi&amp;nbsp;- non me ne viene in mente qualcuna, comunque ci sono e non sono 
poche.&lt;BR&gt;Quello che però voglio sottolineare non è l'imprecisione di per se, 
quanto piuttosto che su progetti così spaventosamente grandi(Windows, Linux, 
alcuni altri) è &lt;STRONG&gt;&lt;EM&gt;normale&lt;/EM&gt;&lt;/STRONG&gt; che sia così!&lt;/P&gt;
&lt;P&gt;Ancora riguardo a chi lascia a piedi gli utenti.&amp;nbsp;Scusate, non so 
voi, ma io sarà una&amp;nbsp;quindicina d'anni che uso DOS prima e Windows poi, e da Windows 
95 in poi ci sono &lt;STRONG&gt;&lt;EM&gt;&lt;U&gt;sempre&lt;/U&gt;&lt;/EM&gt;&lt;/STRONG&gt; stati gli updates, le patch, tanto 
che in MS sono arrivati perfino a scrivere un programma che tiene traccia delle 
patch installate(non so come si può avere, so che esiste però) e cose simili. Mi 
sono sempre chiesto quanto tempo noi passiamo a riavviare Windows. Voi ve lo 
siete chiesti? Allora, diciamo che una buona parte delle patch richiede il 
riavvio. Diciamo che in un mese escono 10 patch. Diciamo che ogni riavvio 
richiede DUE minuti. Sono esattamente 240 minuti all'anno. 4 ore. Però, di 
media, probabilmente un singolo riavvio richiede più tempo(per "riavvio", 
intendo l'intervallo di tempo che passa da quando si preme "riavvia" a quando il 
computer è pronto per essere utilizzato). Ultima nota riguardo questo, io non 
sto considerando &lt;STRONG&gt;le installazioni dei programmi e le 
formattazioni&lt;/STRONG&gt;          
            
  , che anche sono cose relativamente frequenti.&lt;/P&gt;
&lt;P&gt;Fate un pò di conti. Allora, chi è che &lt;STRONG&gt;davvero&lt;/STRONG&gt; ferma la 
produttività e gli cascano le ruote?&lt;/P&gt;
&lt;P&gt;Quindi &lt;STRONG&gt;per piacere&lt;/STRONG&gt;, non diciamo cose "a caso" solo perché 
non abbiamo il tempo di riflettere.&lt;BR&gt;Questo(è ovvio) vale anche per me, perché 
anche io alle volte sono ehm... sanguigno &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Vediamo... penso di aver detto tutto... uhm... ah, no! 
&lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Quando però si dice che&amp;nbsp;l'open source non è un modello di business 
conveniente, sono solo parzialmente d'accordo. Qualora si abbiano dei capitali 
ed una certa struttura dietro, può essere un modello altrettanto valido. Ovvio, 
poi, che se si è da soli, le cose cambiano. Cambiano perché è chiaro che il 
singolo non può competere con una "struttura" anche piccola. Come esempi, però, 
non vi porterò nè IBM nè SUN, ma... &lt;A title="" href="http://www.teammosaico.biz/it/index.htm" target="" name=""&gt;MOSAICO&lt;/A&gt; 
&lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;.&lt;BR&gt;Si tratta di una piccola società(rispetto ai 
mastodonti) che ha un prodotto OpenSource(beh... quasi... io non lo considero 
OpenSource visto che fa uso di componenti commerciali per il reporting e manco 
economici) comunque con sorgente liberamente scaricabile. E "funziona", nel 
senso che sono diversi anni che hanno fatto questa scelta e sono ancora in 
attività, forse poi non gli va male - no?&lt;/P&gt;
&lt;P&gt;Ah, qualche tempo fa, qualche giorno, ho ricevuto un commento ad un mio post 
dove si dice che io ce l'avrei con Microsoft. Questo non è vero, nel senso che 
io non ce l'ho con Bill Gates in quanto tale, piuttosto non mi piacciono i 
monopoli e Microsoft lo è, nei fatti, anche se io sono "nato" come sviluppatore 
in ambienti MS ed ho scoperto Linux troppo tardi(fino al 1995 non ho avuto 
internet).&lt;/P&gt;
&lt;P&gt;Sempre Marco(eh... oggi ci sei capitato te... &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;) dice di non capire la "conoscenza libera"... vuoi un 
esempio? UGI è &lt;STRONG&gt;conoscenza libera&lt;/STRONG&gt;, non protetta da copyrights, a 
codice &lt;STRONG&gt;aperto&lt;/STRONG&gt;. Non avrebbe senso questo spazio se qualcuno 
postasse dicendo "HEY! Ho trovato la soluzione al problema $X, però per vedere 
come ho risolto devi spedirmi a casa 1000 euro che mica te lo dò 
gratis!"&lt;BR&gt;Adesso è più chiaro?&lt;/P&gt;
&lt;P&gt;Ancora, c'è una frase che mi è piaciuta particolarmente ed è questa:"&lt;!--StartFragment --&gt; Prima di fidarmi do sempre un occhio al codice 
per&amp;nbsp;capire&amp;nbsp;se lo leggo facilmente ed è fatto con 
criterio&amp;nbsp;;-p&amp;nbsp;". Ecco, qui sta una delle chiavi di lettura dell'Open 
Source: &lt;STRONG&gt;puoi vedere il codice che usi&lt;/STRONG&gt; e decidere se fa per te 
oppure no,&lt;BR&gt;correggerlo se non funziona ed usarlo modificato. Senza che 
nessuno venga a dirti &lt;STRONG&gt;&lt;EM&gt;assolutamente nulla!&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Sarei davvero curioso di conoscere qualcuno che è riuscito a correggere 
qualche API di Windows, oppure a realizzare una patch per il medesimo, a parte 
MS(unica depositaria dei codici sorgenti).&lt;/P&gt;
&lt;P&gt;Ho scritto questo articolo perché penso che quel post abbia parecchi spunti 
di riflessione, mi piacerebbe avere vostri commenti al riguardo.&lt;/P&gt;
&lt;P&gt;Buona notte,&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;P&gt;P.S. Più tardi disinstallo IMHO 1.2 ed installo la 1.3 .&lt;BR&gt;P.P.S. Sto 
preparando un articolo introduttivo a Delphi.NET e Windows Forms, poi ne farò 
uno su Delphi.NET e VCL.NET .&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/28908.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/29/28908.aspx</guid>
            <pubDate>Sat, 29 Oct 2005 02:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/29/28908.aspx#feedback</comments>
            <slash:comments>315</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/28908.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/28908.aspx</trackback:ping>
        </item>
        <item>
            <title>Gestire le eccezioni</title>
            <category>Programmazione generale</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/12/27962.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Le eccezioni vanno &lt;STRONG&gt;sempre&lt;/STRONG&gt; gestite? 
Secondo me, non sempre. Il perché è presto detto:&lt;/P&gt;
&lt;OL&gt;
  &lt;LI&gt;Perché non tutti i progetti sono uguali: un progetto che deve essere usato 
  da un programmatore, per esempio, potrebbe non gestire alcune eccezioni, o 
  semplicemente mostrare un messaggio di avvenuta eccezione&lt;/LI&gt;
  &lt;LI&gt;Perché finché si è in fase di sviluppo o test, si potrebbero non 
  considerare casi "specifici" oppure non accorgersi di certi errori finché non 
  è troppo tardi(penso ad esempio&amp;nbsp;ai casi non troppo comuni ma nemmeno da 
  probabilità 1 su 1 miliardo &lt;IMG height=19   src="http://www.imhoproject.org/files/allegro.gif"   width=19 align=absMiddle border=0&gt;)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Cosa fare però nel codice di gestione, quando abbiamo deciso che un pezzo di 
codice va "protetto"? Ecco, anche qui, le mie idee "variano" rispetto alla 
media, penso. Lo dico perché io credo fermamente nel fatto che se capita 
un'eccezione in un blocco di codice, nel codice di gestione ne vada sollevata 
un'altra. Di proposito. Si, capito bene &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;. Di proposito, sollevare una nuova eccezione.&lt;/P&gt;
&lt;P&gt;Immagino le facce, quindi vedo di spiegarmi: supponiamo che la nostra 
applicazione si connetta ad un database(si, lo so, l'esempio è originalissimo 
&lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;). Qualora succeda "qualcosa" che genera 
un'eccezione(server spento, ad esempio), cosa dovrebbe vedere l'utente? Secondo 
me dovrebbe vedere che l'applicazione $MI_CONNETTO_AL_DATABASE non riesce a 
collegarsi al DB, ma questo non vuol dire che debba sapere che la connessione è 
fallita. Quindi si gestisce l'eccezione della connessione, per poi sollevarne 
una "personalizzata" che verrà gestita - a sua volta - e mostrerà qualcosa 
all'utente finale.&lt;/P&gt;
&lt;P&gt;So che può sembrare un modo strano di programmare, ma ha un suo scopo, 
specialmente se questo discorso lo si vede in termini di WebServices. In questo 
contesto specifico, secondo me, le eccezioni personalizzate sono &lt;STRONG&gt;ancora 
più importanti&lt;/STRONG&gt; rispetto al resto delle applicazioni, cui comunque 
questo tipo di programmazione si può applicare.&lt;/P&gt;
&lt;P&gt;Ultima cosa, a questo riguardo: le eccezioni personalizzate possono, 
ovviamente, anche portare &lt;STRONG&gt;ulteriori dati&lt;/STRONG&gt; personalizzati, 
elaborati&amp;nbsp;al momento della gestione delle eccezioni,&amp;nbsp;rendendo dunque 
possibile anche prendere "contromisure" oppure informare l'utente in modo più 
corretto ed esaustivo.&lt;/P&gt;
&lt;P&gt;Ultimissima cosa, giurin giurello, poi chiudo &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;: potrebbe essere interessante sviluppare(se non c'è 
già negli Application Blocks di MS, ma anche se c'è... &lt;IMG height=19 src="http://www.imhoproject.org/files/complice.gif" width=19 align=absMiddle border=0&gt;) un framework&amp;nbsp;opensorcio per la 
&lt;STRONG&gt;visualizzazione&lt;/STRONG&gt; delle eccezioni... qualche interessato? &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Mi piacerebbe molto sapere cosa ne pensate voi sia delle eccezioni che del 
progetto.&lt;/P&gt;
&lt;P&gt;Ciao,&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/27962.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/12/27962.aspx</guid>
            <pubDate>Wed, 12 Oct 2005 18:57:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/10/12/27962.aspx#feedback</comments>
            <slash:comments>2451</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/27962.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/27962.aspx</trackback:ping>
        </item>
        <item>
            <title>Alice non &amp;#232; pi&amp;#249; nel paese delle meraviglie...</title>
            <category>Altro</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/07/21/24008.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Igor Damiani non è l'unico rimasto scottato da Tin.IT 
.&lt;BR&gt;Abbiamo avuto, in famiglia, un abbonamento Alice per diversi anni ormai ed 
il 15 Luglio ha smesso di funzionare, ricominciando oggi da poco tempo.&lt;/P&gt;
&lt;P&gt;Inutile dire che le 48 ore sono passate e superate da un bel pezzo, eppure 
nessuno viene a telefonare per chiedere scusa del disagio.&lt;/P&gt;
&lt;P&gt;Vabbeh... che dire... non ci sono parole.&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/24008.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/07/21/24008.aspx</guid>
            <pubDate>Thu, 21 Jul 2005 18:44:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/07/21/24008.aspx#feedback</comments>
            <slash:comments>382</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/24008.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/24008.aspx</trackback:ping>
        </item>
        <item>
            <title>Quello che non ti aspetti... da chi non ti aspetti... &amp;quot;dotNET strategy is at a standstill&amp;quot;, confessed Ballmer</title>
            <category>Altro</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/29/21916.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;&lt;A href="http://www.zdnet.com.au/news/software/0,2000061733,39199269,00.htm"&gt;http://www.zdnet.com.au/news/software/0,2000061733,39199269,00.htm&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Commenti?&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/21916.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/29/21916.aspx</guid>
            <pubDate>Wed, 29 Jun 2005 18:54:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/29/21916.aspx#feedback</comments>
            <slash:comments>392</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/21916.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/21916.aspx</trackback:ping>
        </item>
        <item>
            <title>Programmazione difensiva(2)</title>
            <category>Programmazione generale</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/06/17985.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Un'altra tecnica molto comoda quando si parla di 
"defensive programming" è la cosiddetta "programmazione funzionale".&lt;/P&gt;
&lt;P&gt;Vediamo lo stesso programma di prima, però adattato a questa nuova 
tecnica.&lt;/P&gt;
&lt;P&gt;&lt;!--StartFragment --&gt;Program Programma;&lt;/P&gt;
&lt;P&gt;const ErrEmptyStrValue = 1;&lt;/P&gt;
&lt;P&gt;function&amp;nbsp;ReadString(Label : String;var S : String;var ErrOut: Integer) : 
Boolean;&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp; write(Label+': ');&lt;BR&gt;&amp;nbsp; readln(S);&lt;BR&gt;&amp;nbsp; 
Result := S &amp;lt;&amp;gt; '';&lt;BR&gt;&amp;nbsp; if Not Result 
then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrOut := 
ErrEmptyStrValue;&lt;BR&gt;end;&lt;BR&gt;&lt;BR&gt;function&amp;nbsp;GetFirstName(var S: String;var 
ErrOut : Integer);&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp; Result := ReadString('First 
name',S,ErrOut);&lt;BR&gt;end;&lt;BR&gt;&lt;BR&gt;procedure GetLastName(var S : String;var ErrOut: 
Integer);&lt;BR&gt;begin&lt;BR&gt;&amp;nbsp; Result := ReadString('Last 
name',S,ErrOut);&lt;BR&gt;end;&lt;BR&gt;&lt;BR&gt;var FName,LName : 
String;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ErrorOut : Integer;&lt;/P&gt;
&lt;P&gt;begin&lt;BR&gt;&amp;nbsp; if GetFirstName(FName,ErrorOut) then&lt;BR&gt;&amp;nbsp; 
begin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if GetLastName(LName,ErrorOut) 
then&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; begin&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; 
write('First name is '''+FName+' '' and Last name is 
'''+LName+'''');&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;BR&gt;&amp;nbsp; 
end;&lt;BR&gt;end.&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Qui adesso abbiamo un programma che controlla che ogni funzione sia "true" 
prima di proseguire.&lt;BR&gt;Inoltre, dotando le funzioni di un parametro ErrOut, 
possiamo usare un tipo Boolean e relegare la&lt;BR&gt;gestione dell'errore in altri 
punti. Nel caso specifico, non gestiamo l'errore nel corpo principale 
&lt;BR&gt;soltanto perché si tratta di un programma dimostrativo e perché ad ogni modo 
in un programma di&lt;BR&gt;questa complessità usare la programmazione funzionale è - 
imho - fuori luogo, oltre che &lt;BR&gt;tremendamente noioso &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Comunque il concetto di base&amp;nbsp;è semplice: valori TRUE o FALSE a seconda 
dei casi, più una&lt;BR&gt;variabile di supporto per la gestione corretta degli errori 
in altri punti. Oggi useremmo probabilmente una&lt;BR&gt;eccezione per cose del 
genere, ma il concetto non cambia poi molto.&lt;/P&gt;
&lt;P&gt;Il vantaggio principale di questo stile di programmazione è che sai *sempre* 
dove stai se qualcosa non và, il che non fà male di sicuro &lt;IMG height=19 src="http://www.imhoproject.org/files/allegro.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Saluti,&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/17985.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/06/17985.aspx</guid>
            <pubDate>Mon, 06 Jun 2005 18:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/06/17985.aspx#feedback</comments>
            <slash:comments>2304</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/17985.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/17985.aspx</trackback:ping>
        </item>
        <item>
            <title>dotNET sotto un altro punto di vista</title>
            <category>Altro</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/05/17910.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Si parla tanto, tantissimo di dotNET e di come sia una 
gran bella tecnologia. Bene, penso sia arrivato il momento di guardarla 
&lt;STRONG&gt;anche&lt;/STRONG&gt; da altri punti di vista. Il mio è quello di uno che, di 
base, è abbastanza informato anche se non si è ancora addentrato in tutti i 
meandri di dotNET. Spero non ci siano informazioni sbagliate, quindi dico quello 
che so sperando che sia giusto &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Cominciamo dal fatto che dotNET esiste anche per altre piattaforme, più 
precisamente Mono, che è standard e tutte 'ste robe qui.&lt;/P&gt;
&lt;P&gt;Non so se qualcuno ci ha fatto caso, ma MS cerca a tutti i costi di uscire 
con dotNET2 mentre i ragazzi di Mono stanno ancora cercando di arrivare a finire 
la corrispondenza alla 1.1 di dotNET. Questo la dice lunga su quanto sia 
"completo" il port e quanto MS sia disponibile a che dotNET sia 
multipiattaforma. Qualcuno potrebbe quindi chiedersi il perché della decisione 
di Microsoft di standardizzare C# ed il CLR.&lt;BR&gt;La mia opinione è che sia stata 
una mossa geniale, oltre che un grandioso specchietto per le allodole: una 
standardizzazione non significa necessariamente dover seguire lo standard e 
Microsoft ha dimostrato più volte di essere allergica agli standard, perfino i 
suoi medesimi(vedi pasticcio con le typelibraries di Office, tanto per citare 
l'esempio più conosciuto, oppure perfino le incompatibilità di dotNET 1.1 SP1). 
Inoltre, Visual Studio ha la fetta più grossa di mercato su dotNET, questo è 
indubbio, quindi la stragrande maggioranza di coloro che vorranno usare dotNET 
lo faranno con VS.&lt;BR&gt;Perché il designer WinForms è stato incluso nel framework? 
Semplice, perché non è su quello che si basano i proventi di Visual Studio, ma 
sulla vendita del prodotto in se e sui servizi accessori. Ancora una volta, un 
modo per Microsoft di attrarre persone e dare una parvenza di non 
monopolio(rendendo ad esempio possibile la realizzazione di &lt;A title="" href="http://www.icsharpcode.com/" target="" name=""&gt;SharpDevelop&lt;/A&gt;). Dunque, 
qui&amp;nbsp;mi pare adesso sia chiaro, no?&lt;/P&gt;
&lt;P&gt;Passiamo ad un altro punto fondamentale: Microsoft dice che dotNET risolverà 
il problema dell'inferno delle DLL(altrimenti noto come DLL Hell). In cosa 
consiste questo ecc. Il risultato era un malfunzionamento generalizzato delle 
applicazioni coinvolte.problema? Nel fatto che un certo(alto, molto alto) numero 
di sviluppatori non ha fatto "le cose perbene"(cit) e quindi alcune DLL andavano 
a sovrascriverne altre, senza alcuna accortezza per i numeri di versione, 
generando malfunzionamenti di ogni sorta e specie.&lt;BR&gt;Dunque, lo strumento 
"principe" per la risoluzione di questo problema in dotNET è l'uso dello strong 
naming. Come funziona? Semplicemente, si "firma" un assembly con un certificato 
che attesta che l'assembly ha la versione X.Y e che quindi tutte le applicazioni 
che fanno riferimento a &lt;STRONG&gt;quella versione di quell'assembly&lt;/STRONG&gt; sanno 
che è lui. Parte fondamentale di questo processo è la Global Assembly Cache, GAC 
per gli amici, che appunto conserva gli assembly più utilizzati. Cosa succede, 
però? Nonostante &lt;STRONG&gt;sia&lt;/STRONG&gt; possibile registrare degli assembly nella 
GAC, Microsoft sconsiglia questa pratica&amp;nbsp;a quanto ho capito.&lt;BR&gt;Ergo, 
strong naming ti saluto. Inoltre, so che non ce n'è bisogno ma lo dico lo 
stesso, è normale che se non vengono rispettate le regole di base di "civile 
convivenza" tra gli assembly e compagnia, qualcosa di molto, molto, molto brutto 
dovrà succedere prima o poi, vi pare?&lt;/P&gt;
&lt;P&gt;Adesso invece, occupiamoci della "portabilità": qui il discorso deve prendere 
una&amp;nbsp;ramificazione dicotomica. Il problema è che bisogna distinugere tra 
lato server e lato client. Non solo, ma anche tra diverse versioni del 
Framework, perché ormai ci avviamo alla 2.0 ed il numero sta crescendo in modo 
preoccupante. Il perché di questa mia preoccupazione lo vediamo dopo. 
Occupiamoci intanto del fattore portabilità sul lato client. Voi mettereste il 
motore di una macchina moderna dentro ad una vecchia 500? Non penso proprio. 
Però è, in poche parole, quello che vorrebbero fare con dotNET ed i varii 
Windows(9x,ME, ecc). Capite bene che non solo mi sembra un'idea abbastanza 
peregrina di concetto(ed infatti nessuno osa ammetterlo pubblicamente), ma 
anche,&amp;nbsp;a mio parere, praticamente irrealizzabile, vista la frequenza dei 
crash di Windows 98, tanto per dirne uno.&amp;nbsp;Non mi si venga per favore a dire 
che non ce ne sono più, perché non è semplicemente vero. Una mia cara amica ha 
Windows ME. Un altro amico ha 98. Ce ne sono molti di più di quanti molti di noi 
spererebbero, mi sa, e non soltanto in ambito aziendale.&lt;/P&gt;
&lt;P&gt;Ho voluto affrontare il tema della portabilità in maniera dicotomica perché 
la questione della "compatibilità" delle varie versioni del framework tra loro è 
un fattore importante. Molto importante. Stando a &lt;A title="" href="http://www.eweek.com/article2/0,1759,1820225,00.asp" target="" name=""&gt;questo articolo&lt;/A&gt;, le cose non sono rosee per dotNET2, per i motivi 
riportati. "Certo, comunque in caso di problemi si può sempre usare il framework 
1.1 side-by-side", viene detto. Sicuro, aggiungo io, tanto non abbiamo mica 
altri programmi da far girare sul sistema no - oltre alle applicazioni dotNET. 
Facendo un rapido conto e mantenendosi su una media di 20MB a framework e 
considerando il caso peggiore(1.0, 1.1 SP1 e 2.0), &lt;STRONG&gt;&lt;EM&gt;soltanto 
di&amp;nbsp;base ci portiamo dietro la bellezza di 60 MB.&lt;/EM&gt;&lt;/STRONG&gt; 
Naturalmente, non è finita qui, perché oltre al CLR dobbiamo anche portarci i 
vari assembly che, vale la pena ricordarlo, sono DLL. Già, sono DLL, però non 
condividono lo spazio di memoria. Quindi per ogni applicazione avremo un 
caricamento di &lt;STRONG&gt;tutte&lt;/STRONG&gt; le DLL. Tanti auguri. &lt;/P&gt;
&lt;P&gt;Altro da aggiungere? Direi di si... spesso si dice che esiste NGEN, un tool 
capace di preconvertire il codice IL in codice nativo... già... ne vogliamo 
parlare? &lt;A title="" href="http://blogs.msdn.com/davidnotario/archive/2005/04/27/412838.aspx" target="" name=""&gt;Questo articolo&lt;/A&gt;, fà chiaramente intendere come stanno 
&lt;STRONG&gt;veramente&lt;/STRONG&gt; le cose, al di là della propaganda e non sono cose da 
poco. Il perché è presto detto: nell'articolo si dice(testualmente):"&lt;!--StartFragment --&gt; &lt;FONT size=2&gt;The downside, of course, 
is that whenever the runtime (for example via a Service Pack) or one of the 
dependencies of your ngen images changes (version upgrade or patch), your ngen 
image becomes invalid". Capito? Quindi, non solo valgono soltanto per il 
computer per il quale vengono generate, ma anche soltanto fino al prossimo 
update di una qualsiasi cosa che in qualche modo modifichi lo stato del sistema 
inerentemente all'immagine considerata. Credo che sia abbastanza ovvio che sia 
così, perché è chiaro che se cambia qualcosa magari cambiano gli indirizzi e 
così via, però fà anche capire che il trade-off nella maggior parte dei casi, 
almeno dal mio punto di vista, non è accettabile.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Bene, per ora mi fermo qui, anche se avrei molte altre cose da dire... però 
prima preferisco aspettare i commenti &lt;IMG height=19 src="http://www.imhoproject.org/files/risate.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Buona Domenica,&lt;/P&gt;
&lt;P&gt;Andrea&lt;/P&gt;
&lt;P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/17910.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/05/17910.aspx</guid>
            <pubDate>Sun, 05 Jun 2005 20:23:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/05/17910.aspx#feedback</comments>
            <slash:comments>612</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/17910.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/17910.aspx</trackback:ping>
        </item>
        <item>
            <title>Anche io uso IMHO :-)</title>
            <category>Altro</category>
            <link>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/04/17875.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Ottimo, pare che finalmente non dovrò più smadonnare 
&lt;IMG height=19 src="http://www.imhoproject.org/files/occhiolino.gif" width=19 align=absMiddle border=0&gt;.&lt;/P&gt;
&lt;P&gt;Questo è soltanto "buono", come dire... grassie Boschin!&lt;/P&gt;
&lt;P&gt;Qualcuno può dirmi in che linguaggio è scritto IMHO? Non 
fatemi scaricare i sorgenti, su... &lt;IMG height=19 src="http://www.imhoproject.org/files/complice.gif" width=19 align=absMiddle border=0&gt;&lt;/P&gt;
&lt;P&gt;Buona giornata&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;
&lt;img src="http://blogs.ugidotnet.org/PensieriMalcelati/aggbug/17875.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Raimondi</dc:creator>
            <guid>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/04/17875.aspx</guid>
            <pubDate>Sat, 04 Jun 2005 14:53:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/PensieriMalcelati/archive/2005/06/04/17875.aspx#feedback</comments>
            <slash:comments>502</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/PensieriMalcelati/comments/commentRss/17875.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/PensieriMalcelati/services/trackbacks/17875.aspx</trackback:ping>
        </item>
    </channel>
</rss>