Introduction
Qu’est-ce que C# ?
Le langage C# (prononcer « cé charpe ») est un langage de programmation fortement typé, orienté objet et multiplateforme. Pour démystifier cette définition, voyons ce que signifie chaque élément :
-
Fortement typé signifie, comme nous allons le voir au cours du second chapitre, que chaque élément est initialement déclaré comme étant d’un certain type, qui ne pourra pas être modifié durant toute sa durée de vie. Par exemple, si nous déclarons un entier pour y stocker une valeur quelconque, comme l’âge d’une personne, nous ne pourrons pas y stocker plus tard son nom à la place du nombre d’années, car c’est une chaîne de caractères et non un entier. Ce fonctionnement est très différent de celui de certains langages dits faiblement typés, comme JavaScript, par exemple.
-
Le développement orienté objet est une façon spécifique d’écrire du code informatique en suivant un paradigme précis. Nous étudierons en détail ce sujet au cours d’un chapitre de cet ouvrage. La seule chose qu’il est nécessaire de savoir pour l’instant est que le langage se classe dans cette catégorie. À titre d’information, il existe des langages dits « procéduraux » (comme le langage C) et des langages dits « fonctionnels » (comme le langage F#).
-
Multiplateforme car le langage en lui-même permet de réaliser des applications qui ne dépendent pas de la plateforme. En effet, C# est utilisé avec un ensemble d’outils, appelé framework .NET, qui offre au développeur la possibilité de créer des applications de typologies très diverses. En ce sens, il peut être exploité sur n’importe quel type d’environnement (PC, Mac, mobile, TV, Smart Watch, etc.).
Vous l’aurez compris, avec le langage C# et le framework .NET, vous avez la capacité de créer une application qui peut fonctionner en différents endroits avec un minimum d’efforts. Nous verrons dans cet ouvrage quelques exemples d’applications pouvant être réalisées avec C#. Il faut néanmoins retenir que, selon la destination que vous visez, il y aura des contraintes d’environnement. Par exemple, même si le langage reste le même et que les principes sont communs, vous ne pouvez pas créer un site internet de la même façon qu’une application pour Smart Watch. Cet ouvrage se concentre sur les bases du langage, de sorte que lorsque vous écrirez votre première application, en fonction de la destination retenue, vous pourrez profiter de ce que le langage a à offrir.
1. Que peut-on réaliser avec C# ?
Apprendre un langage de programmation est une décision qui doit être prise en fonction de plusieurs critères. Parmi ceux-ci, nous devrions logiquement rencontrer la question suivante : « Si je connais ce langage, qu’est-ce que je pourrais créer comme application ? »
Nous avons commencé à l’évoquer rapidement, mais voyons plus en détail ce qu’il nous est possible de créer avec le langage C#.
-
Des applications sous Microsoft Windows. Avec C#, vous disposez...
Préparer son environnement
Le langage seul n’est pas utile, car il se contente de définir une syntaxe. Ainsi, il faut définir une application cible pour l’exploiter à son plein potentiel. De ce fait, nous allons devoir choisir :
-
le type de projet à réaliser ;
-
les outils pour coder le projet précédemment choisi.
Bien que nous ayons vu qu’il existe une quantité assez impressionnante de types de projets, chacun possède ses propres particularités. Une problématique qui en découle est que, pour une première approche du langage, il n’est pas recommandé de se rajouter des contraintes liées à un environnement bien particulier.
De ce fait, la meilleure façon d’apprendre le C# est de travailler dans une petite application qui s’exécutera au sein d’une console, ce qui ressemble à une interface de ligne de commandes. Cela n’est certes pas très attrayant, mais permet de n’avoir aucune contrainte qui viendrait parasiter notre apprentissage nécessaire des bases.
Les fichiers de code source C# sont des fichiers texte à plat, nous pouvons donc les concevoir et les lire avec n’importe quel éditeur de texte (comme le bloc-notes sous Windows ou vi sous Linux, par exemple). Néanmoins, il existe des outils, appelés éditeurs de code, ou IDE (pour Integrated Development Environnement, ou, en français, environnement de développement intégré) qui offrent beaucoup d’avantages. Selon votre système d’exploitation, il est judicieux de choisir parmi les IDE suivants :
-
Sous Windows, vous pouvez développer votre application C# avec Visual Studio 2022, Visual Studio Code ou Rider.
-
Sous Linux ou macOS, vous pouvez développer votre application C# avec Visual Studio Code ou Rider.
Visual Studio Code étant l’outil présent sur toutes les plateformes et étant gratuit, nous l’utiliserons pour travailler dans cet ouvrage. Une fois que vous aurez assez d’expérience, vous pourrez essayer un autre éditeur, selon votre système d’exploitation, afin de comparer.
De façon assez logique, Visual Studio 2022 sous Windows (qui est l’éditeur historique) est l’outil le plus complet et plus puissant pour réaliser des applications C#. Cependant, cet ouvrage s’adressant à des développeurs de tous horizons, afin que chacun puisse expérimenter sur son système d’exploitation, le choix s’est porté naturellement sur Visual Studio Code.
1. Installation et configuration de Visual Studio Code
Afin d’installer Visual Studio Code sur votre ordinateur et de commencer à travailler, il faut vous rendre sur le site internet de l’outil : https://code.visualstudio.com/
Vous pouvez ensuite récupérer les instructions d’installation, qui sont un peu différentes selon votre système d’exploitation.
Normalement, le site internet de Visual Studio Code détecte par lui-même votre système d’exploitation et vous propose directement la version adaptée. Si ce n’est pas le cas, il suffit d’utiliser la liste déroulante afin de récupérer la bonne version.
Une fois l’environnement installé, vous devriez être en mesure de l’exécuter et avoir une fenêtre qui ressemble globalement à ceci (exception faite des icônes présentes dans la barre latérale à gauche, qui sont des extensions) :...
Comment fonctionne le C# ?
Un ordinateur ne peut pas comprendre directement le code source écrit en C#. Il s’agit d’un langage haut niveau qui aide le développeur à être plus productif et plus efficace, mais ce langage n’est pas directement exploitable en l’état. Nous allons écrire du code C# et nous allons également faire en sorte que ce code puisse être transformé en application.
Pour ce faire, il faut passer par deux processus : la compilation et l’exécution. Le code C#, vous l’aurez compris, n’est en soi qu’un moyen et non une fin. À cet effet, parmi les outils que nous avons précédemment installés, notamment ceux inclus dans le SDK, se trouvent les deux utilitaires permettant de transformer du code C# en application exécutable : le compilateur et le runtime.
La première étape consiste à transformer votre code C# dans un code de base, compréhensible non pas directement par votre ordinateur mais par une petite machine virtuelle : le CLR (Common Language Runtime). Le compilateur « réécrit » votre code C# dans un autre langage, qui s’appelle le code IL (Intermediate Language) et c’est ce dernier qui est exécuté par la machine virtuelle.
Même si vous ne devez pas forcément comprendre ni maîtriser totalement cet aspect pour écrire du code C#, cela permet d’énoncer un concept important : votre code C# sera transformé. En effet, le compilateur va effectuer un ensemble de modifications et d’améliorations, mais aussi de vérifications sur le code source. Si votre code C# ne compile pas, cela signifie que vous avez écrit du code qui ne peut pas être transformé et n’est donc pas exploitable. Il s’agit d’une première barrière de sécurité, qui n’évite pas tous les problèmes, mais qui permet de s’assurer que ce qui a été écrit est transformable.
Une fois que ce code est produit...