C# | Mise à jour 04-2005 |
|
C# et la plateforme .NET deviennent incontournables aujourd'hui. Le but de cette page est d'explorer certains des objets proposés et d'en montrer le fonctionnement. Les objets choisis permettent d'écrire de nombreuses applications courantes de gestion. La plateforme utilisée ici est SharpDevelop 1.0.3. Cet environnement gratuit permet de s'initier aisément à .NET avec les langages C# et VB.NET. Le C++ est volontairement ignoré pour l'instant.
Les langages proposés dans .NET sont équivalents en syntaxe et capacités. Les objets sont en effet standardisés dans le framework. Il n'est donc pas plus difficile d'écrire en C# qu'en VB. Après plusieurs expériences, il s'avère que C# est beaucoup plus rigoureux au niveau des définitions de types (variables, fonctions) que VB et de ce fait plus efficace en développement et mise au point. La presque parfaite compatibilité entre les deux langages est d'ailleurs très facile à vérifier : il suffit de convertir par l'option adéquate de SharpDev un source C# en VB et réciproquement. La plupart des exemples sont écrits en C#, on trouve cependant leur équivalent en VB et même sous VS2005, l'environnement gratuit de Microsoft. Bien sûr, l'arborescence du projet est dans ce cas différente mais le source des programmes est compatible. |
Les exemples ont été conçus pour Access 97. bd01vb et bd01c#
bdc01c# est la traduction de bd01vb bd02vb En mode console.
Une liste déroulante est chargée "automatiquement" par un dataset
econom Le programme effectue la création de courbes mathématiques aléatoires en exploitant les fonctions suivantes :
Le même exemple est écrit en vb.net et c# pour Sharpdev, et en vb.net pour VSE 2005.
menu01c#
file01c#
try01c# et try01vb Le but est de tester l'utilisation des blocs try/catch
1/0 provoque un erreur avec un integer, +infini avec un double (pas d'erreur dans ce cas).
clas01c#
clas02c# Projet identique au précédent mais la classe carre est incluse dans une dll séparée (projet bibli) Pour insérer la dll dans le projet :
Création d'une classe cl1 et d'une classe cl2, dérivée de cl1
usercontrol01c# Création d'un projet bibctl : graphe en camembert Le controle possède une propriété "valeur" qui, modifiée, redessine le graphe avec deux secteurs colorés. Le controle peut être redimensionné en phase de développement (evenement resize) Création d'un projet userctl01 : utilisation du graphe Inclusion de l'objet bibctl dans les WindowsForms. Lecture des lecteurs de disque et récupération des caractéristiques. Affichage de 2 graphes sur choix du lecteur dans une liste A voir : comment limiter l'affichage des propriétés héritées, de façon à ne voir que celles strictement nécessaires?
espacenomc# Le but est de tester les règles d'attribution des espaces de noms et leur utilisation Création de 4 classes identiques dans 4 espaces. Les méthodes, de meme nom, diffèrent par l'affichage du détail. Un espace est défini dans using, les autres par appel direct. Noms = e1, e2, e3.aff, e4 e4 contient deux espaces de noms a1 et a2
treeview01c# Le but du projet est l'utilisation d'un treeview pour gérer une base de données bibliothèque. L'application est composée de plusieurs formulaires qui se passent des paramètres.
Le passage de paramètres entre formulaires est réalisé en surchargeant la méthode Showdialog.
listview01c# Le projet permet de tester l'utilisation d'un listview et également d'une barre d'outils, dans laquelle on choisit le mode de présentation du listview. Objet listview
Projet registry01c# Le projet permet de manipuler la base de registre à travers l'utilisation de l'objet RegistryKey.
Un certain nombre de fonctionnalités n'ont pas été étudiées, sauf en lisant la documentation disponible.
Un comparatif des vitesses de traitement a été établi comme suit. Il est très incomplet mais donne une idée de la puissance brute des langages. Il consiste en l'exécution d'un nombre de boucles vides donné.
Ces mesures ont été établies sur un Céléron 1,3 Ghz avec 256 Mo de ram. |
SharpDevelop 1.0.3 build 1768 http://www.icsharpcode.net Visual Studio Express 2005 (Microsoft)
Fichier dotnetfx.exe sur le site Microsoft La version 1 convient à SharpDev, la version 2 à VSE 2005. |