Présentation du pack NetAdvantage 2005 Volume 3

La société Infragistics propose depuis des années, des packs de composants pour professionels, afin de rendre les applications plus conviaviales et surtout plus fonctionnelles. Le pack NetAdvantage en fait partie et sa mouture .Net version 3 est destinée aux applications utilisant le Microsoft Framework .Net 2.0. Elle est de plus pleinement compatible avec Visual Studio 2005.
Afin de vous donner un avis objectif de développeurs créant des programmes personnels et professionnels, nous vous proposerons une présentation succinte des composants qui nous ont le plus étonnés, puis nous finirons par une conclusion générale sur le pack de composants NetAdvantage 2005 Volume 3.

1. Les composants WebForms

Jusqu'à maintenant, les composants Winforms pouvaient se targuer d'être bien plus nombreux que les composants Webforms et il arrivait souvent que leurs fonctionnalités ne correspondent pas aux attentes des développeurs.
Cette ère est en grande partie révolue grâce aux très nombreux composants proposés par le package NetAdvantage.

1.1. Les contrôles calendriers

Nous commencerons par les contrôles qui touchent à la gestion de dates: les calendriers.
Nous n'avions jusqu'alors que l'unique contrôle WebCalendar qui est maintenant remplacé par le composant WebCalendar(beaucoup d'imagination dans le nom :)) du pack Netadvantage. Ce dernier est une super évolution du WebCalendar standard.

Nous allons donc voir quelques unes de ses fonctionnalités.
La première chose à remarquer est sa complète personnalisation d'affichage; chaque élément, chaque titre, chaque sous-composant faisant partie du contrôle peut être personnalisé pour donner une infinités d'affichages particuliers pour obtenir le calendrier qui s'intègrera parfaitement dans votre application web.

Image non disponible

Il vous est également possible de définir un style particulier pour les jours de week-end (pour mieux les mettre en évidence) ou faire de même pour les jours des mois suivants et précédents

Image non disponible

Pour continuer sur la personnalisation des jours, sachez que ce composant peut être facilement amélioré à l'aide de javascript ou de code .Net: vous pourrez ainsi lui ajouter des fonctionnalités que vous ne pouviez espérer ou imaginer.
Vous pourriez notamment lui ajouter des jours personnalisés pour lesquels il est possible de changer la couleur du jour ou encore leur ajouter une icône. Très facile alors d'en faire un vrai planning:

Image non disponible

Bien sûr, vous voudrez peut-être rendre votre calendrier plus interractif, auquel cas, vous pourriez par exemple, lui adjoindre un menu contextuel permettant une multitude d'actions que vous définiriez comme bon vous semblera:

Image non disponible

Passons maintenant à un autre type de contrôle très demandé : le planning ou calendrier "à la outlook". Si le premier composant WebControl était utile pour définir une date particulière ou une plage de dates, il ne convenait pas parfaitement lorsqu'il s'agissait de planning, avec des tâches ou des évènements donnés. C'est alors qu'apparaît pour nous, le contrôle WebMonthView qui permet d'afficher un planning sur tout le mois. Mais comme-celui ne pouvait convenir à tout le monde, Infragistics nous a alors concocté un contrôle pour la semaine et un contrôle pour la journée. Chacun de ces contrôles peut même être personnalisé pour n'afficher qu'un certain nombre de jours ou que certains fuseaux horaires:

Image non disponible

Mais il est surtout possible d'y intégrer des évènements ou rendez-vous:

Image non disponible

Pour finir, un mini composant qui, dans de nombreux cas pourra vous être utile: le contrôle WebDateChooser. Celui-ci s'apparente au DateTimePicker (Winform) mais pour les WebForm. Il a l'avantage de pouvoir être placé partout, aussi bien dans un formulaire que dans un datagrid:

Image non disponible

1.2. Les composants de navigation

Ce qui peut être le point faible comme le point fort des sites, se trouve être leur facilité de navigation. L'interface doit être la plus user-friendly possible et proposer l'accès aux fonctionnalités le plus simplement possible.
En utilisant le pack NetAvantage 2005, vous aurez à votre disposition une boite à outils de composants vous permettant d'accroitre considérablement la navigation de votre site web:

Vous avez tout d'abord les menus de navigation. Ceux-ci, sont représentés ici par le composant UltraWebMenu. Celui-ci peut alors être affiché par un menu horizontal ou vertical ou encore par un popup menu, tout simplement en modifiant l'une de ses propriétés. Il est bien entendu possible de personnaliser les menus à l'infini.

Image non disponible

Viennent alors les composants latéraux parmi lesquels vous trouverez le composant UltraListBar qui peut passer de la listbar (à la outlook) à une explorerBar (à la Windows Explorer) pour donner différents affichages qui correspondront sûrement à vos attentes.

Image non disponible Image non disponible Image non disponible

Restent enfin les barres d'outils, qui comme vous allez le voir, permettent de donner l'impression de vraiment se trouver dans une appli winform:

Image non disponible
Image non disponible

Maintenant que je vous ai montré quelques unes des nombreuses possibilités d'affichage, il est tant que je vous explique les avantages que ceux-ci vous apporteront. Nous pouvons tout d'abord noter le fait que ces composants s'intègreront parfaitement quelque soit le thème de votre application web quelque soit son design et surtout que ceux-ci pourront s'y insérer fonctionnellement, sans aucun problème. Il est également important de remarquer qu'ils sont totalement personnalisables et qu'il vous sera possible de leur donner l'aspect voulu, comme le montre l'exemple suivant:

Image non disponible

Pour finir cette partie navigation, et pour montrer une autre possibilité de navigation, j'aimerai vous faire découvrir un composant connu de tous dans son utilisation de tous les jours et qui saurait faire le plaisir de nombreux programmeurs; j'ai nommé, le WebTab, honorable remplaçant du tabcontrol winform.
Celui-ci n'est pas une simple simultaion d'onglets réalisée css ou autre, mais un "vrai" tabcontrol. Vous pouvez disposer plusieurs controles dans les différents tabpages et changer l'affichage sans recharger la page. Ce composant est bien utile pour les applications web qui avaient l'obligation de créer un grand nombre de pages.
Voic un exemple d'utilisation du tabcontrol:

Image non disponible

1.3. Les formulaires

Vous le savez tout comme moi, la plupart des applications et d'autant plus les applications web, possèdent un certain nombre de formulaires, au sens propre du terme, c'est-à-dire des agencements de champs permettant la saisie d'informations.
Les formulaires sont présentés de diverses manières avec de plus en plus de fonctionnalités, mais la difficulté qu'ils rencontrent, se trouve être la gestion d'erreur de saisie par l'utilisateur humain.

C'est pour cela que le pack NetAdvantage met à notre disposition une panoplie de composants permettant soit la saisie facile, soit le contrôle d'erreur automatique.

Pour la gestion automatique des erreurs, nous avons ce que nous pouvons appeler des MaskedTextbox.
Ceux-ci ont chacun une tâche bien définie. Vous aurez donc des WebTextEdit, des WebNumericEdit, WebCurrencyEdit, WebDateTimeEdit, WebPercentEdit et des WebMasdEdit avec à chaque fois des "filtres" personnalisables.

Image non disponible

Ou alors, il est possible de jouer avec différents webpanels pour afficher tels ou tels composants :

Image non disponible

1.4. L'affichage de données

Que l'objectif d'un site soit informatif ou décisionnel, il arrive constamment que celui doive afficher un certain nombre de données, parfois de simples chaines de caractères, ou parfois, toute une suite de données ordonnées. Ces données doivent alors être présentées à l'utilisateur pour qu'il puisse les interpréter de la façon la plus simple possible.
Nous allons maintenant voir les deux principaux moyens pour réaliser cette tâche à l'aide des composants Infragistics.

La deuxième solution, bien plus visuelle et plus "parlante", consiste en l'utilisation d'un graphique. L'utilisation de graphique est extrêmement simplifiée grâce à l'intégration d'un assistant (wizard) permettant de personnaliser totalement le graphique que vous souhaitez afficher. Voici une partie de l'assistant en question:

Image non disponible
Assistant création de graphique

Et voici un exemple de graphique simple:

Image non disponible

Maintenant, je tiens à préciser certains points qui font que ce composant UltraChart est sûrement le composant de graphique le plus poussé au monde sur un bon nombre de points (et j'en ai essayé et utilisé plusieurs!). Non content de pouvoir prendre différents types de datasources (dataset, datatable, xml,etc), permettant d'afficher plus d'une quinzaine de types de graphiques différents (histogramme, camembert, bulles, linéaires, etc) totalement personnalisables, ce composant permet surtout toutes les interactions possibles avec les différents éléments du graphique. Ainsi, au passage de la souris de l'utilisateur, il sera possible d'afficher un simple tooltip informatif ou encore récupérer les données affichées sous la souris pour piloter un second composant.
Maintenant petit point qui, une fois de plus peut faire la différence avec ses concurrents, l'affichage peut se faire de différentes manières; nous avons la simple image, mais également le format SVG d'Adobe ou encore le Flash permettant de créer des graphiques interactifs (hottracking).

1.5. Les autres composants web

Il vous faut savoir que le pack NetAdvantage contient bien d'autres composants web qu'il m'a ici, été impossible de montrer, tant à cause de leur grand nombre, que de leurs fonctionnalités. Donc si vous ne trouvez pas ici le composant que vous attendiez, il se trouve peut-être dans le pack NetAdvantage ;)

2. Les composants Winforms

2.1. Les composants de navigation

Lors de la conception de votre application, bien avant que vous ne commenciez à écrire la moindre ligne de code, vous en avez defini l'architecture fonctionnelle. Vous devez par exemple définir si votre application sera MDI (avec une fenêtre principale), ou si elle sera composée d'une seule fenêtre avec différents panels, ou encore un grand nombre de fenêtres voire un mix de tout cela. Et en fonction de ce que vous choisirez, vous aurez probablement à utiliser tels ou tels composants.
Là où je voulais en venir, c'est que le pack NetAdvantage contient justement un grand nombre de composants qui seront là pour vous aider dans votre tâche.

2.1.1. Les menus et barres d'outils

Quel est le composant le plus utilisé pour la navigation dans un contrôle? Le menu bien sûr. Et quel composant lui est souvent associé pour réaliser rapidement un grand nombre de tâches? La barre d'outils.
C'est justement ces deux composants qui ont largement été améliorés dans la version 2.0 du framework .Net. Et du fait de ces améliorations, le menu de base du framework (le menustrip) n'a pas d'équivalent dans le package NetAdvantage. La Toolbar non plus d'ailleurs mais celle-ci peut être accessible grâce au composant UltraToolbarManager.

Qu'a donc de si particulier ce composant ? Et bien, si vous avez testez d'autres composants d'éditeurs, la gestion des toolbars se fait par un tiers composant qui va justement gérer les barres d'outils. Ici, c'est tout le contraire, vous déposez ce composant et il se charge lui-même via un éditeur WYSIWYG, de créer les différentes barres d'outils. Vous pouvez alors ajouter deux types de barres d'outils. La première celle que vous connaissez tous et sur laquelle, vous pourrez ajouter, boutons, label, combobox, textbox mais également des colorpicker, ou des fontlist ou simplement des popupcontainer (composant vu plus loin dans cet article). Le deuxième type de barre est une "TaskPane toolbar" qui s'apparente plus aux container de toolbar que vous pouvez retrouver dans Visual Studio par exemple. Voici un affichage des deux types de barres d'outils:

Image non disponible

Mais quel est l'interêt du manager ici? et bien il permet de définir plusieurs choses comme rendre les barres d'outils flottantes ou encore le type d'affichage des menus. Mieux encore, tous les barres d'outils sont personnalisables et un simple bouton droit permet soit de selectionner l'affichage des boutons, soit d'afficher ou de masquer les barres d'outils du formulaires, même celles qui ont été fermées (Etant reliées entre elles, aucun traitement spécifique n'est nécessaire).

2.1.2. Les barres de navigation

Vous connaissez forcément la barre latérale de l'explorateur Windows ou celle d'Outlook ou tout simplement la barre d'outils de Visual Studio. N'avez-vous jamais voulu posséder l'un de ces composants dans vos applications, permettant rapidement et simplement de proposer à l'utilisateur un grand nombre de menus afin d'avoir à portée de mains, une grande partie des fonctionnalités de l'application?
Et bien c'est possible avec le pack NetAdvantage (on s'en doutait pas :)). Oui mais ce composant existe également chez d'autres éditeurs de composants alors pourquoi prendre ceux là? Tout simplement parce ces composants ne sont ici, qu'un seul et unique composant: UltraExplorerBar. Mais cet unique composant a l'avantage de tout faire, tout réprésenter, tout permettre: comme le montre la capture suivante. C'est la même et unique application sur laquelle, j'ai simplement modifié une ou deux propriétés du composant UltraExplorerBar, permettant d'avoir l'affichage désiré:

Image non disponible

Comme vous pouvez le constatez, vous pouvez choisir le type d'affichage ("à la explorer", "à la outlook", "à la barre d'outils visual"), ou également choisir les couleurs de ses différents types d'affichages. Plus encore, vous pouvez définir la façon dont les menus (items) seront affichés: texte ou images ou les deux, grosses ou petites images. Affichage en tant que bouton, label ou autre, etc. Tout est faisable et ce plus ou moins facilement.

2.1.3. Les composants de placement / architecture

Le contrôle UltraTabbedMdiManager permet de créer des interfaces MDI et de gérer les feuilles enfant comme des TabPage, exactement comme le fait Visual Studio, et avec les styles prédéfinis, on s'y croirait presque.

Image non disponible

2.2. L'affichage de données

L'affichage des données peut se faire de milles et une façons; disons le même clairement, 99% des applications affichent à un moment ou un autre des données. Maintenant, c'est la façon dont vous affichez celles-ci qui peut rendre l'information pertinente et surtout lisible et utilisable par l'utilisateur. Vous avez alors le choix entre les graphiques, synonymes de clarté, les grilles (datagrid, listview, etc) ou encore d'autres contrôles moins courants comme le TreeView. Vous allez me dire que l'on affiche rarement un tableau de données dans un TreeView et je vous l'accorde. Néanmoins, ceci est maintenant possible avec l'UltraTree du framework NetAdvantage.

Image non disponible



Voici maintenant un contrôle très particulier et qui, je suis sûr, servira à plusieurs personnes et/ou en inspirera d'autres. Le principe bien que d'un certain côté limité, très simple d'utilisation et éventuellement très utile dans certains types d'applications: il consiste à utiliser un tabcontrol bien particulier avec une partie centrale unique; un seul "contenu" d'onglet. Vous allez alors binder une source de données sur votre TabControl de façon à ce que les onglets se créent dynamiquement et que la partie centrale se bind également. Ainsi, vous passerez de ceci:

Image non disponible

A cela, en une simple requête SQL.

Image non disponible

2.3. Les autres composants winforms

2.3.1. AnimeControl

Je peux me vanter d'avoir testé un grand nombre de suites de composants de différents éditeurs pour y voir à chaque fois des composants plus "exotiques" les uns que les autres. Et bien, je n'étais jamais tombé sur un composant s'approchant de près ou de loin au composant : animationControl. Ce contrôle bien particulier sert de container à un fichier avi. Il permet de jouer un certain nombre d'animations préenregistrées; des animations venant tout droit de windows, comme le montre la capture suivante. Il vous sera également possible de spécifier le chemin d'une video .avi sur le disque.

Image non disponible

2.3.2. UltraPopupContainer

Parmi les autres composants étonnants que contient le pack NetAdvantage, j'y ai remarqué le composant UltraPopupContainer. Pour donner un semblant d'explication, je dirais qu'il s'apparente à un tooltip qui permet de contenir non pas du texte mais un ou plusieurs composants; très utile lorsque vous manquez de place. Sur la capture suivante, un clique sur le bouton fait apparaitre le popup et tout clic en dehors du popup le refait disparaître, tel un tooltip.

Image non disponible
Image non disponible

2.3.3. UltraComboEditor



L'UltraComboEditor possède quelques fonctionnalités bien intéressantes. La première est l'auto complétion quand il est en mode DropDown.

Image non disponible

La deuxième est reprise du monde du Web et c'est plutôt une bonne idée. A chaque item de ce ComboBox est associée une paire dataValue / displayText. Ce qui signifie que pour chaque élément vous pouvez associer au texte qui apparaît une valeur de n'importe quel type.

Dans l'exemple suivant, au nom de site, j'ai associé un objet de type String qui contient l'URL des rubriques DotNet de developpez.com et de DotNet TV de developpez.tv.

Image non disponible

Cette deuxième fonctionnalité est extrêmement pratique à mon goût.

Une troisième fonctionnalité est les ButtonsLeft et les ButtonsRight. Ils permettent d'ajouter des fonctionnalités supplémentaires (ils viennent avec leurs propres évènements) au contrôle actuel, comme à tous les contrôles de type Editor (UltraNumericEditor, UltraFontEditor, …).

2.3.4. UltraTooltipManager



Il n'y a pas grand-chose à dire de l'UltraToolTipManager. Il reste sensiblement identique à ceci près qu'il est possible de modifier l'apparence des différents éléments qui le composent comme le titre ou encore le texte, comme l'illustrent les exemples suivants ou le style du titre a été modifié.

Image non disponible
Image non disponible

Utilisez ce contrôle lorsque vous avez réellement besoin de modifier l'apparence du ToolTip. A noter au passage que l'affichage classique (le petit carré jaune) n'est pas possible.

3. L'avis des developpeurs

3.1. Olivier Delmotte

J'ai principalement testé la partie WinForm avec Visual Studio 2005 et le .Net Framework v2.

NetAdvantage n'est pas une mauvaise librairie loin de là.

Elle offre de très nombreuses possibilités, bien au-delà de la demande du développeur classique. C'est peut être ce que je lui reprocherais le plus. L'API développée par Infragistics, surtout au niveau de la gestion de l'apparence, est vraiment bien pensée, mais offre trop d'options. J'avoue m'être un peu perdu la première fois. Heureusement, l'utilisation intelligente du SmartTag, apparu avec Visual Studio 2005, et des assistants dont disposent certains contrôles viennent réduire un peu cette impression.

Cependant, la version que nous avons testée comporte encore de nombreux bugs, certes pour la plupart peu gênant, mais qui gâchent un peu le plaisir de travailler avec NetAdvantage.

On pourrait également lui reprocher une certaine lourdeur. En effet, le nombre d'options proposées, surtout au niveau visuel est, selon moi, un petit handicap.

J'ai testé quelques contrôles WebForm également. L'UltraWebTab, l'équivalent du TabControl en WinForm par exemple, est magnifique, mais, chose gênante, la gestion du copier / coller de contrôles d'un TabPage est à porter aux abonnés absent, on se retrouve avec plusieurs contrôles ayant le même ID. Toujours avec ce contrôle par exemple, la gestion du style MSN est loupée, et c'est bien dommage, tous les autres sont réussis :

Image non disponible

Mais dans l'ensemble mon avis reste positif vis-à-vis de NetAdvantage. C'est une bonne librairie.

3.2. Louis-Guillaume Morand


Mon avis est clairement mitigé quant aux composants Infragistics.
Il se veut objectif et les composants web que j'ai testé m'ont clairement laissé une impression modérée. S'il n'est pas possible de critiquer la qualité même des composants, tant par leurs fonctionnalités que par leurs assistants (wizards clairs et complets), s'il est très appréciable de voir que les composants profitent au maximum des SmartTags de Visual Studio, et s'il l'aide fournie est vraiment mais vraiment plus que parfaite, on ne peut fermer les yeux sur des petits bugs restants. Je n'ai evidemment pas lu l'aide en entier, mais mes collègues ont rencontrés les même problèmes que moi à savoir des composants qui, une fois en exécution, refusaient de charger les images désirées, principalement à cause d'un path par défaut qui n'est pas toujours géré correctement.

D'autres problèmes ont été rencontrés en mode Design de Visual Studio où, à l'aide d'un SmartTag, il est possible de définir le thème d'un composant. Lors du choix d'un template (thème prédéfini) pour le composant, il arrive qu'une fois la compilation lancée, le thème ne soit pas sauvegardé.
Un autre petit bug, fût la cohabitation entre cassini et IIS. Les composants web d'infragistics utilisant différentes images qui sont copiés dans le repertoire de l'application, ne sont parfois par prises en cause selon que ce soit lancé avec Cassini ou IIS. Il faut alors parfois modifier le code, normalement généré automatiquement, pour obtenir le résultat souhaité.

Ce sont deux petits points qui m'ont fait perdre vraiment beaucoup de temps au cours des tests d'Infragistics.

D'un autre côté, j'ai rarement, voire jamais vu des contrôles dont la personnalisation pour le développeur, ait été aussi poussée tout en restant extrêmement simple. En effet, les smarttags ne proposent que les propriétés les plus intéressantes et les assistants (wizards) de certains composants, sont du plus bel effet. J'ajouterai à cela que l'aide et les exemples fournis dans le package NetAdvantage sont très poussés et très complets. On se rend compte des pleines capacités des composants fournis par le pack; mieux encore, des fonctionnalités javascript ou autres, spécifiques au site web peuvent être ajoutés et de nombreux exemples se trouvent alors proposés.
Je pense donc pour conclure que le pack NetAdvantage est clairement un très bon pack de composants .Net dont la partie Webforms possède d'agréables surprises et que les composants Winforms possèdent parfois des fonctionnalités "exotiques" mais qui pourront sûrement se révéler intéressantes pour nombre d'entre vous.

4. Autour de NetAdvantage

NetAdvantage ne vient pas seulement avec sa librairie de contrôles.

Il y a la possibilité de créer automatiquement les boîtes à outils de Visual Studio 2005 contenant les contrôles NetAdvantage. Malheureusement, en 4 installations de la librairie, cet utilitaire n'a fonctionné correctement qu'une fois et ne gère absolument pas les Versions Express.

NetAdvantage est également livrée avec un Sample Browser (navigateur d'exemples) qui permet de découvrir la vaste étendue de ses possibilités.

La où NetAdvantage impressionne c'est au niveau de l'aide. Elle s'intègre parfaitement à la documentation de Visual Studio et est impressionnante de détails.

5. Plus d'informations

Si vous souhaitez plus d'informations sur les produits infragistics, vous pouvez visiter le site officiel: http://www.infragistics.com/

Si vous souhaitez directement plus d'informations sur les composants du pack NetAdvantage, c'est ici: Winforms et Webforms