Infragistics NetAdvantage for Windows Forms : Stylez vos applications !

L’interface utilisateur d’une application informatique n’est qu’un composant parmi tant d’autres : ce n’est la que la partie visible de l’iceberg. Pourtant, pour la majorité des utilisateurs finaux, l’application est confondue avec son interface, et le sort d’un effort de développement considérable est conditionné par la qualité de l’interface utilisateur qu’il propose.

Un extrait de cet article a été publié dans « PROgrammez, le magazine des développeurs » dans son numéro de Février 2009 sous le titre: Comment les composants améliorent l’interface utilisateur!
Les sources de l’article publié sont disponibles sur le site du Magazine (Version PDF).
Tout doit être simple pour l’utilisateur, l’interface doit être cohérente et intuitive, attrayante, personnalisable… Autant de challenges à relever pour les concepteurs d’applications, les graphistes et les développeurs.
Une des solutions qui s’impose est l’utilisation d’une bibliothèque de contrôles utilisateurs commerciale offrant des solutions puissantes et simples à mettre en œuvre pour la couche présentation de nos applications.

Heureusement que l’offre commerciale pour le Framework Microsoft .Net est bien étoffée, avec une concurrence rude dont les plus notables acteurs (à mon avis) sont ‘Infragistics’, ‘Developer Express’, et ‘Telerik’. Ces éditeurs de composants d’interface utilisateur travaillent en étroite collaboration avec Microsoft pour fournir des suites de composants facilitant la création de la couche présentation de nouvelle génération.

Reste à choisir la solution la plus adaptée à notre besoin. Et je dois avouer que ce choix est souvent délicat, vue la qualité des offres présentes et la diversité des facteurs qui entrent en compte dans la décision.
Voici quelques facteurs à prendre en compte lors de votre choix :

  • L’effort nécessaire à l’intégration de la bibliothèque de contrôles avec votre code (s’il existe).
  • La facilité de prise en main des composants. La courbe d’apprentissage d’un nouvel outil et son adoption pour vos développeurs est un facteur critique.
  • La qualité de la documentation fournie et la disponibilité d’une équipe de support qualifiée.
  • L’apport communautaire à l’utilisation de cette bibliothèque (Forums, Blogs, exemples de codes, projets de démonstration).
  • Intégration avec les Framework Open Source (Entreprise Library, CAB, SCSF, WCSF, ASP.NET MVC) de Microsoft et les projets associés aux bonnes pratiques (Si vous les utilisez).
  • Prix des différents modes de licences (Achat ou souscription annuelle).

J’ai utilisé plusieurs versions de la bibliothèque Infragistics (ma première expérience date de la fin de l’année 2004) pour réaliser différent types de projets (Web, Client Windows, CAB…) et je dois dire que l’apport d’une telle bibliothèque est considérable si on prend le temps de bien connaître sa logique de fonctionnement et d’explorer sa large gamme d’outils. Une des raisons principales du choix de Infragistics dans mon dernier projet est le ‘CAB Extensibility Kit’ de Infragistics qui étend les fonctionnalités du Framework open source CAB de Microsoft.
Infragistics est un des principaux acteurs dans le développement de composants d’interface utilisateur en .Net (Windows, web, WPF, Silverlight). Les bibliothèques d’Infragistics sont largement utilisées par les développeurs pour accroître l’attractivité et étendre les fonctionnalités de leurs applications. Infragistics offre une panoplie de contrôles utilisateurs et de nombreux outils permettant notamment de gérer les apparences (Vista, Office 2007, 2003, Visual Studio 2005 ,2008). Cela peut fonctionner de façon transparente, par une simple configuration de la valeur d’une propriété ou bien avec l’utilisation du code.
A titre d’exemple je vais introduire un cas simple d’utilisation de la fonctionnalité de gestion d’apparences nommée ApplicationStyling de la bibliothèque NetAdvantage for WinForms d’Infragistics.
La fonctionnalité ApplicationStyling pour les applications Windows s’apparente à l’utilisation de fichiers de styles CSS pour les applications Web. Cette technologie permet de définir l’apparence de votre application dans des libraires de style et d’offrir plusieurs choix d’apparence pour vos utilisateurs (Il faut noter que ces styles ne s’appliquent qu’aux contrôles de la bibliothèque Infragistics).
Voici quelques captures d’écrans de notre application finie :

La liste déroulante libellée ‘Style Name’ présente à l’utilisateur les styles qu’il peut appliquer à son application (Rappelons que tous les contrôles utilisateurs –UltraLabel, UltraTextEditor, UltraComboEditor, UltraGroupBox et UltraButton– utilisés dans ce formulaires appartiennent à la suite NetAdvantage for WinForms 2008 v1).
Pour atteindre ce résultat le voici le code utilisé :
Dans le gestionnaire d’évènement du chargement (Load) de notre unique formulaire ‘FormMain’ ajoutons l’appel à la méthode ‘FillStyleList’ qui va charger la liste des styles disponibles :

private void FormMain_Load(object sender, EventArgs e)
{
	FillStyleList();
}

Voici le corps de la méthode ‘FillStyleList’ :

private void FillStyleList()
{
	cmbStyles.Items.Clear();
	cmbStyles.Items.Add(String.Empty, String.Empty);

	DirectoryInfo stylesFolder
		= new DirectoryInfo(
			Path.Combine(Application.StartupPath, "Styles"));

	FileInfo[] styleFiles = stylesFolder.GetFiles(”*.isl”);

	foreach (FileInfo styleFile in styleFiles)
	{
		cmbStyles.Items.Add(styleFile, styleFile.Name);
	}
}

Cette méthode cherche les fichiers de styles (d’extension ‘*.isl’) dans le sous dossier ‘Styles’ du dossier d’exécution de notre application, puis alimente l’UltraComboEditor ‘cmbStyles’.
Enfin dans le gestionnaire de l’évènement ‘ValueChanged’ de l’UltraComboEditor ‘cmbStyles’ il nous suffit de charger le style sélectionné en faisant appel au composant ‘StyleManager’ responsable de l’habillage de tous nos contrôles Infragistics avec le style demandé :

private void cmbStyles_ValueChanged(object sender, EventArgs e)
{
	if (cmbStyles.Value != null)
	{
		FileInfo styleFile = cmbStyles.Value as FileInfo;
		if (styleFile != null)
		{
			StyleManager.Load(styleFile.FullName);
		}
	}
}

Voici une capture d’écran de l’explorateur de solutions Visual Studio 2008 chargé avec notre projet :

Enfin il est important de noter que la plateforme Microsoft .Net Framework 3.5 SP1 offre en standard des fonctionnalités avancées pour créer des interfaces utilisateur pour tout type d’applications : Windows (Windows Forms et Windows Presentation Foundation), Web (ASP.Net, AJAX) et clients riches (Silverlight) et que Visual Studio 2008 rend cette tâche d’autant plus facile avec des concepteurs de formulaires et des assistants contextuels intelligents.

Codes sources: