SoftwarT http://blogs.ugidotnet.org/ArtOfProgramming/Default.aspx Perché fare Software è Arte... it-IT Fabio GRANDE Subtext Version 2.6.0.0 SoftwarT http://blogs.ugidotnet.org/images/RSS2Image.gif http://blogs.ugidotnet.org/ArtOfProgramming/Default.aspx 77 60 [OT] Scandaloso... Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2010/01/15/scandaloso.aspx <p>Una "genialata" del nostro governo. Personalmente sono schifato....</p> <p><a href="http://www.ilsole24ore.com/art/SoleOnLine4/Tecnologia%20e%20Business/2010/01/diritto-copia-privata.shtml?uuid=013650f2-01bc-11df-9054-66bb1a6c98d4&amp;DocRulesView=Libero">http://www.ilsole24ore.com/art/SoleOnLine4/Tecnologia%20e%20Business/2010/01/diritto-copia-privata.shtml?uuid=013650f2-01bc-11df-9054-66bb1a6c98d4&amp;DocRulesView=Libero</a></p> <p class="MsoPlainText"><a href="http://www.lastampa.it/_web/cmstp/tmplrubriche/tecnologia/grubrica.asp?ID_blog=30&amp;ID_articolo=7141&amp;ID_sezione=38&amp;sezione=News">http://www.lastampa.it/_web/cmstp/tmplrubriche/tecnologia/grubrica.asp?ID_blog=30&amp;ID_articolo=7141&amp;ID_sezione=38&amp;sezione=News</a></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/97868.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2010/01/15/scandaloso.aspx Fri, 15 Jan 2010 23:27:16 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2010/01/15/scandaloso.aspx#feedback 21 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/97868.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/97868.aspx Un poco di fortuna.... Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2009/05/20/un-po-di-fortuna.aspx <p><font size="2">Per la prima volta in vita ho vinto qualcosa di "consistente" (non le solite ciafroccole da 4 soldi che, in realtà, sono poco più che gadgets e vengono distribuite a destra e manca...).</font></p> <p><font size="2">Grazie al sito <font face="Arial"><a href="http://www.windowsmobiletraining.com">www.windowsmobiletraining.com</a> ho potuto approfondire alcuni aspetti di Windows Mobile, ho ottenuto una simpatica certificazione (non penso che mi servirà a progredire nel mondo del lavoro, ma è comunque sempre una soddisfazione il passare un test...) ed ho partecipato, quasi per gioco - ovvero senza speranze, al consorso che metteva in palio, a scelta, uno dei seguenti SmartPhones :</font></font></p> <ul> <li><font size="2">HTC Touch Pro </font></li> <li><font size="2">Samsung i900 Omnia </font></li> <li><font size="2">Sony Ericsson XPeria X1 </font></li> </ul> <p><font size="2">Ebbene, questa mattina è arrivata la comunicazione... Sono ufficialmente un vincitore !!!! Chi l'avrebbe mai detto ? </font></p> <p><font size="2">Per la cronaca, ancorché interessi a qualcuno, ho optato per la prima scelta, l'HTC Touch Pro....</font></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/96246.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2009/05/20/un-po-di-fortuna.aspx Wed, 20 May 2009 14:00:18 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2009/05/20/un-po-di-fortuna.aspx#feedback 8 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/96246.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/96246.aspx Estendere Internet Explorer .Net Framework http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/07/18/estendere-internet-explorer.aspx <p>So che è più un post da Forum, piuttosto che da Blog ma... sto impazzendo !!!!!</p> <p>Vorrei sviluppare un Add-On in C# per Internet Explorer, ma non so come fare. Per la verità non so neanche se è possibile farlo in C# (so per certo che è possibile con C++).</p> <p>Qualcuno di Voi ne sa qualcosa ?</p> <p>Grazie a tutti per l'attenzione.....</p> <p>FabioG</p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/93451.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/07/18/estendere-internet-explorer.aspx Fri, 18 Jul 2008 15:14:44 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/07/18/estendere-internet-explorer.aspx#feedback 7 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/93451.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/93451.aspx Il Programmatore Ideale Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/09/il-programmatore-ideale.aspx <div style="MARGIN: 0cm 0cm 10pt">C’è una cosa che mi frulla in testa da tanto tempo, ed è tracciare la definizione del “Programmatore Ideale”, quello che tutti vorrebbero come collega e/o come dipendente.</div> <div style="MARGIN: 0cm 0cm 10pt">In questi giorni (mesi) anche noi, come tante altre Aziende, stiamo cercando di stilare una lista di caratteristiche che possano definire questa figura, purtroppo, secondo il mio modesto parere, con scarso successo.</div> <div style="MARGIN: 0cm 0cm 10pt">Personalmente amo definirmi un “Geek Zoppo”, poiché nutro una passione sfrenata per la tecnologia (in particolare per il software) con poco (pochissimo) tempo (una moglie, un figlio di 9 mesi ed un lavoro particolarmente impegnativo ne assorbono a dismisura...) per studiarla.</div> <div style="MARGIN: 0cm 0cm 10pt">Non mi sono mai posto limiti e il desiderio di imparare e sperimentare cose nuove mi ha sempre spinto a cercare e studiare alle ore più impensabili del giorno e della notte. Forse è questo l’aspetto che più mi differenzia dai miei colleghi. E forse è proprio per questo che ci siamo trovati in così forte disaccordo nella realizzazione di queste schede.</div> <div style="MARGIN: 0cm 0cm 10pt">In pratica si tratta di redarre una scheda suddivisa in sezioni. All’interno di ogni sezione compaiono “n” voci, per ognuna delle quali devono essere assegnati due punteggi (in una scala da 0 a 9) :</div> <div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"><span>·<span style="FONT: 7pt 'Times New Roman'">         </span></span>Livello Richiesto</div> <div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"><span>·<span style="FONT: 7pt 'Times New Roman'">         </span></span>Livello Posseduto</div> <div style="MARGIN: 0cm 0cm 10pt">Il punteggio “richiesto” è il livello di confidenza che l’Azienda vorrebbe che i dipendenti avessero della voce in oggetto. Il punteggio “posseduto” è ciò che l’individuo possiede effettivamente. Qui bisognerebbe aprire una parentesi sulla valutazione poiché, mi chiedo, chi sarà mai in grado di valutarmi sulle tecnologie che conosco solo io in Azienda ? (Un esempio triste ? XML e XSLT : l’abbiamo usato abbondantemente per un paio di applicazioni, ma io sono l’unico – giuro – che lo conosce...).</div> <div style="MARGIN: 0cm 0cm 10pt">Questa non deve essere vista come una pura e semplice valutazione del singol, piuttosto deve essere considerata come un’indagine aziendale, attraverso la quale si può arrivare all’ottimizzazione delle risorse, tramite cambiamenti di mansione e/o corsi di formazione (anche se, onestamente, non credo che l’Azienda presso cui lavoro punterà a tanto...).</div> <div style="MARGIN: 0cm 0cm 10pt">Il nocciolo della questione, ovvero il seme della discordia, è : quali voci inserire nella sezione “Conoscenze Specialistiche” ?</div> <div style="MARGIN: 0cm 0cm 10pt">Dal mio punto di vista, strettamente tecnico, ho pensato alle seguenti : </div> <div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"><span>1)<span style="FONT: 7pt 'Times New Roman'">      </span></span><strong>Propensione all’evoluzione tecnologica</strong> – Se dovessi trovare un sinonimo penserei a “quanto sei Geek in una scala da 0 a 9 ?”. Oggettivamente, non saprei che farmene di un ottimo programmatore fermo ai concetti del COBOL con nessuna propensione all’evoluzione (tecnologica) personale.</div> <div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"><span>2)<span style="FONT: 7pt 'Times New Roman'">      </span></span><strong>Linguaggi conosciuti</strong> – Ovviamente con dettaglio degli stessi (ad esclusione di quelli “morti” che tutti abbiamo usato in passato – p.e. BASIC). Non tanto per fare una gara adolescenziale “a chi ne conosce di più”, quanto piuttosto per sapere quali sono le effettive conoscenze che rappresentano il patrimonio dell’Azienda.</div> <div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"><span>3)<span style="FONT: 7pt 'Times New Roman'">      </span></span><strong>Conoscenza della Lingua Inglese </strong>– Sembra una banalità, ma Vi garantisco che non lo è...</div> <div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"><span>4)<span style="FONT: 7pt 'Times New Roman'">      </span></span><strong>Database conosciuti </strong>– A meno che non ci si voglia limitare a scrivere “Hello, World!” in tutti i linguaggi possibili ed immaginabili, la conoscenza, più o meno approfondita, di almeno un DB è importantissima. La mia esperienza diretta mia ha portato a conoscere sia Oracle che SQLServer, entrambi dal punto di vista delle interrogazioni SQL come da quello della programmazione “avanzata” (Triggers e Procedures in PL/SQL e/o TSQL). Non da meno è la conoscenza dei concetti che stanno alla base di un DB relazionale.</div> <div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"><span>5)<span style="FONT: 7pt 'Times New Roman'">      </span></span><strong>Sistemi Operativi </strong>– La conoscenza dei sistemi su cui girano i nostri applicativi non dovrebbe essere prerogativa della sola area sistemistica di un’Azienda. Il “sapersi muovere” agilmente (copia di files, creazione di directories, navigazione della rete, utilizzo di FTP/Telnet, etc...) dovrebbe essere una caratteristica comune a tutti. Invece, e questo è solo un esempio, il Registro Eventi (Event Viewer) di Windows, sembra essere un’applicazione sconosciuta, che un programma tore non ha bisogno di conoscere !!!!!!</div> <div style="MARGIN: 0cm 0cm 10pt">Queste sono alcune caratteristiche che, personalmente, cercherei in un programmatore. E’ forse pretendere troppo ? Secondo molti miei colleghi, si !</div> <div style="MARGIN: 0cm 0cm 10pt">Forse è una questione di carattere o forse, molto più banalmente, è una questione di passione. Chissà. Resta il fatto che questo confronto “interno” mi ha pietrificato (per carità, non è successo nulla che non sospettassi ampiamente, ma sono comunque rimasto basito).</div> <div style="MARGIN: 0cm 0cm 10pt">Concludendo, visto che il Blog è principalmente terra di confronto, ho ritenuto interessante condividere questi pensieri con la community. Magari, qualcuno di Voi è già stato sottoposto a questo genere di valutazione o se ne è interessato... Che dite ? Sono “allineato e coperto”, oppure hanno ragione i miei colleghi, che tendono a tracciare un profilo più basso ?</div><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/92972.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/09/il-programmatore-ideale.aspx Mon, 09 Jun 2008 09:56:02 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/09/il-programmatore-ideale.aspx#feedback 14 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/92972.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/92972.aspx Community Days 2008 Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/06/community-days-2008.aspx <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS"><font size="1">Grazie alla segnalazione di </font><a href="http://blogs.ugidotnet.org/Nick60/archive/2008/06/02/92881.aspx"><font size="1">Nicolò</font></a><font size="1"> mi sono “svegliato” e subito iscritto ai Community Days 2008.</font></font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Credo siano una buona occasione per seguire un po’ più da vicino l’evoluzione delle tecnologie che utilizziamo quitidianamente e, soprattutto, per incontrare, conoscere e confrontarsi con i professionisti di questo gruppo.</font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Ma (dannazione, c’è sempre un “ma”) c’è una cosa che mi lascia perplesso, ovvero la reazione dei miei boss (uno, in particolare).</font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Fermo restando il fatto che, questa volta, ho PRIMA effettuato la registrazione all’evento e POI ho chiesto l’autorizzazione a parteciparvi, mi sono sentito ripetere la stessa frase delle altre volte : “Ah, ma è proprio necessario ? Che benefici porta ? Io non ci vedo nessuna utilità.”. Visto e considerato che non è la prima volta che ricevo questa risposta, e che ancora una volta mi ha fatto ribollire il sangue nelle vene, ho (istantaneamente) deciso che se l’Azienda non mi passerà questi due giorni come “trasferta”, li farò passare io come “ferie”.</font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Tutto ciò, però, mi porta ad una riflessione : funziona così in tutte le softwarehouse ? Anche Voi avete dei “capetti” così miopi da non saper vedere al di là del proprio naso ? La formazione (o l’”evoluzione tecnologica”) sono viste come perdite di tempo ? </font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Devo comunque spezzare una lancia in favore dell’Azienda per cui lavoro, poiché solo i 3/50 dei dipendenti lavorano su tecnologie degne di questo nome. Ebbene si, siamo ben in 3 a lavorare in ambiente .Net, mentre il resto dell’Azienda è impegnato a svilupparne (e mantenerne) il core business con l’ausilio di un 4GL denimonato Uniface (noi 3, con grande gioia e gaudio, ce ne stiamo lentamente liberando). E quando il core business di un’Azienda si basa su un linguaggio che si adegua all’evoluzione tecnologica alla stessa velocità di un bradipo (anestetizzato), forse è abbastanza naturale che questi eventi vengano visti come fumo negli occhi.</font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Mi piacerebbe leggere qualche Vostra opinione in merito anche se, onestamente, mi piacerebbe ancora di più parlarne a quattr’occhi, magari proprio in occasione di queste giornate.</font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">E poi, chissà, si potrebbe sempre organizzare un aperitivo in quel di Torino....</font></div> <div style="MARGIN: 0cm 0cm 10pt"> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1"><strong>Update 6 Giugno 2008 - h 11:25</strong></font></div> <div style="MARGIN: 0cm 0cm 10pt"><font face="Comic Sans MS" size="1">Incredibile ! Abbiamo avuto l'autorizzazione "ufficiale" a partecipare all'evento... Beh, in realtà solo uno di noi (1 su 3 è comunque il 33% !!!!).... Quindi, che dire ? A presto !!!!!!</font></div> </div><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/92940.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/06/community-days-2008.aspx Fri, 06 Jun 2008 09:52:09 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/06/06/community-days-2008.aspx#feedback 18 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/92940.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/92940.aspx Training with Dino Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/04/03/training-with-dino.aspx <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Sveglia alle 5.30, partenza da Torino alla volta di Milano (accidenti all’A4), corso, uscita alle 17.30 – 18.00, rientro a casa alle 20.00, cambio del pannolino al pupo (grazie, Mara, per avermi aspettato !!!), cena, biberon al pupo, ninnananna al pupo (ma vuoi dormire ?!?!?!?!), smanettata al notebook per rivalutare la lezione del giorno.... e finalmente a dormire (ma tra 5 ore si ricomincia).... </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Questo è il sunto delle tre giornate di <a href="http://www.manageddesigns.it/news/detail.aspx?ID=c11a2a49-90f0-449a-bcdc-9949036ece53">corso</a> </font><font face="Calibri" size="3">Ajax/SilverLight tenuto da Dino Esposito nella sede Microsoft di Segrate. </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Sono felice che l’Azienda presso cui lavoro mi abbia permesso di parteciparVi. Li ho sempre abituati a “cavarmela da solo” (con l’ovvio aiuto di Google) ma, spesso, è necessario partecipare ad eventi del genere per ottenere ciò che i “freddi” link non possono dare. Il problema è trasmettere questo pensiero alle Aziende, che si limitano a vedere questi eventi come un “costo”. </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Tornando al corso, in prima battuta, è stato molto utile, soprattutto per l’esposizione dell’aspetto architetturale delle varie soluzioni, che ha (definitivamente) chiarito pregi, difetti, limiti delle tecnologie esaminate.</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Inoltre, mi ha permesso di conoscere una persona decisamente preparata (ed estremamente simpatica e brillante, che certo non guasta) quale è Dino. E’ stato davvero un piacere (ed un onore) incontrarlo di persona.</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Se la considerate “pubblicità gratuita”, sappiate che se la merita tutta.</font></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/92035.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/04/03/training-with-dino.aspx Thu, 03 Apr 2008 14:14:25 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/04/03/training-with-dino.aspx#feedback 2 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/92035.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/92035.aspx [VS2008] Automatic Properties .Net Framework http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-automatic-properties.aspx <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Le “Automatic Properties” sono un’altra innovazione introdotta in Visual Studio 2008 (ovvero nel Framework 3.5). Questa particolarità permette allo sviluppatore di risparmiare tempo nello scrivere codice ripetitivo e, per certi versi, inutile. </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Supponiamo di codificare la classe “Prova” dove, per esempio, mettiamo a disposizione la proprietà “Numero”. Questa proprietà non fa altro che assegnare/restituire il valore della sottostante variabile privata “_numero”. In Visual Studio 2008 (Framework 3.5) è possibile scrivere quanto segue : </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span><span style="COLOR: blue">class</span> <span style="COLOR: #2b91af">Prova<o:p></o:p></span></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span></span><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes">{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span><span style="COLOR: #2b91af">Int32</span> _numero;<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><o:p> </o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span><span style="COLOR: blue">public</span> <span style="COLOR: #2b91af">Int32</span> Numero { <span style="COLOR: blue">get</span>; <span style="COLOR: blue">set</span>; }<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><o:p> </o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span></span><span style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes">//.....<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><span style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span>}</span><strong style="mso-bidi-font-weight: normal"><o:p></o:p></strong></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Sarà compito del compilatore espandere questa dichiarazione, rendendola come siamo stati abituati a fare con le versioni precedenti del Framework : </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span><span style="COLOR: blue">public</span> <span style="COLOR: #2b91af">Int32</span> Numero<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span>{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">            </span><span style="COLOR: blue">get</span> { <span style="COLOR: blue">return</span> _numero; }<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">            </span></span><span style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes">set</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"> { _numero = <span style="COLOR: blue">value</span>; }<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span>}<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><o:p><font face="Calibri" size="3"> </font></o:p></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">La nuova modalità ci avvantaggia in quanto avremo la possibilità di avere codice sorgente più compatto (e leggibile) e potremo essere più veloci nello scrivere i nostri programmi (anche se, in questo caso, il tasto destro del mouse e la selezione di Refactor/Encapsulate Field aveva già dato molto).</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font size="3"><font face="Calibri">Anche in questo caso, un grazie a Dino Esposito che ci ha deliziato con quest’altra “chicca” nell’articolo già citato nel mio precedente post. Caspita Dino, ma è possibile che ogni volta che apri bocca (o tocchi penna) ci sia sempre qualcosa da imparare !?!?!?! </font><span style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</span></span></font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><o:p><font face="Calibri" size="3"> </font></o:p></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><o:p><font face="Calibri" size="3"> </font></o:p></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/91219.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-automatic-properties.aspx Sun, 17 Feb 2008 16:48:21 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-automatic-properties.aspx#feedback 5 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/91219.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/91219.aspx [VS2008] Extension Methods .Net Framework http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-extension-methods.aspx <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">Una delle novità di Visual Studio 2008 (ovvero del Framework 3.5) è l’esistenza di quelli che sono definiti “Extension Methods”. Attraverso tali metodi è possibile estendere una classe (anche quelle di base) senza doverla per forza derivare.</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">Il tutto si sviluppa intorno alla costruzione di una classe statica e di uno o più metodi statici, caratterizzati dall’utilizzo dell’operatore “this” tra i parametri.</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">Vediamo l’utilità di quanto appena descritto con un esempio :</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes">namespace</span><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"> ConsoleTest<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes">{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span><span style="COLOR: blue">public</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">class</span> <span style="COLOR: #2b91af">clsExtension<o:p></o:p></span></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span>{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span><span style="COLOR: blue">public</span> <span style="COLOR: blue">static</span> <span style="COLOR: blue">bool</span> IsInt32(<span style="COLOR: blue">this</span> <span style="COLOR: blue">string</span> pString)<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span>{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">            </span><span style="COLOR: #2b91af">Int32</span> tNumber;<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">            </span><span style="COLOR: blue">bool</span> tResult = <span style="COLOR: #2b91af">Int32</span>.TryParse(pString, <span style="COLOR: blue">out</span> tNumber);<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">            </span></span><span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes">return</span><span style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"> tResult;<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">        </span>}<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">    </span>}<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt 2cm; TEXT-ALIGN: justify"><span style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes">}<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">Questa è la classe statica che ci permette di estendere la classe base “String”, aggiungendole il metodo “IsInt32” che restituisce true o false a seconda che il contenuto della stringa sia, oppure no, un Int32.</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">L’utilizzo della sopraccitata classe è decisamente semplice : </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes">static</span><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"> <span style="COLOR: blue">void</span> Main(<span style="COLOR: blue">string</span>[] args)<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes">{<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">  </span>string</span><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"> tStr = <span style="COLOR: #a31515">"1234"</span>;<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">  </span><span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"{0} is number : {1}"</span>, tStr, tStr.IsInt32());<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">  </span>tStr = <span style="COLOR: #a31515">"abc"</span>;<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span lang="EN-US" style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-ansi-language: EN-US; mso-no-proof: yes"><span style="mso-spacerun: yes">  </span><span style="COLOR: #2b91af">Console</span>.WriteLine(<span style="COLOR: #a31515">"{0} is number : {1}"</span>, tStr, tStr.IsInt32());<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 2cm; LINE-HEIGHT: normal; TEXT-ALIGN: justify; mso-layout-grid-align: none"><span style="FONT-SIZE: 8pt; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes"><span style="mso-spacerun: yes">  </span><span style="COLOR: #2b91af">Console</span>.ReadKey();<o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt 2cm; TEXT-ALIGN: justify"><span style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%; FONT-FAMILY: &quot;Courier New&quot;; mso-no-proof: yes">}</span><span style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%"><o:p></o:p></span></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt; TEXT-ALIGN: justify"><font face="Calibri" size="3">In questo modo abbiamo aggiunto alla classe String la possibilità di restituire, senza troppi giri e/o ripetizioni, un valore boioleano che ci indichi se questa contiene un numero (Int32) valido oppure no. Ovviamente, questa è solo una delle innumerevoli possibilità, limitate solo dalla nostra fantasia e dalle nostre necessità... </font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><font face="Calibri" size="3">Questa è una delle “chicche” scritte da Dino Esposito in un interessante (ma purtroppo breve) articolo intitolato “Inside Visual Studio 2008”, pubblicato su Dr.Dobb’s Journal di Febbraio 2008. Che dire ? Ancora una volta, Grazie Dino !!!!!!</font></p> <p class="MsoNormal" style="MARGIN: 0cm 0cm 10pt"><o:p><font face="Calibri" size="3"> </font></o:p></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/91218.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-extension-methods.aspx Sun, 17 Feb 2008 16:28:16 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/02/17/vs2008-extension-methods.aspx#feedback 2 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/91218.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/91218.aspx [OT] www.zopa.it Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/01/23/ot-www.zopa.it.aspx <p><font face="Comic Sans MS" size="2">Vi segnalo questa news (che non è più tanto "news", in quanto già "vecchia" di almeno un paio di mesi) che mi ha molto colpito, poiché è l'ennesimo sintomo di una società che sta cambiando.</font></p> <p><font face="Comic Sans MS" size="2">Zopa è l'acronimo di ZOna di Possibile Accordo ed è un sistema che, a quanto pare, ha riscosso molto successo in UK e negli USA. In poche parole si tratta di un intermediatore "virtuale" che permette a dei "Prestatori" di prestare il loro denaro a dei "Richiedenti".  Siamo al limite del "Prestito Solidale", poiché i Richiedenti possono ottenere denaro a tassi decisamente più bassi di quelli offerti dalle banche (che, se questa cosa prende piede, sono le uniche a risentirne...)</font></p> <p><font face="Comic Sans MS" size="2">Sono curioso di vedere come si evolverà la cosa.... Quando nacque eBay, devo ammettere di essere stato molto scettico : ciò che mi lasciava perplesso non era tanto la sicurezza del canale utilizzato per il pagamento della transazione, quanto il fatto di dover pagare la merce in anticipo, magari ad un venditore estero...</font></p> <p><font face="Comic Sans MS" size="2">E ciò che mi lascia perplesso di Zopa, è il fatto che un Nickname presti denaro ad un altro Nickname... va a finire che qualcuno finirà col finanziare un kamikaze che ci farà cadere il governo (eh eh eh...)</font></p> <p><font face="Comic Sans MS" size="2">Bah, comunque sia, auguro a tutti Voi di non aver mai bisogno di prestiti.</font></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/90823.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/01/23/ot-www.zopa.it.aspx Wed, 23 Jan 2008 14:07:40 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2008/01/23/ot-www.zopa.it.aspx#feedback 7 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/90823.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/90823.aspx 70-536 Generale http://blogs.ugidotnet.org/ArtOfProgramming/archive/2007/12/27/70-536.aspx <p><font face="Comic Sans MS" size="3">Basta, ho deciso.</font></p> <p><font face="Comic Sans MS" size="3">Il Natale ha portato consiglio, e sto per dare il via al primo "Buon Proposito 2008".</font></p> <p><font face="Comic Sans MS" size="3">Inizio a studiare per il 70-536 (acc..., sono già "fuori corso" prima di iniziare...).</font></p> <p><font face="Comic Sans MS" size="3">As usual, se avete consigli o commenti, io sono qui.</font></p> <p><font face="Comic Sans MS" size="3">Buone Feste a tutti !</font></p><img src="http://blogs.ugidotnet.org/ArtOfProgramming/aggbug/90457.aspx" width="1" height="1" /> Fabio GRANDE http://blogs.ugidotnet.org/ArtOfProgramming/archive/2007/12/27/70-536.aspx Thu, 27 Dec 2007 14:32:13 GMT http://blogs.ugidotnet.org/ArtOfProgramming/archive/2007/12/27/70-536.aspx#feedback 10 http://blogs.ugidotnet.org/ArtOfProgramming/comments/commentRss/90457.aspx http://blogs.ugidotnet.org/ArtOfProgramming/services/trackbacks/90457.aspx