|
Dimensione: 2688
Commento:
|
Dimensione: 4209
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 4: | Linea 4: |
| <<Include(NuoviStrumentiWiki/PaginaDiProva)>> | |
| Linea 6: | Linea 5: |
| <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=651540"; rilasci="20.04 22.04")>> | |
| Linea 7: | Linea 7: |
| = Scripting in C# con dotnet-script = | = Introduzione = |
| Linea 9: | Linea 9: |
| Creare un progetto '''.NET''' per compiti piccoli e semplici è un po' eccessivo. '''dotnet-script''' semplifica le cose. Permette di eseguire il codice '''C#''' come un singolo file di script. Nessun metodo main, nessun `.csproj` e compilazione trasparente. | Questa guida spiega come creare [[Programmazione/Script|script]] in '''C#''' con lo strumento '''dotnet-script'''. |
| Linea 11: | Linea 11: |
| Per installare '''dotnet-script''' digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ | Spesso non è conveniente creare un progetto per '''.NET''' per compiti piccoli e/o semplici. In questi casi può risultare utile '''dotnet-script''' che permette di eseguire il codice '''C#''' come un singolo file di script, senza nessun metodo main, nessun `.csproj` e compilazione trasparente. = Installazione = 0. Se non presente, installare '''.NET SDK''', come indicato in [[https://learn.microsoft.com/it-it/dotnet/core/install/linux-ubuntu|questa guida]]. 0. Per installare '''dotnet-script''' digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ |
| Linea 14: | Linea 20: |
| Linea 17: | Linea 24: |
| Linea 18: | Linea 26: |
| Linea 19: | Linea 28: |
| Linea 22: | Linea 32: |
| Verano creati 2 file: `main.csx` e `omnisharp.json`. | Verrano creati due file: `omnisharp.json` e `main.csx`. |
| Linea 24: | Linea 34: |
| * `main.csx` è strutturato in modo da contenere un semplice esempio di `Hello World` funzionante. Contenuto{{{#!cplusplus | * `main.csx` è strutturato in modo da contenere un semplice esempio di `Hello World` funzionante. Il contenuto sarà simile al seguente:{{{#!cplusplus |
| Linea 26: | Linea 36: |
| Linea 29: | Linea 38: |
| 0. Verificare che lo script funzioni eseguendo il seguente comando:{{{ | 0. Su Linux gli script possono essere eseguiti direttamente come se fossero degli eseguibili. Verificare che lo script funzioni eseguendo il seguente comando:{{{ |
| Linea 32: | Linea 42: |
| L'output deve essere:{{{ | L'output dovrà essere:{{{ |
| Linea 36: | Linea 46: |
| 0. Modificare il file `main.csx` copiando e incollando il seguente contenuto:{{{#!cplusplus | 0. Di seguito un esempio di come sfruttare le potenzialità di '''.NET''', creando un array di persone (`nome` ed `età`). Allo script verrà passato un parametro, memorizzato nella variabile `Args` e recuperato nella variabile `nEta`. Quindi lo script filtrerà le persone che hanno meno di `nEta` anni, ordinate per età.<<BR>> Modificare il file `main.csx` copiando e incollando il seguente contenuto:{{{#!cplusplus |
| Linea 74: | Linea 85: |
| 0. Eseguire lo script con il seguente comando:{{{ ./main.csx 50 }}} L'output sarà:{{{ Hanno meno di 50 anni Lorenzo Età: 18 Federico Età: 20 Leonardo Età: 25 Roberto Età: 28 Silvia Età: 32 Gabriele Età: 39 Mattia Età: 41 }}} |
|
| Linea 75: | Linea 100: |
| == Modo REPL (Read-Evaluate-Print-Loop) == | |
| Linea 76: | Linea 102: |
| LAVORO IN CORSO | Il modo '''REPL''' ("modo interattivo") viene avviato eseguendo '''dotnet-script''' senza alcun argomento. |
| Linea 78: | Linea 104: |
| Il modo interattivo consente di fornire singoli blocchi di codice '''C#''' e di eseguirli non appena si preme '''Invio''':{{{ ~$ dotnet script > var x = 1; > x+x 2 }}} |
|
| Linea 79: | Linea 111: |
| Per maggiori informazioni consultare il [[https://github.com/dotnet-script/dotnet-script|sito ufficiale]]. | Per maggiori informazioni consultare la [[https://github.com/dotnet-script/dotnet-script|pagina GitHub]] del progetto. = Ulteriori risorse = * [[Programmazione/CSharp|Guida C#]] |
| Linea 82: | Linea 118: |
| CategoryNuoviDocumenti | CategoryProgrammazione |
Guida verificata con Ubuntu: 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa guida spiega come creare script in C# con lo strumento dotnet-script.
Spesso non è conveniente creare un progetto per .NET per compiti piccoli e/o semplici. In questi casi può risultare utile dotnet-script che permette di eseguire il codice C# come un singolo file di script, senza nessun metodo main, nessun .csproj e compilazione trasparente.
Installazione
Se non presente, installare .NET SDK, come indicato in questa guida.
Per installare dotnet-script digitare nel terminale il seguente comando:
dotnet tool install -g dotnet-script
Creazione di uno script
dotnet-script è dotato di un comando di init per generare un semplice script.
Creare una cartella DotnetScript nella propria Home.
Aprire un terminale e spostarsi in questa cartella.
Digitare il seguente comando:
dotnet script init
Verrano creati due file: omnisharp.json e main.csx.
omnisharp.json contiene le impostazioni dello script, come il framework di destinazione e i riferimenti a nuget consentiti.
main.csx è strutturato in modo da contenere un semplice esempio di Hello World funzionante. Il contenuto sarà simile al seguente:
Su Linux gli script possono essere eseguiti direttamente come se fossero degli eseguibili. Verificare che lo script funzioni eseguendo il seguente comando:
./main.csx
L'output dovrà essere:
Hello World!
Di seguito un esempio di come sfruttare le potenzialità di .NET, creando un array di persone (nome ed età). Allo script verrà passato un parametro, memorizzato nella variabile Args e recuperato nella variabile nEta. Quindi lo script filtrerà le persone che hanno meno di nEta anni, ordinate per età.
Modificare il file main.csx copiando e incollando il seguente contenuto:1 #!/usr/bin/env dotnet-script 2 3 using System; 4 using System.Data; 5 6 Int16 nEta = 0; 7 if (Args.Count > 0) 8 nEta = Convert.ToInt16(Args[0]); 9 else 10 { 11 Console.WriteLine("L'età non è stata specificata"); 12 return; 13 } 14 DataTable dtable = new DataTable(); 15 dtable.Columns.Add("Nome", typeof(string)); 16 dtable.Columns.Add("Eta", typeof(Int16)); 17 dtable.Rows.Add("Silvia", 32); 18 dtable.Rows.Add("Roberto", 28); 19 dtable.Rows.Add("Leonardo", 25); 20 dtable.Rows.Add("Francesco", 59); 21 dtable.Rows.Add("Alessandro", 55); 22 dtable.Rows.Add("Lorenzo", 18); 23 dtable.Rows.Add("Mattia", 41); 24 dtable.Rows.Add("Tommaso", 62); 25 dtable.Rows.Add("Gabriele", 39); 26 dtable.Rows.Add("Federico", 20); 27 int n=0; 28 DataRow[] dtRows; 29 dtRows = dtable.Select("Eta<" + nEta, "Eta ASC"); 30 string strResult; 31 Console.WriteLine("Hanno meno di " + nEta + " anni"); 32 foreach(DataRow row in dtRows) 33 { 34 strResult = string.Format("{0, -15}Età: {1}", row["Nome"], row["Eta"]); 35 Console.WriteLine(strResult); 36 }
Eseguire lo script con il seguente comando:
./main.csx 50
L'output sarà:
Hanno meno di 50 anni Lorenzo Età: 18 Federico Età: 20 Leonardo Età: 25 Roberto Età: 28 Silvia Età: 32 Gabriele Età: 39 Mattia Età: 41
Modo REPL (Read-Evaluate-Print-Loop)
Il modo REPL ("modo interattivo") viene avviato eseguendo dotnet-script senza alcun argomento.
Il modo interattivo consente di fornire singoli blocchi di codice C# e di eseguirli non appena si preme Invio:
~$ dotnet script > var x = 1; > x+x 2
Per maggiori informazioni consultare la pagina GitHub del progetto.
