Apportez votre aide…
Ceci est une ancienne révision du document !
C#
C# (CSharp) est un langage de programmation orientée objet, développé par Microsoft pour la plateforme .NET, dérivé de C, C++ et proche du Java.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
Installation de .NET
Il est possible d'installer:
- .NET avec seulement le Runtime pour exécuter des applications.
- .NET SDK nécessaire pour développer, et intégrant le Runtime.
Dans chaque cas, suivre cette documentation.
Pour vérifier la version du SDK installée, exécuter dans un terminal:
dotnet --list-sdks
Le résultat doit être similaire à:
6.0.406 [/usr/share/dotnet/sdk]
Pour vérifier la version du runtime installée:
dotnet --list-runtimes
Le résultat doit être similaire à:
Microsoft.AspNetCore.App 6.0.14 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.14 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Outils pour le développement
Un projet .NET est composé d'une multitude de fichiers. Il est donc conseillé d'utiliser un IDE tel que JetBrains Rider (propriétaire et payant), ou un éditeur avancé tel que Visual Studio Code, libre et gratuit.
Création d'une application console .NET sans IDE
- Créer un dossier
TestHelloWorld
dans le dossier utilisateur. - Ouvrir un terminal et se placer dans ce dossier.
- Exécuter la commande:
dotnet new console --use-program-main
Plusieurs fichiers vont être créés dont le fichier Program.cs
:
namespace TestHelloWorld; class Program { static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }
Pour lancer l'application, exécuter la commande:
dotnet run
Résultat:
Hello, World!
Création d'une application avec IHM dans Visual Studio Code
Pré-requis:
- Pour développer en C#, il faut installer l'extension C# (normalement, l'éditeur propose de l'installer dès qu'on ouvre un fichier C#). Pour installer des extensions dans Visual Studio Code, consulter cette documentation.
- Pour créer une IHM, il faut utiliser un framework tel que MAUI (pour Linux, développé par la communauté), Uno, AvaloniaUI ou GtkSharp. Dans l'exemple suivant, nous utiliserons GtkSharp.
Procéder ainsi: * Dans le terminal intégré de Visual Studio Code, exécuter cette commande pour installer le template:
dotnet new --install GtkSharp.Template.CSharp
* Vérifier que le template est bien installé:
dotnet new --list | grep gtkapp
Le résultat doit être:
Gtk Application gtkapp [C#] Gtk/GUI App
* Choisir Ouvrir un dossier
, et dans la fenêtre de dialogue, créer un dossier TestGUI
puis l'ouvrir. Ce nom de dossier deviendra le nom et l'espace de noms du projet.
* Dans le terminal intégré de Visual Studio Code, exécuter cette commande:
dotnet new gtkapp
Plusieurs fichiers vont se créer, dont MainWindow.glade
, qui est le fichier de description du formulaire, que l'on peut modifier avec Glade. Le fichier MainWindow.cs
montre comment intégrer un fichier .glade
dans un projet et comment gérer les événements:
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)."; } } }
Pour lancer l'application, exécuter la commande:
dotnet run
Le résultat sera une fenêtre avec le texte Hello World!
au centre et un bouton Click me!
en bas.
Publication
Pour le déploiement d'une application, .NET, permet de publier une version autonome incluant le runtime .NET ou une version plus légère sans le runtime (dans ce cas, l'utilisateur devra installer le runtime sur son PC).
Pour plus d'informations, consulter cette page.