6. Scheda di lavoro (potenziamento: la mia prima dll ) 10/10/2014 Direttiva using indica uno spazio dei nomi che verrà utilizzati di frequente dall'applicazione, evitando al programmatore di specificare un nome completo (qualificare) ogni volta che viene utilizzato un metodo incluso in questo spazio Spazio dei nomi..> viene utilizzato: in.net Framework per organizzare le numerose classi disponibili nei progetti di programmazione per controllare l'ambito dei nomi di classi e metodi 1. Confronta i due seguenti esempi di codice, entrambi corretti, e verifica di comprendere il significato. using System; System.Console.WriteLine("Ciaoooo!"); System.Console.ReadLine(); Console.WriteLine("Ciaoooo!"); Console.ReadLine(); 2. Il codice seguente NON è corretto: riesci a comprendere il messaggio di errore? Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 12
Utilizzo dello spazio dei nomi per controllare l ambito La parola chiave namespace viene utilizzata per dichiarare un ambito. La possibilità di creare ambiti nel progetto consente di organizzare il codice e di creare tipi univoci globali. 3. Un passo avanti: costruisco il mio spazio dei nomi verifica di comprendere il codice! /* creazione di un namespace * */ namespace SpazioDeiNomiMir class mir public static void Saluti() System.Console.WriteLine("Buongiorno :)"); //fine classe mir // fine namaspace SpazioDeiNomi_mir SpazioDeiNomiMir.mir.Saluti(); System.Console.WriteLine("Ciaoooo!"); System.Console.ReadLine(); //fine classe Program // fine namaspace ConsoleApplication1 4. Mettiti alla prova: modifica il codice precedente in modo che il Main non debba qualificare l utilizzo dei tipi. Scrivi le using! mir.saluti(); Console.WriteLine("Ciaoooo!"); Console.ReadLine(); //fine metodo Main //fine classe Program // fine Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 13
5. Un altro passo: il mio spazio dei nomi in un file separato Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 14
6. Si continua: inserisco il mio spazio dei nomi in un una libreria di classi (.dll) Un programma C# è costituito da uno o più file sorgenti che contengono codice. Quando un programma C# viene compilato si crea un assembly 1, che ha come estensione:.exe se il codice implementa una applicazione.dll se il codice implementa una libreria(non c è quindi il Main come entry point) Prova a seguire tutti i passaggi: si andrà a costruire una soluzione che comprende due progetti: un progetto contiene il file program.cs che a sua volta contiene la classe che ha il metodo Main (entry point) da cui parte l applicazione e che utilizza i metodi definiti nella mia libreria l altro progetto implementa la libreria mediante lo spazio dei nomi che contiene la classe in cui ci sono tutti i miei metodi 7. adesso si lavora 7.1. salvo la soluzione con nome ConsoleApplicationMIR-TestDLL 7.2. creo il nuovo progetto si va su Soluzione ConsoleApplicationMIR-TestDLL / tasto destro del mouse / aggiungi / nuovo progetto / Libreria di classi nome LibreriaConsoleMIR 1 Un assembly contiene codice eseguibile formato da istruzioni in Intermediate Language (IL) e metadati. Prima di essere eseguito il codice IL contenuto in un assembly è automaticamente convertito nel codice specifico del processore dal compilatore Just-In-Time (JIT) del.net Common Language Runtime Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 15
7.3. Nel file Class1.cs della libreria copio il codice del mio spazio dei nomi, 7.4. cancello il file NomiMir.cs dal progetto che contiene il Main 7.5. vengono subito segnalati degli errori perché il progetto in cui si trova program.cs non fa ancora riferimento al progetto della libreria che dovrà generare la DLL 7.6. ancora un po di lavoro: guardiamo la situazione attuale della nostra soluzione Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 16
7.7. dobbiamo aggiungere al progetto ConsoleApplication1 il riferimento alla libreria progetto ConsoleApplication1 / riferimenti / tasto destro / aggiungi riferimento 7.8. ed ora siamo a posto, non ci sono più errori! 7.9. mando in esecuzione: funziona!!! 7.10. per curiosità: vado sulla cartella del progetto e trovo la dll Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 17
8. Un po di ordine: 8.1. creo una cartella dove vado a depositare tutte le mie dll "E:\mir-dll" 8.2. copio in tale cartella la dll LibreriaConsoleMIRl che avevo realizzato 9. Ultimo passo: nuovo progetto in cui utilizzo la dll creata prima 9.1. creo una applicazione Console ConsoleApplicationprovaDLL 9.2. aggiungo a questa applicazione la mia dll (tasto destro/ aggiungi riferimento / sfoglia) 9.3. scrivo il codice 9.4. eseguo: OK!!!! Questo lavoro è concesso in uso secondo i termini di una Licenza Creative Commons pag. 18