Présentation du projet
SMDE est une application développée par Vicat en utilisant le framework C# WPF. Initialement créée il y a environ trois ans par un membre de l’équipe informatique industrielle, cette application remplace partiellement une version précédente appelée Systrie. Depuis septembre 2022, l’équipe informatique a repris le projet.
J’ai eu l’opportunité de contribuer à SMDE en travaillant sur la partie client. Mes principales responsabilités ont été de corriger des problèmes d’interface utilisateur et d’ajouter de nouvelles fonctionnalités. L’application est désormais en production dans plusieurs usines de Vicat.
Technologies utilisées
C# et .NET Framework 4.x
Le projet s’appuie sur .NET Framework 4.x, qui offre des fonctionnalités robustes pour le développement d’applications Windows grâce à des outils comme WPF, Windows Forms, et ASP.NET. Bien que .NET 4.8 soit une version stable et largement utilisée, des versions plus récentes, comme .NET 5 ou 6, introduisent des performances accrues et des fonctionnalités de sécurité avancées.
Base de données SQL Server
SMDE repose sur une base de données dynamique qui affiche et actualise les données en temps réel selon les besoins de l’application. La performance et la sécurité ont été optimisées en utilisant des requêtes ciblées pour récupérer uniquement les informations nécessaires, limitant ainsi les temps de chargement.
Windows Presentation Foundation (WPF)
WPF est le moteur graphique de .NET utilisé dans ce projet. Avec son langage de définition d’interface, XAML, WPF offre des fonctionnalités avancées pour créer des interfaces animées, dynamiques et sécurisées. Le projet intègre également le modèle architectural MVVM (Model-View-ViewModel) pour une structure claire et évolutive.
Objectifs et réalisation
Objectifs principaux
- Correction des problèmes d’affichage : Adapter l’interface utilisateur pour qu’elle soit responsive, permettant une utilisation fluide sur des écrans de différentes tailles.
- Améliorations fonctionnelles : Ajouter de nouvelles interfaces pour répondre aux besoins des usines.
Étapes clés du développement
Recherche et montée en compétences
Avant d’entamer le développement, j’ai réalisé une formation interne sur C# MVVM, ce qui m’a permis d’acquérir une maîtrise complète des outils utilisés dans ce projet.
Organisation des tâches
Pour chaque problème détecté, j’ai utilisé les fonctionnalités de débogage de Visual Studio afin d’identifier la source des erreurs. Une documentation claire a été établie pour référencer les corrections à apporter.
Interface responsive
L’un des défis principaux a été de transformer des valeurs fixes (en pixels) en valeurs dynamiques (en pourcentage). Par exemple, dans le code XAML, les dimensions des colonnes et des lignes ont été ajustées pour s’adapter automatiquement à la taille de la fenêtre :
Avant :
<ColumnDefinition Width="100" />
<RowDefinition Height="50" />
Après :
<ColumnDefinition Width="1*" />
<RowDefinition Height="0.3*" />
Ajout du tableau de bord (Dashboard)
Le tableau de bord permet désormais d’afficher jusqu’à 15 polluants, contre 9 initialement, grâce à une gestion dynamique des colonnes et des lignes. Voici un aperçu du fonctionnement :
<ColumnDefinition Width="Auto" MinWidth="100" />
<RowDefinition Height="{Binding RowPolluantVisible}" />
Processus de test
Chaque modification a été suivie de tests rigoureux :
- Tests unitaires : Vérification des fonctionnalités ajoutées.
- Tests utilisateurs : Simulation des cas d’usage pour garantir une expérience intuitive.
- Évaluation des performances : Validation de la rapidité et de la stabilité de l’application.
Résultats obtenus
- Interface responsive : L’application est désormais utilisable sur tout type d’écran.
- Tableau de bord enrichi : Le nouvel affichage permet de gérer plus de paramètres critiques en temps réel.
- Stabilité améliorée : Les bugs identifiés ont été corrigés, offrant une expérience utilisateur optimale.
Ce projet a été une expérience enrichissante, me permettant de perfectionner mes compétences en développement d’applications desktop et en gestion de projet informatique.