août
2007
Après les présentations du billet précédent, il est temps de passer aux choses sérieuses.
J’ai pour projet de créer une bibliothèque de composants pour Winform. Jusque là, rien de très spécial si ce n’est que l’on peut se poser un certain nombre de questions. Je vais donc tenter de lister ces questions et essayer d’y apporter une réponse.
Q: Pourquoi privilégier winform alors que WPF est déjà sorti?
R: Je considère WPF comme une technologie très prometteuse. Cependant elle est encore très jeune et je fais parti de ceux qui pensent que winform a encore de très belles années devant lui. De plus il apparaît qu’une même application réalisée avec WPF est souvent plus lente et moins réactive qu’une autre réalisée en winform. Il me semble également que toutes les possibilités de winform n’ont pas encore toutes été épuisées et qu’il est sûrement possible de réaliser avec de beaux projets.
Q: Encore une nouvelle bibliothèque de contrôles? Il en existe pourtant beaucoup et de qualité!
R: Oui c’est vrai il existe déjà sur le marché de nombreuses bibliothèques de composants dont la plupart sont de qualité. Pourquoi en créer alors une nouvelle? Je suis parti du constat que la plupart des bibliothèques de contrôles existantes dérivent de system.window.form.control. Les composants winform standard eux aussi dérivent de control. En fait .Net « wrap » les contrôles existants de windows.
Cela présente un inconvénient majeur: la majorité des contrôles disponibles (label, button, …) sont en fait des windows. La conséquence est qu’un formulaire contenant un nombre conséquent de contrôles est souvent lent.
Un autre problème est la personnalisation du rendu de ces contrôles. Ce problème est partiellement résolu par la version 2 du framework qui permet un « ownerdraw » pour certains contrôles (listbox, treeview, …). Cependant des personnalisations simples sont difficiles, comme par exemple changer la couleur d’une bordure d’une textbox.
Pour toutes ces raisons, je pense qu’il y a de la place pour une nouvelle bibliothèque de composants. Un bon exemple de ce qu’il est possible de faire est le système de « Toolstrip » introduit dans la version 2 du framework. En effet ce système est léger (peu de handles utilisés), extrêmement personnalisable (utilisation de renderers) et possède un mode design agréable à utiliser.
Commentaires récents
- Winforms Lightweight widgets – Avancée du projet – résumé 1 dans
- Winform: LightWeight controls / controles légers: partie 2/2 dans
- Winform: LightWeight controls / controles légers: partie 2/2 dans
- Winform: LightWeight controls / controles légers: partie 2/2 dans
- Winform: LightWeight controls / controles légers: partie 2/2 dans