Cap.1 – Framework dotNet e Ambiente di sviluppo
Transcript
Cap.1 – Framework dotNet e Ambiente di sviluppo
High thoughts must have a high language. (Aristophanes) Cap.1 – Framework dotNet e Ambiente di sviluppo in questo primo capitolo presentiamo l'ambiente di sviluppo che verrà utilizzato in questo corso. Si tratta di SharpDevelop, nella versione 1. Prima di installare questo ambiente di sviluppo occorre però installare il framework dotNet (Nel caso che non sia già presente nel vostro computer, lo potete scaricare dal sito microsoft) 1.1 Installazione del framework dotNET per installare il framework NET della microsoft cercate, scaricate da internet il file: dotnetfx.exe cliccandolo avvierete l'installazione del framework NET. Per chi non vuole utilizzare questo framework è possibile anche utilizzare alternative (Mono), anzi l'alternativa è obbligatoria per chi vuole programmare in c# in ambiente Linux. 1.2 Installazione di SharpDevelop. Per installare sharpDevelop, che d'ora in poi per brevità chiameremo #Dev cercate, scaricate da internet il file: sharpDevelopFidalcoRC2setup.exe (questa è la versione 1, che è stata utilizzata in questo tutorial, esistono anche versioni più recenti) cliccandolo avvierete l'installazione di questo ambiente di sviluppo. Esistono anche alternative, ad esempio utilizzare Microsoft Visual C# 2005 Espress Edition, oppure Eclipse con il plug-in C#. Come il framework, così anche questi ambienti di sviluppo sono gratuiti. Ricordiamo che esistono anche ambienti come microsoft Visual Studio, che sono a pagamento e destinati ad utenti professionali. Per le nostre esigenze, #Dev è più che sufficiente, per chi non utilizza questo ambiente non dovrebbe avere grossi problemi per adattarli agli strumenti alternativi utilizzati.. Non dovreste avere problemi ad installarlo, l'unica cosa particolare che ricordo è questa: che in fase di installazione il programma chiede se volete installare un database interno per “aiutarvi” nello scrivere il codice e che comunque vi occuperà un po' di posto e voi dite si. cppcs_cap01_060819 - 1 1.3 Provare SharpDevelop. Ok, ormai avete già installato #Dev, provate a lanciarlo e cliccare sul menu nuovo progetto. Potete scegliere se fare un programma in C#, oppure in C++Net oppure in VB.Net. Scegliete ad esempio VB.Net e date nell'apposita riga bianca un nome del progetto a vostra scelta (ad esempio saluti) ottenete automaticamente il seguente codice: Imports System Module Main Sub Main() Console.WriteLine("Hello World!") End Sub End Module provate ora a cliccare il menu Debug – Esegui (oppure F5), il programma dovrebbe scrivervi il classico saluto. Provate ora a scrivere (dentro le virgolette) le parole ciao mondo al posto di Hello World e rilanciate il programma come avete fatto poco fa. Complimenti avete realizzato il vostro primo programma in ambiente dotNet!, anche se questo è un programma in VB.Net. Per fare il vostro primo programma in c# ripetete il passaggio: Nuovo progetto, scelta c# (a riga di comando), date un nome a vostra scelta e di nuovo F5 oppure Debug – Esegui. Oltre i due passi fondamentali descritti poco fa, relativi al framework e all'ambiente, occorrono altre due cose: 1) tutorial aggiuntivi, che potrete trovare nei motori di ricerca. Ad esempio nel già citato ABC# guida alla programmazione (di Pelleriti) sono spiegati molto bene tutti gli aspetti teorici, non vi preoccupate se non tutto quello che trovete sarà subito chiaro, sarà probabilmente più chiaro dopo aver fatto un po' di pratica. Se ad esempio avete avuto problemi nell'installazione dei programmi, cercatene i motivi nei motori di ricerca. Troverete molti altri tutorial, ma in genere sono in inglese. 2) Tempo e costanza continua. Se vi dedicherete senza costanza, difficilmente potrete fare grandi progressi. 1.4 Perchè C#? (confronto con VB) Prima di iniziare con la vera e propria programmazione c'è una cosa da chiarire. Perchè scegliere il C#? E perchè questo tutorial si occupa proprio di questo linguaggio? Penso che può essere utile scrivere qualche considerazione in particolare per coloro che hanno come esperienza di programmazione il Basic o il Visual Basic. Per chi non ha nessuna esperienza di programmazione invito a cercare nei motori di ricerca di internet (google, yahoo) qualche tutorial generico di programmazione. Non per tutti è indicato lo stesso linguaggio. Se ad esempio se non volete diventare programmatori, ma solo avere una idea di cosa sia la programmazione per aggiungere qualche macro a qualche programma che utilizzate, il linguaggio più utile da imparare è il classico Visual Basic (VBA come è chiamato nella suite Office, oppure OOBasic in Open Office. Ma se volete diventare veri programmatori dovete dedicarvi ad un vero linguaggio: tra le caratteristiche dei linguaggi considerate che: il PHP è il principale linguaggio in ambiente Web (internet) per la sua caratteristica di “mischiarsi” nell'HTML, il Java è il principale linguaggio per la programmazione ad “alto livello” per esempio cppcs_cap01_060819 - 2 in ambiente Enterprise (grandi aziende) per la sua scalabilità e portabilità. (Può essere utilizzato dai telefonini di ultima generazione ai grandissimi sistemi Server Unix, ed ha ottime librerie per la gestione nelle reti). E' sicuramente uno dei più utilizzati in ambiente universitario e di ricerca. Il C e il C++ non hanno bisogno di presentazioni. In generale un sistema operativo è realizzato con questo linguaggio e anche in diversi settori ( grafica, giochi di ultima generazione, programmi di gestione di hardware) è molto difficile trovare un linguaggio migliore. Come non è possibile dire qual'è la posata migliore tra il cucchiaio, la forchetta o il coltello, così non è possibile dire qual'è il linguaggio migliore, sarebbe bene conoscerli tutti e scegliere pensando a cosa si intende realizzare. La bella notizia è che tutti questi linguaggi che ho citato (c, c++, PHP, Java, Javascript, C#) derivano tutti dal C, e quindi sono molto simili Se imparate uno di questi linguaggi, con molta facilità potete imparare anche gli altri, se imparate un concetto relativo ad uno di questi linguaggi, l'avete imparato per tutti. Non fa parte di questa serie il Visual Basic. Per chiarire questo importante aspetto, anche se non vorrei dilungarmi più del necessario faccio soltanto 3 esempi molto molto banali che possono essere chiari anche per chi ha pochissime basi: 1) se volete aggiungere un commento al vostro codice potete scrivere cosi: // questa riga è commentata oppure così: /* queste due righe sono commentate */ questo è valido per c# e per tutti gli altri linguaggi che derivano dal C (C++, Java, PHP, Javascript...) Non per esempio nel linguaggio Pascal (* questo è un commento in Pascal *) NON per Visual Basic, o VB.NET in questo linguaggio dovete fare cosi: ' aggiungere un 'apostrofo all'inizio del commento oppure così: REM aggiungere la parola REM all'inizio della riga 2) I linguaggi di solito sono case-sensitive: cioè la variabile “Va” è diverso da “va” per tutti linguaggi... ma non per VB (e VB.Net) che non distingue le maiuscole dalle minuscole. 3) le parole chiavi e il modo con il quale sono utilizzate sono praticamente identiche nei linguaggi che chiamiamo derivati dal C, ad esempio : le parentesi graffe che dividono un blocco di istruzioni, oppure il ciclo for (i=1;i<10:i++) { blocco di istruzioni } oppure il costrutto switch e tante altre cose che vedremo ed utilizzeremo nel prossimo capitolo, lo potrete usare in C#, nel Javascript, in PHP, in Java, in Cpp facendo un semplice copia e incolla, ma non nel VB. Ad esempio bisognerà usare invece delle graffe: { // blocco di istruzion } la coppia Sub /End Sub, esempio: Sub ' blocco di istruzioni End Sub cppcs_cap01_060819 - 3 (notate anche che vengono utilizzati per la stessa cosa 10 tasti al posto di 2 tasti) for i=1 to 10 blocco di istruzioni next select invece che switch 4) forse una delle cose peggiori, (rimanendo sulle cose semplici) che c'è nel VB, è questa: la mancanza del punto e virgola come separazione delle istruzioni. Il punto e virgola che separa le istruzioni non è una caratteristica dei linguaggi simili al C, ma anche degli altri linguaggi, penso ad esempio al pascal. E' una cosa normale per un programmatore pensare al punto e virgola. Nel VB invece non c'è! invece del punto e virgola si va a capo per cambiare istruzione e si può mettere i due punti per mettere due istruzioni in una riga. Quindi finchè siamo sui programmi semplici non ci sono particolari problemi: esempio: Imports System Module Main Sub Main() Dim Va As Integer Va=2 Console.WriteLine(va) End Sub End Module può essere anche scritto così: Imports System Module Main Sub Main() Dim Va As Integer: Va=2 :Console.WriteLine(va) End Sub End Module immaginate però che nei programmi seri le righe possono essere anche più lunghe. Ad esempio in un libro la riga di un programma era tanto lunga che era stata scritta per forza in due righe, una allieva aveva ricopiato il programma dal libro pari pari ma non riusciva a capire perché gli dava un errore di sintassi. Imports System Module Main Sub Main() Dim Va As Integer Va=2 Console.WriteLine (va) End Sub End Module questo programma dà un Syntax Error in (va) immaginate che l'istruzione da scrivere in due righe sia più lunga, comunque il concetto dovreste averlo capito. La soluzione per scrivere in più righe c'è, occorre aggiungere a fine riga un trattino basso per dire di continuare l'istruzione nella riga seguente. Ma non cosi': cppcs_cap01_060819 - 4 Console.WriteLine_ (va) qui c'è comunque un errore del compilatore. Bisogna scriverlo così: Imports System Module Main Sub Main() Dim Va As Integer Va=2 Console.WriteLine _ (va) End Sub End Module cioè prima uno spazio e poi un trattino basso. Potrei fare moltissimi esempi, ma credo che sia opportuno terminare qui con questi esempi, anche perchè il libro è dedicato al c# e non al vb.. Voglio comunque aggiungere altre considerazione. Fortunatamente i linguaggi simili al Basic non sono molto utilizzati, e comunque lo sono sempre meno. Non so se vi capita di vedere qualche ricerca di personale con qualifica di programmatore, è molto difficile che sia richiesta la conoscenza di VB, sicuramente sono molto più richieste altre conoscenze. Ma allora perchè molte persone sceglievano VB rispetto ad altri linguaggi? La cosa “positiva” di VB (e anche in Delphi) era la facilità con cui si poteva gestire l'interfaccia utente. In pratica mettere un bottone o un menu era un gioco da bambini, rispetto alla realizzazione delle interfacce utenti in C. Anzi nel linguaggio vero è proprio non c'è la libreria che permette questo. Occorre collegare librerie esterne e sono cose abbastanza complesse. Nel Java esistono delle librerie per gestire l'interfaccia utente (AWT, Swing), comunque nel C# la gestione è molto, molto più semplice, ed è praticamente uguale al VB e al Delphi. 1.5 I linguaggi più utilizzati C'è un sito che indica la popolarità dei linguaggi di programmazione (ne sono elencati 100): www.tiobe.com/tcpi/htm in data odierna (8.7.06) al primo posto c'è il Java (21,8%) il linguaggio C al secondo (con 17,8%) c'è una sostanziale parità tra VB, PHP e C++ al 10% è interessante considerare la somma (C, C++, C#) al 33% Gli altri sono decisamente linguaggi di “nicchia” Pochi linguaggi superano 1% Python, Javascript, Delphi Pochi superano di poco il 0,5 % (PL/SQL, VFoxPro, Ada, Lisp/Scheme, Pascal, Ruby) Pochi superano il 0,4% (ActionScript, VB.Net, Cobol) cppcs_cap01_060819 - 5 Provate poi a fare una ricerca nel sito freshmeat.net (un sito che raccoglie software open source) e fare un browse nei linguaggi di programmazione. Vedere cioè quanti programmi sono stati realizzati con un particolare linguaggio. (Fino a poco tempo fa si poteva fare anche sul sito sourceforge, ora non più, comunque i risultati erano molto simili). Notate che i linguaggi più utilizzati sono i seguenti Freshmeat.net Linguaggio Progetti: C 8151 Java 4975 C++ 4279 PHP 3797 Perl 3622 Python 2400 Meno utilizzati invece questi: Javascript 772 Objective C 342 Ruby 319 C# 249 (anche perché è uno degli ultimi arrivati!) Assembly 247 Ancora meno utilizzati invece questi: Delphi 82 Pascal +OPascal 80 Visual Basic 39 Basic 32 Gambas (Basic) 1 1.6 La scelta del C# Il motivo della scelta di questo linguaggio è praticamente il seguente: imparando il C#, anche se, essendo nuovo, attualmente non è molto utilizzato, si imparano tutte quelle “regole” che sono valide per i linguaggi utilizzati oggi. Se imparate il C# potete anche facilmente passare agli altri linguaggi utilizzati oggi (C, Cpp. Java, Javascript, Php). E non avete sicuramente problemi a trovare tutorial per questi altri linguaggi, perchè sono presenti da più tempo. Anche se tra questi linguaggi, comunque il c# è il può semplice da programmare per il principiante. Vediamo ora come sono “simili” fra loro questi linguaggi: Ecco il programma “hello world” in c#: e in java, che abbiamo visto precedentemente in VB.NET: cppcs_cap01_060819 - 6 // questo è un programma in c# using System; namespace saluti { class MainClass { public static void Main(string[] args) { Console.WriteLine(“Hello World!”); } } } // questo è un programma in java public class saluti { public static void main(String[] args) { System.out.println(“Hello world!”); } } cppcs_cap01_060819 - 7