TUTORIELS 
Les bases du C#
Proche du C/C+ et de Java, le C# (prononcer C sharp) est une des briques de la nouvelle architecture .Net de Microsoft. Initiation.  (4 octobre 2001)
 

Dérivé du C/C++, dont il conserve la syntaxe générale, le C# est un langage orienté-objet qui se veut concurrent du Java, et permettant, au sein de la plateforme de développement Microsoft.Net, de concevoir des applications interopérables tournées vers le web.

Trois notions clefs : CLR, CLS et MSIL

Un des intérêts de l'architecture .Net est la mise en commun de services et de classes utilisables par les langages objets. Parmi ces derniers, le C# occupe aujourd'hui une place d'honneur : il est pour l'instant le seul à fournir une interface avec la quasi-totalité des fonctionnalités du "framework .Net".

Si cette interopérabilité entre langages est possible, c'est grâce au CLS (Common Language Specification), sorte de cahier des charges imposé aux compilateurs .Net. Ainsi, chaque langage objet .Net, engendre, après compilation, le même fichier MSIL (Microsoft Intermediate Language). On peut donc percevoir les langages objet .Net comme des interfaces syntaxiques vers des bibliothèques de classes.

En d'autres termes, ces langages (plus d'une vingtaine dont VB.net, Visual C++, Perl.net, VBScript, JScript, Cobol.net...) sont tous compilés sous la forme d'un binaire indépendant du système, le MSIL. Le CLR (Common Language Runtime) entre alors en jeu. C'est une sorte de machine virtuelle (comparable au JVM par exemple) qui traduit le MSIL dans le langage machine du système concerné, par l'intermédiaire d'un compilateur JIT (Just In Time). Par ailleurs, gestion des ressources et sécurité sont aussi du ressort du CLR.

Hello World !

Pour résumer, sous l'environnement de développement .Net, le développeur est libre d'utiliser le langage de son choix, puisqu'au final, après compilation, tous engendreront le même fichier MSIL. Notre choix se porte aujourd'hui sur le C#, voyons à quoi ressemble le fameux "Hello World" sous ce langage.

Après avoir installé le kit de développement Microsoft (.Net Framework Beta 2, 123 Mb) et vous être éventuellement procuré un éditeur compatible C# (utile pour la coloration syntaxique et la complétion), profitez de ce mythique exemple :

class HelloWorld
{
     public static void Main()
     {
          System.Console.WriteLine("Hello World !");
     }
}

Sauvegardez le source dans un fichier nommé par exemple "HelloWord.cs".
Il est temps de compiler : Si votre éditeur ne dispose pas d'une "compilation intégrée", passez par la ligne de commande. A l'invite, et dans le répertoire qui contient "HelloWord.cs", tapez :

csc HelloWord.cs

Si tout s'est bien passé, un fichier "HelloWord.exe" a été créé. Vérifiez que votre première application C# fonctionne en tapant tout simplement "HelloWord" dans la ligne de commande.

Très simple, ce fichier "HelloWord.cs" permet néanmoins de généraliser au moins un principe commun à tous les programmes C#. Toute application C# doit en effet contenir, dans une de ses classes, et peu importe laquelle, une méthode Main. Décrivons là plus précisemment : "public static void Main()" signifie d'une part que cette méthode est publique, c'est à dire que tout le monde peut l'appeler, et d'autre part que cette méthode est globale, il est donc inutile d'instancier la classe HelloWorld pour l'appeler.

Les espaces de noms

Les espaces de noms (que l'on retrouve en XML) permettent de régler des conflits qui surviennent parfois dans un contexte de travail collaboratif. Il s'agit d'éviter à deux classes de porter le même nom. En effet, en l'absence de charte de nommage particulièrement étoffée, il arrive que le développeur, soumis à lui-même, adopte sa propre syntaxe. De même, travailler avec des programmeurs tiers dont vous ignorez tout des règles de nommage, augmente encore le risque de conflits.
Reprenons notre routine d'affichage "HelloWorld" :

System.Console.WriteLine("Hello World !");

Ici "System" constitue un espace de noms, suivi de l'objet "Console" et de la méthode "WriteLine()". Si vous rédigez vous-mêmes vos espaces de noms, Microsoft recommande d'utiliser comme espace de noms de premier niveau le nom de votre entreprise, puis par exemple le nom du logiciel que vous développez. Ceci donne par exemple "Microsoft.Win32."

Si à la suite de l'installation d'espaces de noms, vos libellés sont trop contraignants à écrire, la directive "using" permet de contourner cet allongement syntaxique. Notre routine d'affichage était :

System.Console.WriteLine("Hello World !");

Elle devient :

using System;
class HelloWorld
{
     public static void Main()
     {
          Console.WriteLine("Hello World !");
     }
}

La routine d'affichage est ainsi un peu moins fastidieuse à écrire.

D'autres articles suivront pour compléter cette brève introduction au C#. Dans l'intervalle, vous pouvez consulter les articles suivants pour en savoir plus sur la plate-forme .NET:

Développement e-business: quel langage choisir? (19/07)
Microsoft décide d'ouvrir le code de C# et CLI (05/07)
.NET: la dernière ligne droite (21/06)
ASP/ASP+: les différences (15/03)

 
[ Arnaud Gadal, JDNet
 
Accueil | Haut de page