Pubblici i sorgenti del .NET framework


La notizia di una futura disponibilità dei sorgenti di alcune librerie del framework .NET 3.5 era già stata data da Scott Guthrie lo scorso Ottobre ma è notizia di ieri della effettiva disponilità per il download.

Lo scopo della pubblicazione del codice sorgente è di supporto alle attività di debugging e troubleshooting delle applicazioni oltre ovviamente ad una maggiore comprensione degli internals del framework stesso. Tutto il codice è rilasciato sotto la Microsoft Reference License (MS-RL).

Come fare? Il processo è molto semplice...solo in 2 passi:

1) In Visual Studio 2008 aprire Strumenti->Opzioni e alla voce Debug-Generale deselezionate la voce Attiva Just my Code (solo gestito) e selezionate "Attiva il supporto del server di orgine (inglese : Enable source server support).

image

2) Infine in Debug->Simboli inserite il seguente indirizzo : http://source.msdn.microsoft.com/symbols (<= Attenzioni in alcuni post che ho letto in giro ho trovato indirizzi non corretti... questo è quello corretto!!!) e l'indirizzo di cache locale. Assicurarsi che la voce "Cerca nei percorsi indicati solo quando i simboli sono caricati manualmente" sia fleggata. ATTENZIONE ai problemi di performace (soprattutto le prime volte)...

image

A questo punto in fase di debug potrete navigare all'interno del codice sorgente del framework semplicemente con F11.

Quali librerie ? Ecco la lista degli assembly disponibili:

  • Mscorlib.DLL
  • .NET Base Class Libraries  (System.*)
  • ADO.NET
  • ASP.NET
  • XML
  • System.Security
  • Windows Forms
  • WPF (Windows Presentation Foundation)
  • Microsoft.VisualBasic.DLL
  • IN futuro saranno disponibili anche WCF (Windows Communication Foundation) , WF (Workflow Foundation) e LINQ.
  • Per quanto riguarda la sicurezza sicuramente consiglio un giretto nei seguenti namespace:

    System.Security dove troverete gli internals della famigerata 🙂 CAS (Code Access Security) e della Role-Based Security basata su Windows account e custom identity. Inoltre, all'interno del namespace System.Security.Principal namespace troverete la struttura del principal object che rappresenta il security context sotto cui gira il vostro codice.

    Il namcespace System.Security.Cryptography.Pkcs (PKCS = Public Key Cryptography Standards) contiene principalmente i metodi per la firma digitale e relativa verifica (con encoding ASN.1), scambio di chiavi (envelop), richieste di certificati digitali le funzioni di cifratura a chiave asimmetriche più alcune funzioni di utilità.

    Altro importante namespace è quello inerente alla gestione ed utilizzo dei certificati digitali X509 v3: System.Security.Cryptography.X509Certificates . Questo namespace contiene una serie di classi e metodi per un completo accesso a tutti gli aspetti degli store dei certificati e relative informazioni. Dalla versione 2.0 del framework non è più necessario usare le CryptoAPI, CAPICOM o WSE per avere un controllo completo 🙂

    Infine il namespace System.Security.Cryptography.Xml permette di controllare tutti gli aspetti della creazione di firme digitali conformi alla specifica XMLDSIG (Vedi mio post precedente della serie "specifiche in pillole") e di XML encryption conforme alla specifica XMLDSIG (Vedi mio post precedente della serie "specifiche in pillole").

    Buon debugging e studio 😉

    --Mario

    Comments (3)

    1. In questo mio precedente post spiegavo come configurare Visual Studio 2008 per integrare nel processo

    2. In questo mio precedente post spiegavo come configurare Visual Studio 2008 per integrare nel processo

    3. marco says:

      sto scrivendo un applicativo in visual c++ che implementi delle funzioni crittografiche. Non essendo molto esperto dell’ambiente di sviluppop microsoft, so solo che devo usare una certa "cryptolib" da collegare poi staticamente; il problema è che non riesco a trovare tale libreria, sapresti dirmi se esiste e/o dove si trova???

      grazie comunque

      Saluti

    Skip to main content