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)
|