(2) Application simple basée sur des composants
L'application Hello World précédemment étudiée est évidemment peu représentative d'un programme réel, aussi simple soit-il. À présent, vous pouvez donc étudier une version du programme basé sur des composants, décrit en détails dans le didacticiel Introduction au développement avec le .NET Framework . Cette nouvelle version, disponible dans le sous-répertoire 2_Simple, utilise Client.exe pour appeler des méthodes exclusivement sur les types contenus dans un seul composant (Stringer.dll). Le code du composant Stringer (situé dans Stringer.cs) comprend plusieurs instructions importantes. La première spécifie l'emplacement des types contenus dans l'espace de noms global :
namespace org {...}
Vous devez à nouveau créer une classe :
public class Stringer {...}
La classe comporte alors un champ unique (StringsSet), un constructeur (Stringer, portant le même nom que la classe), une méthode définie (GetString) et une propriété (Count) avec l'accesseur de propriétés correspondant (get_Count) automatiquement créé par le compilateur :
private string[] StringsSet;
public Stringer() {...}
public string GetString(int index) {...}
public int Count {
get { return StringsSet.Length; }
}
En combinant le tout, un programme client peut fournir une référence complète à la méthode GetString, par exemple org.Stringer.GetString.
Un affichage Ildasm.exe du composant compilé indiquera donc tous les membres :
Le client inclut une seconde instruction using qui spécifie l'espace de noms pour permettre un accès facile aux types de Stringer.dll (le code est disponible dans Client.cs) :
using org;
La génération de fichiers dans ce projet est très simple. Avant tout, générez le composant Stringer.dll. Ensuite, générez Client.exe en important le composant à l'aide du nom du fichier qui contient le manifeste, plutôt que le nom de l'espace de noms (dans ce cas, org) :
csc /target:library ... Stringer.cs
csc /reference:Stringer.dll ... Client.cs
Tout comme dans le cas de Hello.exe, le nouveau fichier Client.exe contient des informations de manifeste sur lui-même, la bibliothèque de classes .NET Framework et les types qu'il utilise. Toutefois, il contient désormais des informations sur le composant Stringer et les types contenus référencés (dans ce cas, org.Stringer).
**Remarque **Le client utilise des assemblys privés. Les informations sur la version ne sont donc pas vérifiées.
L'illustration ci-dessous montre les informations de manifeste pour le composant **Stringer **:
Dans cet exemple précis, la DLL compose l'assembly entier. Toutefois, ce n'est pas toujours le cas. Dans certains scénarios de développement par exemple, il peut être nécessaire de combiner les DLL générées avec plusieurs langages dans un assembly unique. Il peut également être avantageux de combiner plusieurs DLL dans un seul assembly afin de tirer parti de règles de portée spéciale permettant l'accès aux méthodes parmi les composants tout en conservant un accès interne à l'assembly. Dans ce cas, vous pouvez utiliser l'utilitaire Assembly Linker (Al.exe) décrit dans Annexe B : Outils d'empaquetage et de déploiement pour personnaliser vos assemblys.
Voir aussi
Déploiement d'applications basées sur des composants | (3) Chemin d'accès pour les composants privés | (4) Composant partagé | (5) Versioning des composants | Résumé de l'empaquetage et du déploiement | Annexe A : Informations supplémentaires sur l'empaquetage et le déploiement | Annexe B : Outils d'empaquetage et de déploiement