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