<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>Articoli Tecnici </title>
        <link>http://blogs.ugidotnet.org/rosalba/category/2086.aspx</link>
        <description>Articoli Tecnici </description>
        <language>it-IT</language>
        <copyright>Rosalba Fiore</copyright>
        <managingEditor>rosalbany@tiscali.it</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>Semplice è bello :) Ref Out ? </title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2008/05/24/92793.aspx</link>
            <description>&lt;p&gt;&lt;font face="Arial"&gt;Quando affrontai per la prima volta come studentessa autodidatta il passaggio di tipi per riferimento mediante out e ref  li trovai impegnativi, sinceramente visto che non li capivo  mi demoralizzai un pò, solo all'inizio però &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/wink_smile.gif" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Oggi mi è capitato di leggere direttamente da MSDN  &lt;a href="http://msdn.microsoft.com/it-it/library/ms182131(VS.80).aspx"&gt;&lt;strong&gt;Evitare parametri out&lt;/strong&gt;&lt;/a&gt; di seguito riporto fedelmete alcuni passaggi:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;"Il passaggio di tipi per riferimento (mediante out o ref) richiede esperienza con i puntatori, conoscenza delle differenze tra tipi di valore e tipi di riferimento, nonché conoscenza dei metodi con più valori restituiti. La differenza tra parametri out e ref spesso non è compresa."&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;"Sebbene i valori restituiti siano comuni e ampiamente utilizzati, l'applicazione corretta dei parametri out e ref richiede competenze in progettazione intermedia e codifica. I progettisti di librerie che progettano per un pubblico generico non possono prevedere che gli utenti utilizzino in modo professionale i parametri out o ref."&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Però  &lt;/font&gt;&lt;font face="Arial"&gt;cassarli completamente  mi sembra esagerato, semplicemente utilizziamoli quando è il caso. Non a caso l'articolo si trova nella sezione "Avvisi di Progettazione". &lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/92793.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2008/05/24/92793.aspx</guid>
            <pubDate>Sat, 24 May 2008 15:47:35 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/92793.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2008/05/24/92793.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/92793.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/92793.aspx</trackback:ping>
        </item>
        <item>
            <title>Al centro l'utente... se la montagna non va..</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/11/15/89711.aspx</link>
            <description>&lt;p&gt;Ricordiamocelo il software è un prodotto non si vende una nebulosa filosofica ma una scatola per quanto custom si voglia ma è pure sempre una scatola. Al TechEd molto è stato detto sulla user experience e creare delle applicazioni poco funzionali per il livello di competenze dell'utente tipo non è un obiettivo. Da sviluppatori concentriamo molto la nostra attenzione sulle funzionalità dimenticandone la fruibilità. Ovviamente ogni ruolo coinvolto nella catena di sviluppo software baderà principalmente al proprio punto di vista e porterà la propria esperienza etc. Considerando anche Silverlight, Ajax, Expression nelle sue varie declinazioni etc. non c'è più nessuna giustificazione per creare delle applicazioni esteticamente brutte. &lt;/p&gt;
&lt;p&gt;Detto molto bruscamente se la nostra applicazione non è utilizzata non è un fallimento di chi non la usa ma nostro. Spesso sento o leggo di problemi con i tempi, requisiti etc. è un problema principalmente di comunicazione. Se tutti i clienti fossero anche degli sviluppatori, anche se non tanto bravi da realizzare l'applicazione per la quale chiedono il nostro lavoro, sicuramente avremmo da un certo punto di vista la vita più facile ma non è così. Molto spesso è anche questione di terminologia, normalmente il "volevamo stupirvi con effetti spettacolari" ripaga in alcuni casi ma non sempre. Io trovo obbligatorio e di buona educazione adeguare il proprio registro a quello delle persone con le quali abbiamo a che fare. &lt;/p&gt;
&lt;p&gt;Creare subito delle demo prima d'inziare lo sviluppo vero è proprio potrebbe rivelare degli errori d'interpretazione che scoperti a fine ciclo dal punto di vista economico potrebbero non essere giustificabili, inoltre è utile anche per testare il livello di "scontro applicazione utente" per apportare le giuste migliorie alla fruibilità. &lt;/p&gt;
&lt;p&gt;L'idea di una passata anche dal reparto grafico della demo potrebbe rendere il cliente più sorridente quando gli si da il "giocattolo".&lt;/p&gt;
&lt;p&gt;Ovviamente questo tipo d'approccio va concordato con il cliente e spiegatogli il perchè ed il percome altrimenti si rischia che la sua idea della nostra bravura corrisponda alla complessità della demo.&lt;/p&gt;
&lt;p&gt;L'errore più  frequente è assumere che il cliente debba avere il nostro grado di passione e familiarità con lo strumento informatico, cosa che ovviamente non può essere ed implicitamente o esplicitamente ridicolizzare, purtroppo accade, questa difficoltà. Al TechEd mi sono trovata ad utilizzare una tastiera araba, il mio portatile non andava, gentilmente prestatomi dal collega &lt;a href="http://bhaidar.net/cs/blogs/default.aspx"&gt;Bilal Haidar&lt;/a&gt;, con tutto il tempo che passo a strimpellare sulla tastiera non vi dico che l'impresa sia stata facile però un pò a senso un pò con il suo supporto ci sono riuscita. Immaginiamo di trovarci nella stessa situazione...&lt;/p&gt;
&lt;p&gt;Ovviamente utilizzare le giuste strategie architetturali è questione d'esperienza ma anche di alcune doti personali, come per tutti i lavori nessuno nasce imparato ma ci alcune inclinazioni personali rendono un persona più in feeling con una posizione piuttosto che un'altra...ma questo è un discorso che ho già fatto in merito alla formazione. &lt;/p&gt;
&lt;p&gt;Ritornando al TechEd la general session tenuta da &lt;a href="http://blogs.msdn.com/pathelland/"&gt;Pat Helland&lt;/a&gt; "The Irresistible Forces and the Moveable Objects" che per quanto "generalista" poteva essere ha comunque rimarcato il concetto della &lt;strong&gt;sdramattizzazione del software&lt;/strong&gt;, ovvero "una cosa alla portata di tutti e che tutti dovrebbero utilizzare in modo funzionale alle loro attività lavorative" e non un qualcosa per pochi eletti. Ovviamente per realizzare quanto viene "utopizzato" l'hardware e strumenti di sviluppo devono ancora farne di strada ma siamo su quella via.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Alla prossima :)&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/89711.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/11/15/89711.aspx</guid>
            <pubDate>Thu, 15 Nov 2007 15:55:26 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/89711.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/11/15/89711.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/89711.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/89711.aspx</trackback:ping>
        </item>
        <item>
            <title>Due chiacchere sulla terminologia...</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/10/19/89070.aspx</link>
            <description>&lt;p&gt;Questo post è stato pensato da tempo, poi l'occasione di due chiacchere oggi con un developer sulla terminologia  e mi sono detta "Ora è il momento!".&lt;/p&gt;
&lt;p&gt;Anche a causa di un inglesismo diffuso e di Cep*  è facile dire mi occupo di formazione e sentirisi dire dai non adetti ai lavori  "Ahhhh! Sei un/una tutor". Chiariamoci non è un'offesa ma le parole non sono tutte uguali.. &lt;/p&gt;
&lt;p&gt;Anzi vi renderete ben presto conto di quante differenze ci siano. Ognuno di loro svolge una funzione importante ma ben distinta.&lt;/p&gt;
&lt;p&gt;Mettiamoli in ordine rigorosamente alfabetico: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Docente&lt;/strong&gt; "trasmettitore" di competenze teoriche e pratiche, i termini sono correttamente ordinati, quando tra il docente ed il discente vi è un gap di conoscenze ed età a favore del primo. Tutti noi abbiamo l'esperienza dei docenti di scuola superiore, già all'Università è leggermente diverso in quanto si occupano principalmente di ricerca. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Formatore &lt;/strong&gt;si occupa non solo dell'aggiornamento ma anche interessamento della persona e cerca di metteresi in uno stato d'ascolto continuo di chi apprende cercando di calibrare continuamente il suo intervento. &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Trainer &lt;/strong&gt;trasmette conoscenze tecnico/pratiche a forte specializzazione ampliate da competenze trasversali quali capacità di "tenere un'aula", tanto per fare un esempio la "T" di MCT :D &lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Tutor&lt;/strong&gt; è il coordinatore di progetti formativi che in particolare ha il compito di fare da tramite tra i docenti/formatori e i discenti. Non è detto che il tutor sia un docente/formatore. Non è che faccia solo fotocopie o dopo scuola (come nel caso di Cep*) anzi il suo ruolo se fatto con professionalità è molto importante per la riuscita di un progetto formativo&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;A questo punto sia il docente che il formatore fanno formazione teorica ed in parte pratica ma la differenza sostanziale è che il formatore principalmente si occupa degli adulti, oggi detta formazione continua. Le differenze d'approccio sono tantissime. Raramente vedrete un formatore che passa la maggior parte del suo tempo mentre parla dietro la cattedra, è molto più facile vederlo/a fare avanti e dietro per l'aula o mantenere una posizione più a contatto. Già i motivi per i quali si è in aula sono molti diversi, nel caso scolastico ci sono obbligata/o  per legge o quasi.. &lt;strong&gt;nel caso della formazione continua è una scelta&lt;/strong&gt;. La situazione più critica è senza dubbio&lt;strong&gt; &lt;/strong&gt;l'insuccesso formativo. Un adulto raramente riconosce che il non raggiungimento degli obbiettivi formativi dipendono da lui, perchè parte dal seguente presupposto: "&lt;strong&gt;Io ho già ottenuto dei risultati professionali e di vita anche se non in questo settore come è possibile che non apprendo&lt;/strong&gt;" mentre la prospettiva dello studente in età scolastica/universitaria è diversa.  Metteteci anche la mancanza d'allenamento allo studio che col passare degli anni pesa e non poco...Chi non ricorda come era duro riprendere il ritmo dopo le vacanze natalizie per non parlare dopo i flutti estivi... Dunque insegnare agli adulti richiede anche delle caratteristiche caratteriali tali da non rendere automaticamente un docente un formatore. &lt;/p&gt;
&lt;p&gt;Nel caso dei training ad alto contenuto specialistico dove lo sforzo economico è presente, con un epsilon non tanto epsilon, come anche l'investimento in termini di sviluppo di carriera &lt;strong&gt;o di&lt;/strong&gt; &lt;strong&gt;utilizzo in quel progetto di lavoro che non ci fa dormire  la notte&lt;/strong&gt;, al trainer gli si chiedono soluzioni.. di come lui/lei vedono il mondo interessa marginalmente.&lt;/p&gt;
&lt;p&gt;Insomma non è detto che un buon conoscitore della materia sia un bravo docente e che un bravo docente sia un bravo formatore. &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/89070.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/10/19/89070.aspx</guid>
            <pubDate>Fri, 19 Oct 2007 14:49:53 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/89070.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/10/19/89070.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/89070.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/89070.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-340] Considerazioni</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/05/09/77817.aspx</link>
            <description>&lt;P&gt;Dopo un p&amp;#242; di post introduttivi,&amp;nbsp;oggi dopo un "real case" pensavo quanto sia importante pensare a monte alla sicurezza. Questo soprattutto in contesti dove i numeri sono n e le variabili "delicate" sono diverse. &lt;/P&gt;
&lt;P&gt;Facendo un confronto con gli altri esami, ognuno ha avuto la sua importanza e sinceramente questo non &amp;#232; da meno a nessuno sia per difficolt&amp;#224; che per rilevanza in contesti reali. &lt;/P&gt;
&lt;P&gt;Come sempre&amp;nbsp;un ragionamento in pi&amp;#249; a monte evita tantissimi problemi a valle!&lt;/P&gt;
&lt;P&gt;Ed ora .... data padding :)&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/77817.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/05/09/77817.aspx</guid>
            <pubDate>Thu, 10 May 2007 10:15:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/77817.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/05/09/77817.aspx#feedback</comments>
            <slash:comments>9</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/77817.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/77817.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-340] Strong Name e GAC</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77695.aspx</link>
            <description>&lt;P&gt;Sospendendo un attimo la CAS, affrontiamo insieme il discorso dello strong name e dalla GAC.&lt;/P&gt;
&lt;P&gt;Io ho un nome ed un cognome cos&amp;#236; anche i nostri assembly, anzi loro hanno molte pi&amp;#249; informazioni oltre il nome hanno:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;la versione 
&lt;LI&gt;la cultura 
&lt;LI&gt;public key 
&lt;LI&gt;digital signature&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Tutto questo torna utile anche dal punto della sicurezza e capiremo dopo il perch&amp;#232;. Prima di tutto come gli diamo la public key e la digital signature? Semplice a dirsi sn.exe (strong name tool). Ed a farsi? &lt;/P&gt;
&lt;P&gt;Ma ancor prima dove si trova:&lt;/P&gt;
&lt;P&gt;C:\Programmi\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin&lt;/P&gt;
&lt;P&gt;Passaggi: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;generiamo l'snk:&amp;nbsp;dal prompt dei comandi di VS.Net 2003 per creare un file .snk dobbiamo di nome "chiavi.snk" &lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;scrivere sn -k chiavi.snk &lt;/P&gt;
&lt;P&gt;viene generato e salvato nella directory corrente&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;associamolo alla nostra &lt;STRONG&gt;.dll&lt;/STRONG&gt;: questo lo facciamo nell'Assembly.Info &lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;[assembly: AssemblyCulture("")]&lt;BR&gt;[assembly: AssemblyVersion("1.0.0.0")]&lt;BR&gt;[assembly: AssemblyFileVersion("1.0.0.0")]&lt;BR&gt;[assembly: AssemblyDelaySign(false)]&lt;BR&gt;[assembly: AssemblyKeyFile(@"..\..\chiave.snk")]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL&gt;
&lt;LI&gt;verifichiamo che abbiamo fatto bene: &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;scrivere sn -v "C:\IlPercorso\Esempio.dll"&lt;/P&gt;
&lt;P&gt;Se ci restituisce una cosa del genere utilit&amp;#224; nome sicuro di Microsoft&amp;nbsp; vuol dire che abbiamo fatto bene, altrimenti :)&lt;/P&gt;
&lt;P&gt;Ora ditemi voi una volta che ho assegnato tutte queste cose &amp;#232; pi&amp;#249; difficile utilizzare in modo improprio o "impersonare" il nostro assembly? Direi proprio di s&amp;#236;.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I parametri del tool sn sono tutti &lt;A href="http://msdn2.microsoft.com/it-it/library/k5b5tt23(vs.80).aspx"&gt;qui&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Vediamo ora qualcosa sulla GAC (Global Assembly Cache)...&lt;/P&gt;
&lt;P&gt;Nel bene e nel male una delle cose che a seconda dei casi pu&amp;#242; essere considerata un beno o un male &amp;#232; l'AVANTI AVANTI ossia wizard etc. Certo automatizzare l'installazione delle nostre soluzioni &amp;#232; una gran bella comodit&amp;#224; delle applicazioni create col .NET framework ma se il nostro scopo &amp;#232; quello di lavorare in sicurezza? Meglio utilizzare la GAC che sta l&amp;#236; proprio per questo.&amp;nbsp;Se installiamo un assembly in esso pi&amp;#249; applicazioni possono utilizzarlo. Immaginiamo domani di fare una release di update? E' pi&amp;#249; comodo modificare UNA cosa in UN posto SOLO che cambiare lo stesso assembly in tutte le cartelle. Bello, bellissimo ma vediamo come si procede.&lt;/P&gt;
&lt;P&gt;Allora i metodi sono:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;automaticamente : 
&lt;UL&gt;
&lt;LI&gt;windows installer 
&lt;LI&gt;chiamando direttamente le APIs 
&lt;LI&gt;da linea di comando utilizzando un batch file ed la GacUtil&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;manualmente: 
&lt;UL&gt;
&lt;LI&gt;col .Net Framework Configuration tool &amp;nbsp; 
&lt;LI&gt;da linea di comando 
&lt;LI&gt;windows explorer&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Windows Explorer&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Vista l'ora vediamo prima come si fa con la windows explorer: basta aprire una cartella o windows explorer &amp;nbsp;e&amp;nbsp;nella barra dell'indirizzo &amp;nbsp;&amp;nbsp; %windir%\assembly e grazie a SHFusion.dll vediamo tutti i nostri assembly che risiedono nella GAC.. ed ora? Un bel copia ed incolla del nostro assembly :)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Complichiamo un p&amp;#242; le cose ed utilizziamo il Configuration tool&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Configuration Tool&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;E' lo stesso di cui parlavo ieri dunque ricordiamo Start-Pannello di Controllo- Strumenti d'amministrazione - .Net Configuration1.1 &lt;/P&gt;
&lt;P&gt;tasto destro su Cache Assembly ed aggiungiamo il nostro assembly &lt;/P&gt;
&lt;P&gt;Per gli altri magari domani... continuo a studiare ma non penso di riuscire a postare prima delle 24.. dunque a domani :)&lt;/P&gt;
&lt;P&gt;Ps. Maggiori informazioni sull'esame 70-340: Implementing Security for Applications with Microsoft Visual C# .NET &lt;A href="http://www.microsoft.com/learning/exams/70-340.mspx"&gt;qui&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/77695.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77695.aspx</guid>
            <pubDate>Wed, 09 May 2007 10:11:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/77695.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77695.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/77695.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/77695.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-340] Questo s&amp;igrave; e questo no con la CAS</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77686.aspx</link>
            <description>&lt;p&gt;Oggi pomeriggio lo dedico tutto alla preparazione dell'esame quindi mano mano posto un p&amp;#242; di cose. &lt;/p&gt; &lt;p&gt;Allora ritorniamo alla CAS Declarations... ok ma che scriviamo?&lt;/p&gt; &lt;p&gt;Ad esempio in C#&lt;/p&gt; &lt;p&gt;[assembly:RegistryPermission(SecurityAction.RequestMinumun,Read=@"HKEY_LOCAL_MACHINE\Software")]&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;[assembly:FileIOPermissionAttibute(SecurityAction.RequestMinimun Read=@"C:\boot.ini")]&lt;/p&gt; &lt;p&gt;In sostanza i tipi di permessi dichiarativi degli assembly sono:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;SecurityAction.RequestMinimun (permessi che deve soddisfare per l'esecuzione  se il nostro assembly non soddisfa questi viene lanciata un'eccezione)  &lt;li&gt;SecurityAction.RequestOptional (non abbiamo eccezione)  &lt;li&gt;SecurityAcrion.RequestRefuse (non abbiamo eccezione)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;Vediamo un modo carino di utilizzare la SecurityAction&lt;/p&gt; &lt;ol&gt; &lt;li&gt;[FileIOPermission(SecurityAction.Deny,All=@"C:\PostdiUgi\")]&lt;/li&gt; &lt;li&gt;[WebPermission(SecurityAction.PermitOnly, ConnectPattern=@"http://www\.postdiugi\.it/.*)]&lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;&lt;strong&gt;Secondo voi che succeder&amp;#224;? &lt;/strong&gt;&lt;/h4&gt; &lt;p&gt;Comunque tutto questo &amp;#232; statico e se volessimo generare qualcosa dinamicamente come ad esempio l'indirizzo web? Occorre ritornare alle Imperatively Limit Permissios? &lt;/p&gt; &lt;p&gt;Quindi la seconda diventa&lt;/p&gt; &lt;p&gt;Regex connectPattern=new Regex(@"http://www\.postdiugi\.it/.*);&lt;/p&gt; &lt;p&gt;WebPermission webPerm=new WebPermission(NetworkAccess.Connect,connectPattern);&lt;/p&gt; &lt;p&gt;webPerm.PermitOnly();&lt;/p&gt; &lt;p&gt;...&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;A pi&amp;#249; tardi!&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/77686.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77686.aspx</guid>
            <pubDate>Wed, 09 May 2007 06:56:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/77686.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/05/08/77686.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/77686.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/77686.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-340] CAS e la pagina 5 di Google</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/05/06/77497.aspx</link>
            <description>&lt;P align=justify&gt;Ripassando per l'esame ho provato a fare una piccola ricerca su Google, inserisco la parola CAS e mi &amp;#232; toccato spulciare fino a pagina 5 per iniziare a vedere qualche cosa d'attinente per il resto&amp;nbsp;club alpini, societ&amp;#224; di costruzioni etc.&lt;IMG src="http://www.tuttogratis.it/img/emoticons/_splash.gif"&gt;&amp;nbsp; ovviamente totalmente differente il risultato se inserisco Code Access Security.&lt;/P&gt;
&lt;P align=justify&gt;L'argomento &amp;#232; talmente interessante che merita un post e dunque.. vediamo cosa posso aggiungere dopo le &lt;A href="http://download.microsoft.com/download/c/9/9/c9946553-e0ae-4795-a2fd-851d9ba27dd7/WindowsSecurity.ppt"&gt;slide&lt;/A&gt; di &lt;A href="http://www.microsoft.com/italy/msdn/contattaci/fabio_santini.asp"&gt;Santini&lt;/A&gt; e &lt;A href="http://blogs.ugidotnet.org/raffaele/"&gt;Rialdi&lt;/A&gt; che per fortuna sono ancora disponibili per il download. &lt;/P&gt;
&lt;P align=justify&gt;Prima d'attentrarci nei meandri dell'argomento in&amp;nbsp;un &lt;A href="http://blogs.ugidotnet.org/rosalba/archive/2006/06/22/43339.aspx"&gt;mio vecchio post&lt;/A&gt; indicavo un articolo su&amp;nbsp;msdn che spiegava il perch&amp;#232; &amp;#232; saggio utilizzare i privilegi minimi. &lt;/P&gt;
&lt;P align=justify&gt;Quando vogliamo restringere la pericolisit&amp;#224;&amp;nbsp;del "danno" di un'applicazione i principali strumenti sono l'utilizzo sapiente della RBS e la CAS. Se per il codice unmanaged la scelta obbligata &amp;#232; la prima per il codice manged utilizzando sapientemente la CAS &amp;#232; possibile granulare correttamente cosa il nostro codice pu&amp;#242; fare ma anche cosa l'utente pu&amp;#242; fargli fare.&lt;/P&gt;
&lt;P align=justify&gt;Il meccanismo utilizzato &amp;#232; quello dell"&lt;STRONG&gt;evidence"&lt;/STRONG&gt; ossia un set d'informazioni che identificano con tutta una serie d'informazioni un assembly.&amp;nbsp; Le informazioni&amp;nbsp; spaziano dalla directory nella quale esso si trova (application directory), strong name, all'hash queste ed altre informazioni sono membri della System.Security.Policy. Comunque le evidence sono di due tipi le host (es. origine:directory, Url o sito)&amp;nbsp;e le assembly, queste ultime sono del tipo customer user o definite dal developer. Sulle slide che ho ricordato prima trovate riferimenti alla code group&amp;nbsp; ed ai permessi.&lt;/P&gt;
&lt;P align=justify&gt;Ci potremmo chiedere se la CAS sostituisce l'operating system securitity? La risposta &amp;#232; NO essa si pone come uno strato su di essa, dunque &amp;#232; un complemento e &amp;nbsp;non un suo sostituto.&lt;/P&gt;
&lt;P align=justify&gt;Ok, tutto questo &amp;#232; bello ma come faccio a sapere se&amp;nbsp;un assembly &amp;#232; attendibile e come&amp;nbsp;si configurano i permessi? &amp;nbsp;Sempre utilizzando .Net Configuration tool si utilizza il nodo CRITERI DI PROTEZIONE RUNTIME&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;&lt;STRONG&gt;Valutare l'assembly&lt;/STRONG&gt;: facciamo clic col tasto destro su di esso e&amp;nbsp;scegliamo Valuta Assembly seguendo passo passo il wizard vedremo i permessi che esso ha;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;&lt;STRONG&gt;Nuovi permessi ed assegnazione&lt;/STRONG&gt;: E per aggiungerne? Prima cosa dobbiamo decidere a che livello vogliamo impostarli enterprise, computer, user (il primo si applica a tutta la rete, il secondo a tutte le applicazioni sul PC, il secondo all'utente&amp;nbsp;singolo) Es. presi da mania di grandezza supponiamo di voler creare un nuovo set di permessi che porta il nostro nome per tutta la rete, quindi scegliamo il nodo Enterprise e poi Set di Autorizzazioni, seguendo passo passo la procedura impostiamo prima il nome del set in questo caso "Autorizzazioni di Rosalba" e poi che tipo di autorizzazione dobbiamo dare (dns, internet, contatore di prestazioni, stampa in corso etc etc) e per ciascuna le propriet&amp;#224;. Al termine vedremo sotto le altre (Full Trust, Execution etc) anche quella che abbiamo appena creato. A questo punto come l'assegniamo? Sempre nel nodo Enterprise scegliamo Gruppi di Codice, All Code dunque tasto destro e poi&amp;nbsp; Nuovo, dunque creiamo un nuovo gruppo di codice e specifichiamo il tipo di condizione per il gruppo di codice (le evidence dette prima ed anche un livello personalizzato mediante XML da scrivere o da importare) dunque gli assegniamo il set di autorizzazioni dunque "Autorizzazioni di Rosalba" e poi fine.&amp;nbsp;Ora mi ridimensiono pure io!&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P align=justify&gt;Questa &amp;#232; la strada facile se vogliamo/dobbiamo utilizzare caspol.exe i parametri sono effettivamente un p&amp;#242; tanti da postare dunque vi rimando a questo in&amp;nbsp;italiano&amp;nbsp;di &lt;A href="http://msdn2.microsoft.com/it-it/library/cb6t8dtz(vs.80).aspx"&gt;MSDN&lt;/A&gt; &lt;/P&gt;
&lt;P align=justify&gt;Piccola nota fino ad ora ho utilizzato solo Windows XP PRO, dunque le prove le potete fare tranquillamente anche se non avete Windows Server 2003. &lt;/P&gt;
&lt;P align=justify&gt;Ma se poi ci&amp;#242; che &amp;#232; previsto dalla CAS non permette alla nostra applicazione? In questo caso ricorriamo alla CAS Assmbly Declarations. &lt;/P&gt;
&lt;P align=justify&gt;Le ragioni:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;gli amministratori utilizzando il tool Permview possono analizzare i permessi che l'assembly richiede, dunque grazie ai metadati pu&amp;#242; risparmiarsi di leggere pagine e pagine della documentazione che accompagna la nostra applicazione &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;le risorse utlizzare saranno solo quelle che la nostra applicazione ha il permesso di utilizzare, e l'amministratore capir&amp;#224; dall'eccezione lanciata che cosa &amp;#232; successo sempre che ci siamo ricordati di utilizzare la&amp;nbsp;SecurityAction.RequestMinimum &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;un attacco alla nostra applicazione non provoca grossi danni essendo essa in una piccola sandbox &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV align=justify&gt;sappiamo esattamente i permessi che essa richiede poich&amp;#232;&amp;nbsp;ogni volta che dobbiamo aggiungere una doppiamo dichiararla con&amp;nbsp;SecurityAction.RequestOptional altrimenti viene trovata un'eccezione di tipo System.Security.Policy.PolicyException.&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P align=justify&gt;Il resto...magari la prossima volta oggi &amp;#232; domenica mi&amp;nbsp;&lt;IMG src="http://www.tuttogratis.it/img/emoticons/_regalo.gif"&gt;&amp;nbsp;un p&amp;#242; di riposo.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/77497.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/05/06/77497.aspx</guid>
            <pubDate>Mon, 07 May 2007 06:00:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/77497.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/05/06/77497.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/77497.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/77497.aspx</trackback:ping>
        </item>
        <item>
            <title>Tastiera americana.. ma ne ho una italiana :(</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/04/13/75416.aspx</link>
            <description>&lt;P&gt;La mia memoria ultimamente fa cilecca, sar&amp;#224; la vecchiaia&amp;nbsp; &lt;IMG src="http://www.tuttogratis.it/img/emoticons/_frittata.gif"&gt;. E poi capita durante i corsi mi chiedono ma come si fa questo e come si fa quello... &lt;/P&gt;
&lt;P&gt;Allora visto che faccio prima&amp;nbsp;a scriverlo che a dirlo..&amp;nbsp;sul mio portatile funziona (lasciando la tastiera italiana e lavorando nell'ambiete virtuale americano) cos&amp;#236;:&lt;/P&gt;
&lt;P&gt;&amp;gt; = shift + :&lt;BR&gt;&amp;lt; = shift + ;&lt;BR&gt;@ = shift + 2&lt;BR&gt;# = shift + 3&lt;BR&gt;^ = shift + 6&lt;BR&gt;&amp;amp; = shift +7&lt;BR&gt;* = shift +8&lt;BR&gt;( = shift +9&lt;BR&gt;) = shift +0&lt;BR&gt;= = &amp;#236;&lt;BR&gt;+ = shift + &amp;#236;&lt;BR&gt;{ = shift &amp;#232;&lt;BR&gt;} = shift + +&lt;BR&gt;: = shift + &amp;#242;&lt;BR&gt;" = shift + &amp;#224;&lt;BR&gt;\ = &amp;#249;&lt;BR&gt;| = shift + &amp;#249;&lt;BR&gt;~ = shift + |&lt;/P&gt;
&lt;P&gt;? = shift + -&lt;/P&gt;
&lt;P&gt;_ = shift + '&lt;/P&gt;
&lt;P&gt;\&amp;nbsp;= '&lt;/P&gt;
&lt;P&gt;Io l'ho postato&lt;IMG src="http://www.tuttogratis.it/img/emoticons/_angelo.gif"&gt; ed ora non chiedetemelo pi&amp;#249; &lt;IMG src="http://www.tuttogratis.it/img/emoticons/_linguaccia.gif"&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ps. salvo errori, me la segno pure&amp;nbsp;per me che i post-it li perdo sempre &lt;IMG src="http://www.tuttogratis.it/img/emoticons/_inferm.gif"&gt;&amp;nbsp;almeno qui riesco a recuperarla pi&amp;#249; velocemente.&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/75416.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/04/13/75416.aspx</guid>
            <pubDate>Sat, 14 Apr 2007 09:17:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/75416.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/04/13/75416.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/75416.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/75416.aspx</trackback:ping>
        </item>
        <item>
            <title>Una in più... iniziamo diamo gli strumenti per potersi formare.</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/03/28/74149.aspx</link>
            <description>&lt;P align=justify&gt;&lt;STRONG&gt;L'obiettivo&lt;/STRONG&gt;: Aumentare il numero di donne che s'interessano di programmazione a tutti i livelli e pi&amp;#249; in generale nel settore dell'informatica&lt;/P&gt;
&lt;P align=justify&gt;&lt;STRONG&gt;Limitazione community&lt;/STRONG&gt;: nessuna sono accettati i contributi di tutte le community anzi!!!&lt;/P&gt;
&lt;P align=justify&gt;&lt;STRONG&gt;Limitazioni varie&lt;/STRONG&gt;: uomo o donna non importa contribuite&amp;nbsp;:) e di nessun genere neanche territoriale.&lt;/P&gt;
&lt;P align=justify&gt;&lt;STRONG&gt;Cosa metto io a disposizione:&lt;/STRONG&gt; Tanto per iniziare &lt;U&gt;la mia biblioteca personale&lt;/U&gt; di &lt;FONT face=Verdana color=#ff0000&gt;&lt;STRONG&gt;IoProgrammo&lt;/STRONG&gt;&lt;/FONT&gt; anni &lt;STRONG&gt;2003, 2004, 2005, 2006&lt;/STRONG&gt; tutta in pdf, catalogata ed indicizzata per un rapido ritrovamento di teoria, esempi e codice. Volete mettere la comodit&amp;#224; di ritrovare un articolo e/o esempio di codice partendo da un indice o da una parola chiave :D. &lt;STRONG&gt;Insomma &amp;#232; una risorsa unica non si trova da nessuna parte&lt;/STRONG&gt; &lt;STRONG&gt;esiste solo sul mio pc &lt;/STRONG&gt;:D. Ma sto pensando anche ad altre risorse in lingua italiana ed inglese. Come fare per poterci accedere? Nei prossimi giorni maggiori dettagli comunque fornir&amp;#242; un doppio accesso al &lt;STRONG&gt;presentatore/ice&lt;/STRONG&gt; ed all'invitata.&amp;nbsp;Ma comunque gli accessi&amp;nbsp;sono limitatissimi!!!&lt;/P&gt;
&lt;P align=justify&gt;&lt;STRONG&gt;Volete contribuire&lt;/STRONG&gt;: siete tutti invitati, anche solo per definire meglio l'iniziativa, proporre materiale, es. avete scritto un libro e volete regalarne una copia, avete una lista d'articoli o di links che utilizzate di frequente e volete segnalarla, volete offrire un voucher/sconto per partecipare ad un evento/corso o simili, avete una copia di un sw in pi&amp;#249; che proprio non sapete dove mettere, siete una developer ed avete un blog/sito etc e volete indicarmelo la mia sezione &lt;STRONG&gt;"Alcune delle&amp;nbsp;donne attive"&lt;/STRONG&gt; aspetta proprio voi. In parole povere&amp;nbsp;ogni suggerimento/contributo&amp;nbsp;&amp;#232; benvenuto!!!!! &lt;/P&gt;
&lt;P align=center&gt;&lt;STRONG&gt;&lt;FONT color=#006400 size=4&gt;C'&amp;#232; una developer in erba o aspirante tale che sta aspettando proprio voi!&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P align=justify&gt;Io ho parlato di developer, perch&amp;#232; le risorse che ho a disposizione sono soprattuto per loro e poi sono autorizzata a blaterare&amp;nbsp;principalemente in questo :P,&amp;nbsp;ma questo non toglie che l'iniziativa possa essere estesa anche ad altre figure.&lt;/P&gt;
&lt;P align=justify&gt;Oggi ho postato in tutte le categorie, non odiatemi :D, per&amp;#242; ho creato una categoria apposita &lt;STRONG&gt;UNA IN PIU'&lt;/STRONG&gt; dove troverete nei prossimi giorni maggiori dettagli.&lt;/P&gt;
&lt;P align=justify&gt;Grazie &lt;A href="http://wundasworld.blogspot.com/2007/03/bonus-session_27.html"&gt;Wendy&lt;/A&gt; per l'&lt;A href="http://blogs.ugidotnet.org/rosalba/archive/2007/03/28/74086.aspx#74144"&gt;ulteriore&lt;/A&gt; suggerimento "The best way to foster change is by being role models and mentors for young women..."&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/74149.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/03/28/74149.aspx</guid>
            <pubDate>Thu, 29 Mar 2007 08:58:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/74149.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/03/28/74149.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/74149.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/74149.aspx</trackback:ping>
        </item>
        <item>
            <title>Tante preziose informazioni su VSTS</title>
            <link>http://blogs.ugidotnet.org/rosalba/archive/2007/02/11/70516.aspx</link>
            <description>&lt;P align=justify&gt;Ho appena ricevuto nella mia casella di posta l'&lt;A href="http://blogs.ugidotnet.org/lbarbieri/archive/2007/02/11/70508.aspx"&gt;ultima&lt;/A&gt;&amp;nbsp;&amp;nbsp;di &lt;STRONG&gt;VSTS Italia&lt;/STRONG&gt;, la newsletter in Italiano sulla famiglia Visual Studio Team System. &lt;/P&gt;
&lt;P align=justify&gt;Ci sono un sacco di cose interessanti e di appuntamenti da segnare in agenda. Ad esempio si parla dell'evento &lt;SPAN lang=EN-US&gt;Visual Studio 2005 Team Edition for Database Professionals, di &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;Team Foundation Server &amp;#8220;Orcas&amp;#8221; atteso nella CTP di Febbraio e dei&amp;nbsp;n&lt;/SPAN&gt;uovi webcast su Visual Studio Team System del mese di Febbraio.&lt;/P&gt;
&lt;P align=justify&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.ugidotnet.org/rosalba/aggbug/70516.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rosalba Fiore</dc:creator>
            <guid>http://blogs.ugidotnet.org/rosalba/archive/2007/02/11/70516.aspx</guid>
            <pubDate>Mon, 12 Feb 2007 11:34:00 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/rosalba/comments/70516.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/rosalba/archive/2007/02/11/70516.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/rosalba/comments/commentRss/70516.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/rosalba/services/trackbacks/70516.aspx</trackback:ping>
        </item>
    </channel>
</rss>