Iniziare con C# Che cos è C# Perché C#? Giorno 1



Documenti analoghi
Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Figura 1 Le Icone dei file di Excel con e senza macro.

Programmare in Java. Olga Scotti

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Capitolo 4 Pianificazione e Sviluppo di Web Part

Il web server Apache Lezione n. 3. Introduzione

APRIRE UN PROGRAMMA DI FOGLIO ELETTRONICO

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Introduzione alla programmazione in C

MANUALE EDICOLA 04.05

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

Visual basic base Lezione 01. L'ambiente di sviluppo

CERTIFICATI DIGITALI. Manuale Utente

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel

Appunti di Informatica 1

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Office 2007 Lezione 08

Codifica: dal diagramma a blocchi al linguaggio C++

4. Un ambiente di sviluppo per Java

Identificare le diverse parti di una finestra: barra del titolo, barra dei menu, barra degli strumenti, barra di stato, barra di scorrimento.

Corso di Informatica

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

GESGOLF SMS ONLINE. Manuale per l utente

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

SOMMARIO... 3 INTRODUZIONE...

Esercitazione 1 primi passi e uso dei file

Alla scoperta della nuova interfaccia di Office 2010

Consiglio regionale della Toscana. Regole per il corretto funzionamento della posta elettronica

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Cosa è un foglio elettronico

STAMPA UNIONE DI WORD

Manuale di istruzioni sulle maschere per il calcolo del punteggio e del voto (unico) degli studenti che sostengono la Prova nazionale 2011

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

On-line Corsi d Informatica sul web

Il calendario di Windows Vista

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

Novità di Access 2010

istruzioni per l uso

Office 2007 Lezione 02. Le operazioni più

Word per iniziare: aprire il programma

Corso Eclipse. Prerequisiti. 1 Introduzione

EDICOLA MANAGER EM Importer

PROGETTO PER LA TRASMISSIONE DOCUMENTI RELATIVI ALL APPROVAZIONE DELLE MANIFESTAZIONI IN FORMA DIGITALE

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Corso di PHP. Prerequisiti. 1 - Introduzione

Il calcolatore - Applicazioni

Guida informatica per l associazione #IDEA

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

MODULO STAMPA BOLLETTINO PDF

Fate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:

1. ACCESSO AL DATABASE

ShellExcel. Una domanda contiene i riferimenti (#A, #B, #C) alle celle che contengono i dati numerici del

Uso dei modelli/template

Progetto PON C1-FSE : APPRENDERE DIGITANDO SECONDARIA VERIFICA INTERMEDIA CORSISTA NOME E COGNOME:

Manuale Terminal Manager 2.0

Manuale Utente Albo Pretorio GA

MOCA. Modulo Candidatura. [Manuale versione 1.0 marzo 2013]

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

Programma applicativo di protezione LOCK Manuale per l utente V2.22-T05

Gestione delle informazioni necessarie all attività di validazione degli studi di settore. Trasmissione degli esempi da valutare.

Tale attività non è descritta in questa dispensa

Uso di base delle funzioni in Microsoft Excel

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

LUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014

Configurazione di Outlook Express

A tal fine il presente documento si compone di tre distinte sezioni:

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

Guida introduttiva. Aprire una finestra di dialogo Facendo clic sull'icona di avvio vengono visualizzate ulteriori opzioni per un gruppo.

CONTROLLO ORTOGRAFICO E GRAMMATICALE

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

Guida all uso di Java Diagrammi ER

FtpZone Guida all uso Versione 2.1

Capitolo 3 Guida operativa del programma TQ Sistema

Istruzioni per installare EpiData e i files dati ad uso di NetAudit

Presentazione della pratica online

Procedure di ripristino del sistema.

PowerPoint 2007 Le funzioni

FRANCESCO MARINO - TELECOMUNICAZIONI

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

INFORMAZIONI IMPORTANTI e MOLTO UTILI

Transcript:

Giorno 1 Iniziare con C# Che cos è C# Rilasciato nel giugno 2000, C# (si pronuncia Ci sharp ) è un nuovo linguaggio di Microsoft sottoposto a ECMA per la standardizzazione. Creato da un équipe guidata dall ingegnere Anders Hejlsberg, che ha ideato altri prodotti, quali Borland Turbo C++ e Borland Delphi, C# integra e migliora gli aspetti più funzionali di linguaggi già esistenti. C# è potente e flessibile e, come tutti i linguaggi di programmazione, può essere utilizzato per creare molteplici applicazioni; non pone limiti a ciò che potete fare ed è già stato utilizzato per progetti molto diversi tra loro, come siti Web, strumenti di sviluppo e persino compilatori. Vari linguaggi di programmazione possiedono caratteristiche orientate agli oggetti, ma sono davvero pochi quelli che si possono definire completamente OOP (Object- Oriented Programming) come C#. Il linguaggio orientato agli oggetti verrà trattato nel Giorno 2. Più avanti, nella lezione di oggi, si confronterà C# con altri linguaggi di programmazione e si vedrà quali applicazioni possono essere create. Perché C#? Si supponeva che Java, C++, Perl, Microsoft Visual Basic e altri linguaggi esistenti offrissero tutte le funzionalità necessarie e, quindi, non ci fosse ragione di creare un nuovo linguaggio di programmazione. C# si basa su C e C++, ma ha regole proprie. Microsoft ha utilizzato le proprietà più efficaci di C e C++ includendovi nuove caratteristiche che rendono il linguaggio facile da usare (molte di queste sono simili alle funzionalità di Java). Le caratteristiche principali di C# sono le seguenti: C# è semplice; C# è di ultima generazione; C# è orientato agli oggetti.

4 Giorno 1 Ma esistono anche altre ragioni per cui C# risulta interessante: C# è potente e flessibile; C# è un linguaggio costituito da poche istruzioni; C# è modulare; C# sarà molto diffuso. Il paragrafo seguente presenta molti termini tecnici, ma la maggior parte di essi non sono particolarmente importanti per i programmatori di C#. Quelli davvero rilevanti verranno spiegati successivamente nel corso del libro. C# è semplice C# ha permesso di eliminare alcuni aspetti complessi tipici di linguaggi quali Java e C++, come macro, modelli, eredità multiple e classi di base virtuali, che creano vari problemi agli sviluppatori C++. C# è semplice perché è basato su C e C++; quindi, se avete familiarità con tali linguaggi o con Java, riuscirete a comprendere meglio C#. Istruzioni, espressioni, operatori e altre funzioni derivano direttamente da C e da C++, ma le migliorie apportate a C# (come l eliminazione di ridondanze e le modifiche riguardanti la sintassi) semplificano notevolmente il linguaggio. Per esempio, C++ possiede tre operatori che consentono di lavorare con i membri (::,. e ->) e risulta complesso capire quando usarli. In C#, essi vengono sostituiti da un solo simbolo: l operatore dot. Se avete usato Java e siete convinti che sia semplice, troverete che C# lo è ancora di più. C# è di ultima generazione Caratteristiche quali la gestione delle eccezioni, la garbage collection, i tipi di dati estensibili e la protezione del codice sono proprie di un linguaggio di ultima generazione e C# le possiede tutte. I puntatori sono parte integrante di C e C++, ma rappresentano anche l elemento del linguaggio che genera maggiore confusione. C# elimina molti dei problemi determinati dai puntatori. In C#, le garbage collection e la protezione dei tipi sono parte integrante del linguaggio. Se non avete familiarità con i concetti di puntatori, garbage collection e sicurezza dei tipi, non preoccupatevi: saranno spiegati nelle prossime lezioni. C# è orientato agli oggetti TERMINE Le caratteristiche fondamentali di un linguaggio orientato agli oggetti sono l incapsulamento, l ereditarietà e il polimorfismo. C# le supporta tutte. L incapsulamento è il posizionamento di funzionalità in un singolo pacchetto. L ereditarietà è un metodo per estendere codice e funzionalità esistenti nei nuovi programmi e pacchetti. Il

Iniziare con C# 5 polimorfismo è la capacità di adattarsi alle operazioni richieste. Spiegazioni più dettagliate in merito, verranno fornite nel corso del libro e in particolare nella lezione del Giorno 2. C# è potente e flessibile Come si è già accennato, C# non pone limiti alla realizzazione di qualsiasi tipo di progetto, tra cui elaboratori di testi, grafica, fogli di calcolo e persino compilatori per altri linguaggi. C# è un linguaggio costituito da poche istruzioni TERMINE C# è un linguaggio che utilizza un numero limitato di istruzioni, denominate parole chiave, che rappresentano la base su cui sono costruite le funzionalità del linguaggio. La Tabella 1.1 elenca le parole chiave di C#, la maggior parte delle quali viene usata per descrivere informazioni. Potreste pensare che un linguaggio con un maggior numero di parole chiave sia più potente, ma ciò non corrisponde al vero. Quando programmerete con C# vi renderete conto che è possibile eseguire qualsiasi tipo di operazione. Vi sono alcune altre istruzioni nei programmi C# che, sebbene non siano parole chiave, dovrebbero essere trattate come se lo fossero: si tratta di get, set e value. Tabella 1.1 Le parole chiave di C# abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void while

6 Giorno 1 C# è modulare TERMINE Il codice C# può (e dovrebbe) essere scritto in parti denominate classi, che contengono routine chiamate metodi membri. Classi e metodi possono essere riutilizzati in altre applicazioni e programmi. Passando parti di informazioni alle classi e ai metodi, potete creare un codice utile e riutilizzabile. Nel Giorno 2 imparerete le classi e nel Giorno 6 come crearle. C# sarà molto diffuso C# è uno dei linguaggi di programmazione più recenti e si può affermare a ragion veduta che conoscerà un ampia diffusione. Questo è anche l intento di Microsoft e sebbene un azienda non possa determinare la notorietà di un prodotto, può sicuramente contribuirvi. Non molto tempo fa, Microsoft ha registrato il fallimento del sistema operativo Microsoft Bob. C# ha migliori opportunità di Microsoft Bob poiché Microsoft lo utilizza continuamente e porzioni di molti dei suoi prodotti sono già state riscritte in C#; in questo modo l azienda ne rafforza le capacità per soddisfare le necessità dei programmatori. Microsoft.NET è un altra ragione per cui C# ha grandi possibilità di affermarsi:.net rappresenta una svolta nel modo in cui si effettua la creazione e l implementazione delle applicazioni. Sebbene virtualmente qualsiasi linguaggio di programmazione possa venire usato con.net, C# sta dimostrando di essere quello maggiormente adatto. Il Giorno 2 comprende un paragrafo che illustra i punti di forza di.net. Grazie alle caratteristiche citate precedentemente, C# avrà buone possibilità di affermarsi e di diffondersi ampiamente come linguaggio di programmazione. C# e gli altri linguaggi di programmazione Probabilmente, vi state domandando non solo quali differenze intercorrano tra C# e gli altri linguaggi di programmazione, ma anche se non sia consigliabile imparare uno di questi linguaggi al posto di C#. Le principali domande relative a.net che si incontrano nei forum di Internet sono: qual è la differenza tra Java e C#? C# non è semplicemente un clone di Java? qual è la differenza tra C# e C++? dovrei imparare Visual Basic.NET o C#? Microsoft afferma che C# coniuga la potenza di C++ con la semplicità di Visual Basic. Potrebbe forse non essere facile come Visual Basic 6, ma lo è sicuramente quanto Visual Basic.NET (versione 7), che è stato riscritto completamente. Dunque, si

Iniziare con C# 7 può concludere che Visual Basic non è più facile di C#: impiegando C#, infatti, potete scrivere molti programmi con meno codice. C# ha eliminato alcune caratteristiche di C++ che causano molti problemi ai programmatori, mantenendo potenza e funzionalità. Alcuni degli errori di programmazione in cui è più facile incorrere in C++ possono essere tranquillamente evitati, risparmiando ore o addirittura giorni di lavoro. Un altro linguaggio molto diffuso è Java che, come C++ e C#, si basa su C. Avrete modo di scoprire che quanto avrete imparato su C# può essere applicato quasi sempre anche a Java. Probabilmente, conoscete il linguaggio di programmazione C. Molti utenti si chiederanno se debbano imparare C prima di C#, C++ o Java. In realtà, non è assolutamente necessario. Nei prossimi paragrafi esplorerete i passaggi di creazione di un programma. Preparazione alla programmazione Se siete impegnati nella soluzione di un problema, dovreste seguire dei passaggi ben precisi. Prima di tutto, ovviamente, è necessario definire il problema; dopo di che potete mettere a punto una strategia per porvi rimedio, attuarla e, infine, testare i relativi risultati per assicurarvi di aver raggiunto l obiettivo. Questa stessa logica può essere applicata a molti altri campi, programmazione compresa. Quando, infatti, create un programma in C# (o in qualsiasi linguaggio), dovreste seguire una sequenza di passaggi. 1. Determinare l obiettivo (o gli obiettivi) del programma. 2. Determinare i metodi che intendete usare nello scrivere il programma. 3. Creare il programma per risolvere il problema. 4. Eseguire il programma per verificare i risultati. Si potrebbe scrivere un elaboratore di testi o un programma di database oppure, molto più semplicemente, posizionare il vostro nome sullo schermo. Comunque, se non fissate un obiettivo, non sarete in grado di scrivere un programma efficace. Successivamente, dovete determinare il metodo da usare per scrivere il programma. Avete necessità di un programma per risolvere il problema? Di quali informazioni dovete disporre? Quali formule saranno usate? Dovreste provare a determinare ciò che è necessario e in quale ordine verrà implementato. Supponete che qualcuno vi domandi di scrivere un programma per determinare l area all interno di un cerchio. Il primo passaggio, dunque, è già superato, poiché conoscete il vostro obiettivo. Il secondo passaggio è determinare ciò che vi serve per circoscrivere l area. Date per scontato che il programmatore fornisca il raggio del cerchio; in questo modo potete applicare la formula πr 2 per ottenere la risposta. Ora disponete di tutti gli elementi necessari, potete quindi passare al terzo e al quarto passaggio, ovvero al ciclo di sviluppo del programma.

8 Giorno 1 Ciclo di sviluppo del programma Il ciclo di sviluppo del programma impone di seguire passaggi precisi. Nel primo passaggio, potete usare un editor per creare un file contenente il vostro codice sorgente; nel secondo, compilate il codice sorgente per creare un file intermedio denominato file eseguibile o file libreria; il terzo passaggio, infine, consiste nell eseguire il programma per verificarne il funzionamento. Creare il codice sorgente TERMINE Il codice sorgente è una serie di istruzioni o comandi utilizzati per istruire il computer a eseguire le attività desiderate. Come già accennato, il primo passaggio del ciclo di sviluppo del programma consiste nell inserire codice sorgente in un editor. Di seguito viene mostrata una riga di codice sorgente C#: System.Console.WriteLine( Hello, Mom! ); Con questa istruzione il computer è in grado di visualizzare il messaggio Hello, Mom! sullo schermo. (Per ora, non preoccupatevi di come funziona.) Uso di un editor TERMINE Un editor è un programma che può essere usato per inserire o salvare un codice sorgente; ne esistono vari da utilizzare con C#: ideati specificatamente o meno. Al momento della stesura del libro esistevano solo alcuni editor creati per C#; tuttavia, a breve, molti altri saranno presenti sul mercato. Microsoft ha potenziato le capacità del suo prodotto Visual Studio, che include Visual C#, l editor attualmente più importante in circolazione. Se non possedete Visual Studio.NET, potete comunque lavorare con C#. Vi sono inoltre altri editor disponibili per C# che, Come Visual Studio.NET, vi consentono di eseguire tutti i passaggi del ciclo di sviluppo senza abbandonare l editor stesso. La maggior parte di questi colorano il testo che inserite; questo rende più facile individuare eventuali errori. Molti editor vi offrono anche varie informazioni su ciò che dovete inserire e forniscono aiuto consistente. Se non possedete un editor C#, non preoccupatevi: gran parte dei sistemi di elaborazione comprendono un programma che può essere usato come editor. Se state usando Microsoft Windows, potete scegliere Blocco note o WordPad come vostro editor. Se avete optato per un sistema Linux o UNIX, potete impiegare editor quali ed, ex, edit, emacs o vi. Quasi tutti gli elaboratori di testo usano speciali codici per formattare i loro documenti; altri programmi, invece, non possono leggerli correttamente. Vari word processor, quali WordPerfect, Microsoft Word e WordPad, sono capaci di salvare file sorgenti in un formato basato sul testo. Per salvare un file di elaboratore di testi come file di testo, selezionate l opzione testo.

Attribuire un nome ai file sorgente Iniziare con C# 9 Per trovare editor alternativi, potete cercare nei negozi di computer, nei cataloghi di vendita per corrispondenza o negli annunci delle riviste di programmazione di computer. Di seguito vengono riportati alcuni editor disponibili al momento della stesura di questo libro. CodeWrite. È un editor che fornisce speciale supporto per ASP, XML, HTML, C#, Perl, Python e altri. Si trova consultando il sito www.premia.com. EditPlus. È un editor di testo adatto a Internet, un editor HTML e un editor per programmatori di Windows. Oltre a rappresentare un buon sostituto di Blocco note, offre molte caratteristiche potenti per autori e programmatori di pagine Web, inclusa la codifica colore per il codice. Si trova all indirizzo www.editplus.com. JEdit. È un editor open source per Java; tuttavia può essere impiegato anche per C#. Comprende la capacità di codifica colore di codice. Si trova all indirizzo http://jedit.sourceforge.net. Poorman IDE di Duncan Chen. Fornisce un editor che evidenzia la sintassi sia per C# sia per Visual Basic.NET. Consente anche di eseguire il compilatore e catturare l output del terminale, in modo da non dover abbandonare IDE Poorman. Si trova all indirizo www.geocities. com/duncanchen/poormanide.htm. SharpDevelop di Mike Krüger. È un editor gratuito per progetti C# su piattaforme.net di Microsoft ed è open source (GPL): potete scaricare sia il codice sorgente sia gli eseguibili da www.icsharpcode.net. Quando salvate un file sorgente, dovete attribuirgli un nome che descriva le funzioni del programma. Inoltre, quando salvate un file sorgente di programmi C#, date al file un estensione.cs. Sebbene possiate scegliere per il vostro file sorgente qualsiasi nome ed estensione,.cs è considerata quella più appropriata. Eseguire un programma C# Prima di addentrarci nel ciclo di sviluppo del programma, è importante capire come viene eseguito un programma C# che è strutturato in modo diverso da quelli che create con altri linguaggi di programmazione. TERMINE I programmi C# sono creati per essere eseguiti in CLR (Common Language Runtime). Ciò significa che se create un programma eseguibile C# e provate a eseguirlo su un computer che non possiede CLR o un runtime compatibile, non verrà eseguito. Eseguibile significa che il programma può essere eseguito dal vostro computer. Il vantaggio nel creare programmi per un ambiente runtime consiste nella portabilità. In linguaggi più datati, quali C e C++, se volevate creare un programma da eseguire su diverse piattaforme o sistemi operativi dovevate compilare differenti programmi eseguibili. Per esempio, se avevate scritto un applicazione C e desideravate

10 Giorno 1 eseguirla su un computer Linux e su un computer Windows, dovevate creare due programmi differenti. Con C#, invece, potete creare un solo programma ed eseguirlo su entrambi i sistemi operativi. TERMINE Se desiderate che il vostro programma venga eseguito il più velocemente possibile, dovete creare un vero eseguibile. Un computer necessita di istruzioni digitali o binarie in ciò che viene chiamato linguaggio computer. Un programma nominato compilatore esegue questa traduzione: prende il vostro file di codice sorgente come input e produce un file su disco contenente le istruzioni che corrispondono alle istruzioni del vostro codice sorgente. Con programmi quali C e C++ il compilatore crea un file che può essere eseguito senza ulteriori operazioni da compiere. Con C# potete usare un compilatore che non produce linguaggio macchina, bensì un file IL (Intermediate Language). Poiché esso non è direttamente eseguibile dal computer, occorre effettuare un passaggio in più per tradurre o per compilare il programma per il computer. CLR o una fase di esecuzione C# compatibile compie la necessaria compilazione finale. Una delle prime operazioni che fa CLR con un file IL è una compilazione finale del programma. In questo processo, CLR trasforma il codice IL portabile in un linguaggio (linguaggio macchina) che il computer possa comprendere ed eseguire. CLR in realtà compila solo le parti del programma che vengono utilizzate, consentendo di risparmiare tempo. Inoltre, dopo che a una porzione del vostro file IL è stata data una vera compilazione, non è più necessario ricompilarla, poiché questa porzione del programma viene salvata e riutilizzata tutte le volte che viene eseguita. Poiché il runtime deve compilare il file IL, la prima volta ci vuole un po più di tempo per eseguire un programma in C# rispetto a quello impiegato per eseguire un linguaggio pienamente compilato come C++. Ma le volte successive che un programma in C# viene eseguito la differenza di tempo non sussiste più, perché verrà usata la sua versione pienamente compilata. L ultimo minuto di compilazione di un programma C# è denominato compilazione Just in time o anche jitting. Compilare codice sorgente C# Per creare il file IL potete usare il compilatore C#. Normalmente si usa il comando csc per eseguire il compilatore, seguito dal nome di file sorgente. Per esempio, per compilare un file sorgente denominato radius.cs, digitate la formula seguente alla riga di comando: csc radius.cs Se state usando un ambiente di sviluppo grafico, compilare è persino più semplice. Nella maggior parte degli ambienti grafici potete compilare un programma selezionando l icona Compila o l appropriata opzione dal menu. Dopo che il codice è stato compilato, selezionando l icona Esegui o l appropriata opzione dal menu il pro-

Iniziare con C# 11 gramma viene eseguito. Dovreste controllare i vostri manuali di compilazione per avere ulteriori dettagli sulla compilazione e sull esecuzione di un programma. TERMINE Dopo la compilazione, ottenete un file IL. Se osservate un elenco dei file nella directory o nella cartella in cui avete compilato, dovreste trovare un nuovo file che ha lo stesso nome del vostro file sorgente ma con un estensione.exe (invece che.cs). Il file con l estensione.exe è il vostro programma compilato (chiamato assembly). Questo programma è pronto per essere eseguito sul CLR. Il file assembly contiene tutte le informazioni che la fase di esecuzione ordinaria deve conoscere per eseguire il programma. La Figura 1.1 mostra che cosa accade nel passaggio dal codice sorgente al codice eseguibile. QUESTO È CODICE Compila OXOXOXO XOXOXOX OXOXOX OXOXOX XOXOXO OXXOOX File assembly contenente IL Figura 1.1 Il codice sorgente C# che scrivete è convertito in un codice IL (Intermediate Language) dal compilatore. In generale vengono creati due tipi di programmi C#: gli eseguibili e le librerie. Durante le prime due settimane lezione sarete concentrati sugli eseguibili, che sono file EXE. Potete inoltre usare C# per altri tipi di programmazione, compreso lo scripting su pagine ASP.NET. Approfondirete la conoscenza delle librerie nelle lezioni della terza settimana. Completamento del ciclo di sviluppo Una volta che il vostro programma è un file IL compilato, potete eseguirlo inserendo il suo nome nel prompt da riga di comando o semplicemente come qualsiasi altro programma. Se eseguite il programma e ottenete risultati differenti da ciò che vi aspettavate, dovete tornare al primo passaggio del processo di sviluppo. Dovete identificare ciò che ha provocato il problema e correggerlo nel codice sorgente. Quando apportate una modifica al codice sorgente, dovete ricompilare il programma per creare una versione corretta del file eseguibile. Continuate a seguire questo ciclo finché non riuscite a eseguire il programma esattamente come volevate.

12 Giorno 1 Il ciclo di sviluppo C# Passaggio 1. Usate un editor per scrivere il vostro codice sorgente. Ai file codice sorgente C# viene abitualmente attribuita l estensione.cs (per esempio, a_program.cs, database.cs e così via). Passaggio 2. Compilate il programma usando un compilatore C#. Se il compilatore non individua alcun errore nel programma, produce un file assembly con l estensione.exe o.dll. Per esempio, myprog.cs è compilato a myprog.exe di default. Se il compilatore individua errori, li riporta. Dovete ritornare al passaggio 1 per effettuare le correzioni nel vostro codice sorgente. Passaggio 3. Eseguite il programma sul computer con un runtime C# quale il Common Language Runtime. Dovreste verificare se il vostro programma funziona correttamente. In caso contrario, iniziate di nuovo dal passaggio 1 ed effettuate le modifiche e le aggiunte al vostro codice sorgente. La Figura 1.2 mostra i passaggi del processo di sviluppo del programma. Per tutti i programmi, tranne quelli più semplici, potreste dover eseguire questa sequenza molte volte. Persino i programmatori più esperti non riescono a scrivere un programma completo senza errori, la prima volta! Quindi, poiché eseguirete il ciclo edita-compila-effettua test molte volte, è importante avere dimestichezza con l editor, il compilatore e l ambiente di runtime. Il vostro primo programma C# Per aiutarvi a conoscere meglio il vostro compilatore, il Listato 1.1 contiene un programma semplice e rapido su cui potete lavorare. Questa dimostrazione impiega un programma denominato hello.cs che visualizza le parole Hello, World! sullo schermo ed è il più utilizzato per introdurre gli utenti alla programmazione; poiché risulta molto valido per l apprendimento. Il codice sorgente per hello.cs è riportato nel Listato 1.1. Quando lo digitate, non includete il numero delle righe a sinistra o i due punti. Listato 1.1 hello.cs 1: class Hello 2: { 3: static void Main() 4: { 5: System.Console.WriteLine( Hello, World! ); 6: } 7: } Assicuratevi di aver installato il vostro compilatore come specificato nelle istruzioni di installazione fornite con il software. Una volta che il compilatore e l editor sono pronti, seguite i passaggi descritti nel prossimo paragrafo per inserire, compilare ed eseguire hello.cs.

Iniziare con C# 13 Inizio Inserimento codice sorgente Passaggio 1 Compilazione Passaggio 2 Errori? Sì No Esecuzione programma Funziona correttamente? No Passaggio 3 Sì Fatto Figura 1.2 I passaggi da seguire per sviluppare un programma C#. Inserire e compilare hello.cs Per inserire e compilare il programma hello.cs, seguite i passaggi seguenti. 1. Avviate il vostro editor. 2. Usate la tastiera per digitare il codice sorgente mostrato nel Listato 1.1. Non inserite i numeri delle righe o i due punti, che vengono forniti solo come riferimento all interno di questo libro. Premete Invio alla fine di ogni riga. Assicuratevi di inserire il codice usando le stesse maiuscole o minuscole. C# è un programma case sensitive, quindi se modificate la maiuscola/minuscola si genereranno errori. In C e C++, main() è minuscolo. In C#, Main() ha una M maiuscola. In C#, se digitate una m minuscola si genererà un errore.

14 Giorno 1 3. Salvate il codice sorgente. Dovreste nominare il file hello.cs. 4. Verificate che hello.cs sia stato salvato elencando i file nella directory o cartella. 5. Compilate hello.cs. Se state usando un compilatore a riga di comando, inserite: csc hello.cs Se state usando IDE (Integrated Development Environment), selezionate un icona o opzione di menu appropriata. Apparirà un messaggio in cui si segnala che non vi è alcun errore o avvertimento. 6. Controllate i messaggi del compilatore. Se non ricevete alcun messaggio di errore o avvertimento, tutto dovrebbe funzionare. Se avete commesso un errore digitando il programma, il compilatore lo individuerà e visualizzerà un messaggio di errore. Per esempio, se avete digitato il termine Console al posto di Consol, vedrete un messaggio simile al seguente: hello.cs(5,7): error CS0117: System does not contain a definition for Consol 7. Ritornate al passaggio 2, se viene visualizzato questo o qualsiasi altro messaggio di errore. Aprite il file hello.cs nel vostro editor. Confrontate attentamente il contenuto del file con il Listato 1.1, effettuate le correzioni necessarie e proseguite con il passaggio 3. 8. A questo punto, il vostro primo programma C# dovrebbe risultare compilato e pronto per venire eseguito. Se visualizzate un elenco di directory di tutti i file nominati hello (con qualsiasi estensione), dovreste osservare quanto segue: hello.cs, the source code file you created with your editor hello.exe, the executable program created when you compiled hello.cs 9. Per eseguire hello.exe, inserite hello nella riga di comando. Il messaggio Hello, World! verrà visualizzato sullo schermo. Se eseguite il programma hello facendo doppio clic in Windows Explorer di Microsoft, potreste non vedere i risultati. Questo programma viene eseguito in una finestra da riga di comando. Quando fate doppio clic in Windows Explorer, il programma apre un finestra da riga di comando, esegue il programma e chiude la finestra; il tutto può avvenire così velocemente da sembrare che non sia accaduto niente. È meglio aprire una finestra da riga di comando, spostarsi alla directory contenente il programma e quindi eseguire il programma dalla riga di comando. Hello.cs è un programma semplice, ma è un inizio. Infatti, la maggior parte dei programmatori esperti di oggi ha imparato a lavorare compilando un programma hello world.

Comprendere gli errori di compilazione Iniziare con C# 15 Un errore di compilazione avviene quando il compilatore trova nel codice sorgente un elemento che non può compilare; errori di ortografia o tipografici, per esempio, possono causare l arresto del compilatore. Fortunatamente, i compilatori moderni non si bloccano semplicemente, ma indicano su quale elemento si sono bloccati e dove risiede il problema; in questo modo diventa più facile individuare e correggere gli errori nel codice sorgente. Tale situazione può venire illustrata introducendo un errore nel programma hello.cs, sul quale avete lavorato precedentemente. Se avete seguito l esempio (e dovreste averlo fatto), diponete ora di una copia di hello.cs sul vostro disco. Usando l editor, spostate il cursore alla fine della riga 5 e cancellate il punto e virgola finale: Hello.cs dovrebbe apparire come nel Listato 1.2. Listato 1.2 hello.cs con un errore 1: class Hello 2: { 3: static void Main() 4: { 5: System.Console.WriteLine( Hello, World! ) 6: } 7: } Salvate il file e compilatelo inserendo il comando per il vostro compilatore e rammentate che il comando da riga di comando è: csc hello.cs A causa dell errore che avete introdotto, la compilazione non viene completata. Il compilatore visualizza invece un messaggio simile al seguente: hello.cs(5,48): error CS1002: ; expected Questa riga è composta da tre parti: hello.cs Il nome del file dove è stato individuato l errore. (5,48): Il numero di riga e la posizione dove è stato notato l errore: riga 5, posizione 48. error CS1002: ; expected Una descrizione dell errore. Questo messaggio indica che quando il compilatore è arrivato al quarantottesimo carattere della riga 5 di hello.cs, non ha trovato il punto e virgola che si aspettava di incontrare. Utilizzando la vostra conoscenza di C#, dovete interpretare i messaggi del compilatore e stabilire il posizionamento esatto di tutti gli errori riportati. Essi vengono spesso individuati nella riga riportata dal compilatore, ma, se così non è, sono quasi sempre presenti nella riga precedente.

16 Giorno 1 Prima di abbandonare questo argomento, date uno sguardo a un altro esempio di errore di compilazione. Caricate nuovamente hello.cs nel vostro editor ed effettuate le seguenti modifiche: 1. Riposizionate il punto e virgola alla fine della riga 5. 2. Cancellate le virgolette davanti alla parola Hello. Salvate il file su disco e compilate il programma nuovamente. Questa volta il compilatore dovrebbe visualizzare un messaggio di errore simile al seguente: hello.cs(5,32): error CS1010: Newline in constant Il messaggio trova il corretto posizionamento dell errore, localizzandolo alla riga 5; precisamente nella posizione 32, dove mancano le prime virgolette. Questo messaggio di errore non ha considerato il punto dove si trovava il punto e virgola mancante. In questo caso, il compilatore ha individuato il problema. Se il compilatore riporta più errori e ne trovate uno soltanto, correggetelo e ricompilate. Potreste scoprire che la vostra singola correzione è l unica necessaria e il programma verrà compilato senza errori. Comprendere gli errori di logica Vi è un altro tipo di errore che si potrebbe generare: quello di logica, che non potete imputare al codice o al compilatore, ma soltanto a voi stessi. Infatti, è possibile creare un programma con un codice C# perfetto che contiene comunque un errore. Per esempio, supponete che intendiate calcolare l area di un cerchio moltiplicando 2 per il valore di PI moltiplicato per il raggio: Area = 2πr Potete inserire questa formula nel vostro programma, compilare ed eseguire: otterrete un risultato. Il programma C# potrebbe venire scritto con una sintassi corretta; tuttavia, ogni volta che eseguite questo programma, riceverete una risposta errata. È la logica del programma ad essere sbagliata: con questa formula otterrete la circonferenza di un cerchio e non la sua area. Avreste dovuto usare la formula πr 2. Per quanto valido sia un compilatore, non sarà mai in grado di individuare gli errori di logica. Dovete trovarli personalmente, revisionando il codice e facendo eseguire i vostri programmi. Tipi di programmi C# Prima di terminare la lezione odierna, analizzate quali tipi di applicazioni potete creare con C#. Applicazioni di console. Eseguono dalla riga di comando e sono principalmente basate sul carattere tipografico o sul testo; di conseguenza, rimangono relativamente semplici da comprendere. Applicazioni Windows. Si avvantaggiano dell interfaccia utente grafica (GUI) fornita da Windows di Microsoft.

Iniziare con C# 17 Servizi Web. Sono routine che possono essere interpellate attraverso il Web. Web form/applicazioni ASP.NET. Vengono eseguite su un server Web e generano pagine Web dinamiche. Inoltre, C# può essere impiegato per eseguire molte altre operazioni, comprese la creazione di librerie, console e altro. Domande e risposte D. Un programma C# verrà eseguito su qualsiasi computer? R. No. Un programma C# sarà eseguito unicamente sui computer che hanno installato CLR (Common Language Runtime). In caso contrario, si genererà un errore. Nelle versioni di Windows sprovviste di CLR viene, solitamente, indicato che un file DLL è mancante. D. Se si fornisce un programma personalizzato, quali file bisogna inserire? R. Uno degli aspetti positivi di C# è che è un linguaggio compilato. Ciò significa che, dopo la compilazione del codice sorgente, disponete di un programma eseguibile. Se desiderate passare ad altri il programma hello, potete farlo: fornitegli hello.exe. Infatti, non è necessario il file sorgente hello.cs e non c è bisogno di possedere un proprio compilatore C#; basta usare un sistema di elaborazione che abbia una fase di esecuzione C# quale Common Language Runtime di Microsoft. D. Dopo aver creato un file eseguibile, bisogna mantenere il file sorgente (.cs)? R. Se eliminate il file sorgente, successivamente, non potete effettuare modifiche al programma in modo semplice, quindi dovreste conservarlo. Gran parte degli ambienti di sviluppo integrato creano dei file in aggiunta al codice sorgente (.cs) e al file eseguibile. Finché manterrete il file sorgente (.cs), potrete quasi sempre ricreare altri file. Quando il vostro programma impiega risorse esterne quali immagini e form, non dovete mai eliminare questi file, se pensate di dover effettuare modifiche e ricreare l eseguibile. D. Se il compilatore fosse fornito di un editor, si sarebbe obbligati a usarlo? R. Assolutamente no. Potete usare qualsiasi editor a patto che salvi il codice sorgente in formato testo. Se il compilatore fosse fornito di un editor, dovreste provare a usarlo; se preferite, scegliete un editor venduto separatamente. Comunque, gli editor forniti con i compilatori stanno migliorando: alcuni formatizzano automaticamente il vostro codice C# e altri colorano parti diverse del vostro file sorgente per rendere più facile l individuazione di errori. D. È possibile ignorare i messaggi di attenzione? R. Alcuni messaggi di attenzione non influiscono su come viene eseguito il programma, altri invece sì. Se il compilatore visualizza un messaggio di attenzione, non tutto è corretto. Quasi tutti i compilatori vi permettono di impostare il livello di attenzione per ottenere solo messaggi di attenzione molto gravi o riceverli tutti, compreso il più insignificante. Alcuni compilatori offrono anche diversi livelli intermedi. Nei vostri programmi dovreste con-

18 Giorno 1 trollare ogni messaggio di attenzione e adottare i provvedimenti adeguati. Infatti, in presenza di un errore, il vostro compilatore non creerà il file eseguibile. Verifica Questo paragrafo fornisce quiz ed esercizi per consolidare la comprensione dei temi trattati nel corso della lezione. Le risposte sono riportate nell Appendice A. Quiz 1. Spiegate per quali ragioni C# risulta un ottima scelta come linguaggio da utilizzare per la programmazione. Fornite almeno tre motivazioni. 2. Che cosa significano IL e CLR? 3. Quali sono i passaggi nel ciclo di sviluppo del programma? 4. Quale comando dovete inserire per compilare un programma denominato my_prog.cs con il vostro compilatore? 5. Quale estensione dovreste usare per i file sorgente C#? 6. Il nome di file.txt è un nome valido per un file sorgente C#? 7. Se eseguite un programma che avete compilato e non funziona secondo le vostre aspettative, come dovete intervenire? 8. Qual è la funzione del linguaggio macchina? 9. In quale riga è avvenuto l errore seguente? my_prog.cs(35,6): error CS1010: Newline in constant 10. Vicino a quale colonna si è potuto verificare l errore riportato di seguito? my_prog.cs(35,6): error CS1010: Newline in constant Esercizi 1. Usate il vostro editor di testo per analizzare il file EXE che avete creato nel Listato 1.1. Il file EXE assomiglia al file sorgente? (Non salvate questo file quando uscite dall editor.) 2. Inserite il seguente programma e compilatelo (non includete i numeri di riga o i due punti). Qual è la funzione di questo programma? 1: // circle.cs Usando variabili e valori letterali 2: // Questo programma calcola elementi attinenti al cerchio. 3: //----------------------------------------------- 4: 5: using System; 6: 7: class variables 8: {

Iniziare con C# 19 9: public static void Main() 10: { 11: //Dichiara variabili 12: 13: int radius = 4; 14: const double PI = 3.14159; 15: double circum, area; 16: 17: //Fa i calcoli 18: 19: area = PI * radius * radius; 20: circum = 2 * PI * radius; 21: 22: //Stampa i risultati 23: 24: Console.WriteLine( Radius = {0}, PI = {1}, radius, PI ); 25: Console.WriteLine( The area is {0}, area); 26: Console.WriteLine( The circumference is {0}, circum); 27: } 28: } 3. Inserite e compilate il seguente programma. Che cosa si ottiene? 1: class AClass 2: { 3: static void Main() 4: { 5: int x,y; 6: for ( x = 0; x < 10; x++, System.Console.Write( \n ) ) 7: for ( y = 0; y < 10; y++ ) 8: System.Console.Write( X ); 9: } 10: } 4. Il seguente programma ha un problema. Inseritelo nel vostro editor e compilatelo. Quali righe generano messaggi d errore? 1: class Hello 2: { 3: static void Main() 4: { 5: System.Console.WriteLine(Keep Looking!); 6: System.Console.WriteLine(You ll find it!); 7: } 8: } 5. Eseguite la seguente modifica all interno del programma dell esercizio 3. Ricompilate e rieseguite questo programma. A questo punto cosa succede? 8: System.Console.Write( {0}, (char) 1 );