Dimensione: 948
Commento: impostato il documento e inseriti i link per le risorse
|
Dimensione: 7948
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
#format wiki | |
Linea 2: | Linea 3: |
[[BR]] ||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Indice'''[[BR]][[TableOfContents]]|| |
<<BR>> <<Indice>> <<Informazioni(forum="https://forum.ubuntu-it.org/viewtopic.php?f=46&t=651540"; rilasci="20.04 22.04")>> |
Linea 7: | Linea 9: |
= Installazione = | '''C#''' (pronunciato «''C sharp''»), è un linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft per la piattaforma .NET (pronunciato «''dot net''»). Le specifiche del linguaggio sono state standardizzate dalla ECMA (European Computer Manufacturers Association).<<BR>> Si ispira ai linguaggi C/C++ e Java, ma rispetto a questi integra diverse nuove caratteristiche e miglioramenti: * tutto è un oggetto; * possibilità di utilizzare i puntatori, ma solo in particolari zone di codice definite ''unsafe''; * sono consentite solo conversioni implicite, dove non ci sia perdita di dati; * è possibile ereditare da una sola classe (come in Java); * overloading degli operatori; * presenza di ''namespace'' al posto dei ''package'' di Java. |
Linea 9: | Linea 18: |
= Semplici comandi = | Per programmare in '''C#''' su GNU/Linux è ancora disponibile il framework [[https://www.mono-project.com/|Mono]], un'implementazione libera e multi-piattaforma di Microsoft .NET. Tuttavia è generalmente considerato ormai superato, in quanto corrisponde al .NET Framework 4.x.<<BR>> La soluzione attualmente consigliata è '''[[https://docs.microsoft.com/it-it/dotnet/core/introduction|.NET]]''', piattaforma gratuita, multipiattaforma e open source. = Installazione di .NET = È possibile installare: * '''.NET''' con il solo '''Runtime''' per eseguire applicazioni * '''.NET [[https://it.wikipedia.org/wiki/Software_development_kit|SDK]]''' necessario per sviluppare e comprensivo del '''Runtime''' In entrambi i casi seguire le istruzioni di [[https://learn.microsoft.com/it-it/dotnet/core/install/linux-ubuntu|questa guida]]. {{{#!wiki note .NET 6 è incluso nei repository di Ubuntu 22.04 e 22.10 (chiamati «feed di gestione pacchetti» nella guida Microsoft). }}} Per verificare la versione SDK installata digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{ dotnet --list-sdks }}} L'output sarà simile al seguente {{{ 6.0.404 [/usr/share/dotnet/sdk] }}} Per verificare la versione del runtime installato:{{{ dotnet --list-runtimes }}} L'output sarà simile al seguente {{{ Microsoft.AspNetCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App] }}} = Strumenti per lo sviluppo = Un progetto .NET è composto da una molti file. Quindi si consiglia di utilizzare un IDE orientato allo sviluppo (ad esempio '''[[https://www.jetbrains.com/rider/|JetBrains Rider]]''', proprietario e a pagamento) oppure un editor avanzato (ad esempio '''[[Ufficio/EditorDiTesto/VisualStudioCode|VisualStudioCode]]''', con licenza libera e gratuita). = Creare un'applicazione console .NET senza utilizzare un IDE = 0. Creare una cartella `TestHelloWorld` nella propria '''Home'''. 0. Aprire un [[AmministrazioneSistema/Terminale|terminale]] e spostarsi in questa cartella. 0. Digitare il seguente comando: {{{ dotnet new console --use-program-main }}} In questo modo verranno creati diversi file. Il file di codice `Program.cs` conterrà le seguenti righe: {{{#!cplusplus namespace TestHelloWorld; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } } }}} 0. Eseguire il seguente comando: {{{ dotnet run }}} Il risultato sarà:{{{ Hello, World! }}} Per ulteriori informazioni consultare [[https://learn.microsoft.com/it-it/dotnet/core/tutorials/with-visual-studio-code?pivots=dotnet-6-0|questa pagina]]. = Creazione di un'applicazione con GUI in VisualStudioCode = Prerequisiti: * per sviluppare in C#, deve essere installata l'estensione '''[[https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp|C#]]''' (normalmente l'editor propone di installarla quando si apre un file C#); per installare le estensioni di '''!VisualStudioCode''' nel '''VS Code Extension Marketplace''' consultare [[https://code.visualstudio.com/docs/editor/extension-gallery|questa guida]]. * per creare una GUI si deve utilizzare un framework a scelta, come [[https://learn.microsoft.com/it-it/dotnet/maui/what-is-maui?view=net-maui-7.0|MAUI]] (per Linux viene sviluppato dalla comunità), [[https://platform.uno/|Uno]], [[https://avaloniaui.net/|AvaloniaUI]] o [[https://github.com/GtkSharp/GtkSharp|GtkSharp]]. Nell'esempio successivo verrà usato quest'ultimo. Seguire la procedura descritta di seguito. 0. Nel terminale di '''!VisualStudioCode''' eseguire il seguente comando per installare il template:{{{ dotnet new --install GtkSharp.Template.CSharp }}} 0. Controllare che il template sia presente con il seguente comando:{{{ dotnet new --list | grep gtkapp }}} Se tutto è corretto, l'output sarà il seguente:{{{ Gtk Application gtkapp [C#] Gtk/GUI App }}} 0. Selezionare dal menù principale '''''File → Apri cartella'''''. 0. Nella finestra di dialogo '''Apri cartella''' creare una cartella `TestGUI` e selezionarla. 0. Fare quindi clic su '''Aprire'''. Per impostazione predefinita il nome della cartella diventerà il nome e il ''namespace'' del progetto. 0. Nel terminale eseguire il seguente comando: {{{ dotnet new gtkapp }}} Verranno creati diversi file, tra cui `MainWindow.glade`, che è il file di descrizione del form da modificare successivamente con [[Programmazione/Python/Glade|Glade]]. Il file `MainWindow.cs` mostra come integrare i file `.glade` in un progetto e come gestire gli eventi: {{{#!cplusplus using System; using Gtk; using UI = Gtk.Builder.ObjectAttribute; namespace TestGUI { class MainWindow : Window { [UI] private Label _label1 = null; [UI] private Button _button1 = null; private int _counter; public MainWindow() : this(new Builder("MainWindow.glade")) { } private MainWindow(Builder builder) : base(builder.GetRawOwnedObject("MainWindow")) { builder.Autoconnect(this); DeleteEvent += Window_DeleteEvent; _button1.Clicked += Button1_Clicked; } private void Window_DeleteEvent(object sender, DeleteEventArgs a) { Application.Quit(); } private void Button1_Clicked(object sender, EventArgs a) { _counter++; _label1.Text = "Hello World! This button has been clicked " + _counter + " time(s)."; } } } }}} Per avviare l'applicazione, basterà eseguire nel terminale:{{{ dotnet run }}} Il risultato sarà una finestra con il testo «`Hello World!`» al centro e un pulsante «'''Click me!'''» in basso. = Pubblicazione = Per la distribuzione di una applicazione, '''.NET''' permette di pubblicare una versione standalone che include il runtime .NET o una versione più leggera senza il runtime (in questo caso l'utente dovrà installare il runtime sul suo PC). Per ulteriori informazioni consultare [[https://learn.microsoft.com/it-it/dotnet/core/deploying/|questa pagina]] |
Linea 13: | Linea 152: |
= Risorse = | Per gli utenti desiderosi di approfondimento, in [[/Listati|questa pagina]] vengono proposti degli esempi di programmi scritti in '''C#''' a difficoltà crescente. |
Linea 15: | Linea 154: |
* [http://www.mono-project.com/Main_Page] {en} [[BR]] Il sito web del progetto Mono |
= Ulteriori risorse = |
Linea 18: | Linea 156: |
* [http://www.csharphelp.com/] {en} [[BR]] Un sito con molti consigli su C# |
* [[https://learn.microsoft.com/it-it/dotnet/csharp/|Documentazione Microsoft per C#]] * [[https://learn.microsoft.com/it-it/dotnet/fundamentals/|Documentazione Microsoft .NET]] * [[http://www.csharphelp.com/|C# Help]] (consigli su C#) * [[http://www.c-sharpcorner.com/|C# Corner]] (consigli su C#) * [[http://visualcsharp.it/default.aspx|Comunità italiana di sviluppo con C# e .NET]] * [[http://www.mono-project.com/Main_Page|Sito ufficiale del progetto Mono]] |
Linea 21: | Linea 163: |
* [http://www.c-sharpcorner.com/] {en} [[BR]] Altro sito con molti consigli su C# * [http://www.gotdotnet.com/] {en} [[BR]] Comunità basata sull'utilizzo del framework .NET * [http://msdn2.microsoft.com/en-us/library/ms229335.aspx MSDN] {en} [[BR]] Il sito di Microsoft contenente tutta la documentazione necessaria per C# Per la documentazione relativa a '''mono''', è possibile utilizzare lo strumento '''monodoc''' da '''''Applicazioni -> Programmazione -> Monodoc'''''. |
---- CategoryProgrammazione |
Guida verificata con Ubuntu: 22.04
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
C# (pronunciato «C sharp»), è un linguaggio di programmazione orientato agli oggetti sviluppato da Microsoft per la piattaforma .NET (pronunciato «dot net»). Le specifiche del linguaggio sono state standardizzate dalla ECMA (European Computer Manufacturers Association).
Si ispira ai linguaggi C/C++ e Java, ma rispetto a questi integra diverse nuove caratteristiche e miglioramenti:
- tutto è un oggetto;
possibilità di utilizzare i puntatori, ma solo in particolari zone di codice definite unsafe;
- sono consentite solo conversioni implicite, dove non ci sia perdita di dati;
- è possibile ereditare da una sola classe (come in Java);
- overloading degli operatori;
presenza di namespace al posto dei package di Java.
Per programmare in C# su GNU/Linux è ancora disponibile il framework Mono, un'implementazione libera e multi-piattaforma di Microsoft .NET. Tuttavia è generalmente considerato ormai superato, in quanto corrisponde al .NET Framework 4.x.
La soluzione attualmente consigliata è .NET, piattaforma gratuita, multipiattaforma e open source.
Installazione di .NET
È possibile installare:
.NET con il solo Runtime per eseguire applicazioni
.NET SDK necessario per sviluppare e comprensivo del Runtime
In entrambi i casi seguire le istruzioni di questa guida.
.NET 6 è incluso nei repository di Ubuntu 22.04 e 22.10 (chiamati «feed di gestione pacchetti» nella guida Microsoft).
Per verificare la versione SDK installata digitare nel terminale il seguente comando:
dotnet --list-sdks
L'output sarà simile al seguente
6.0.404 [/usr/share/dotnet/sdk]
Per verificare la versione del runtime installato:
dotnet --list-runtimes
L'output sarà simile al seguente
Microsoft.AspNetCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Strumenti per lo sviluppo
Un progetto .NET è composto da una molti file. Quindi si consiglia di utilizzare un IDE orientato allo sviluppo (ad esempio JetBrains Rider, proprietario e a pagamento) oppure un editor avanzato (ad esempio VisualStudioCode, con licenza libera e gratuita).
Creare un'applicazione console .NET senza utilizzare un IDE
Creare una cartella TestHelloWorld nella propria Home.
Aprire un terminale e spostarsi in questa cartella.
Digitare il seguente comando:
dotnet new console --use-program-main
In questo modo verranno creati diversi file. Il file di codice Program.cs conterrà le seguenti righe:
Eseguire il seguente comando:
dotnet run
Il risultato sarà:
Hello, World!
Per ulteriori informazioni consultare questa pagina.
Creazione di un'applicazione con GUI in VisualStudioCode
Prerequisiti:
per sviluppare in C#, deve essere installata l'estensione C# (normalmente l'editor propone di installarla quando si apre un file C#); per installare le estensioni di VisualStudioCode nel VS Code Extension Marketplace consultare questa guida.
per creare una GUI si deve utilizzare un framework a scelta, come MAUI (per Linux viene sviluppato dalla comunità), Uno, AvaloniaUI o GtkSharp. Nell'esempio successivo verrà usato quest'ultimo.
Seguire la procedura descritta di seguito.
Nel terminale di VisualStudioCode eseguire il seguente comando per installare il template:
dotnet new --install GtkSharp.Template.CSharp
Controllare che il template sia presente con il seguente comando:
dotnet new --list | grep gtkapp
Se tutto è corretto, l'output sarà il seguente:
Gtk Application gtkapp [C#] Gtk/GUI App
Selezionare dal menù principale File → Apri cartella.
Nella finestra di dialogo Apri cartella creare una cartella TestGUI e selezionarla.
Fare quindi clic su Aprire. Per impostazione predefinita il nome della cartella diventerà il nome e il namespace del progetto.
Nel terminale eseguire il seguente comando:
dotnet new gtkapp
Verranno creati diversi file, tra cui MainWindow.glade, che è il file di descrizione del form da modificare successivamente con Glade. Il file MainWindow.cs mostra come integrare i file .glade in un progetto e come gestire gli eventi:
1 using System; 2 using Gtk; 3 using UI = Gtk.Builder.ObjectAttribute; 4 5 namespace TestGUI 6 { 7 class MainWindow : Window 8 { 9 [UI] private Label _label1 = null; 10 [UI] private Button _button1 = null; 11 12 private int _counter; 13 14 public MainWindow() : this(new Builder("MainWindow.glade")) { } 15 16 private MainWindow(Builder builder) : base(builder.GetRawOwnedObject("MainWindow")) 17 { 18 builder.Autoconnect(this); 19 20 DeleteEvent += Window_DeleteEvent; 21 _button1.Clicked += Button1_Clicked; 22 } 23 24 private void Window_DeleteEvent(object sender, DeleteEventArgs a) 25 { 26 Application.Quit(); 27 } 28 29 private void Button1_Clicked(object sender, EventArgs a) 30 { 31 _counter++; 32 _label1.Text = "Hello World! This button has been clicked " + _counter + " time(s)."; 33 } 34 } 35 }
Per avviare l'applicazione, basterà eseguire nel terminale:
dotnet run
Il risultato sarà una finestra con il testo «Hello World!» al centro e un pulsante «Click me!» in basso.
Pubblicazione
Per la distribuzione di una applicazione, .NET permette di pubblicare una versione standalone che include il runtime .NET o una versione più leggera senza il runtime (in questo caso l'utente dovrà installare il runtime sul suo PC).
Per ulteriori informazioni consultare questa pagina
Esempi
Per gli utenti desiderosi di approfondimento, in questa pagina vengono proposti degli esempi di programmi scritti in C# a difficoltà crescente.