Réalisations liées :

📫
Logo Image

Environnement Microsoft | C#

C# est un langage de programmation orienté objet développé par Microsoft. Il permet de créer une variété d'applications, allant des applications web aux applications mobiles, en passant par les jeux vidéo, les applications de bureau, etc. C'est un langage fortement typé, ce qui permet de réduire les erreurs de programmation. Dans un contexte professionnel, C# est largement utilisé pour le développement sur la plateforme .NET de Microsoft. Il est particulièrement apprécié pour sa robustesse et sa polyvalence, ainsi que pour son intégration fluide avec les outils de développement de Microsoft. C# ayant maintenu sa position dans le top 10 des langages de programmation depuis plus de 20 ans, mon engagement envers ce langage est non seulement une passion, mais aussi un choix stratégique pour ma carrière. Récemment, avec l'arrivée de .NET MAUI, C# a gagné en popularité pour le développement d'applications multiplateformes, pouvant fonctionner sur Windows, macOS, Android et iOS.

Ma première rencontre avec C# a représenté un véritable tournant dans ma carrière de développeur. Avant de plonger dans cet univers, j'avais principalement travaillé avec des technologies web telles que NodeJS pour les sites vitrines et PHP couplé à MySQL pour les sites dynamiques. La découverte de C# m'a ouvert les portes de la programmation orientée objet, une approche conceptuelle enrichissante qui se distingue nettement des paradigmes de programmation que j'avais utilisés auparavant. J'ai été initié aux interfaces, classes, énumérations, et à d'autres éléments fondamentaux du langage, ce qui a profondément transformé ma manière de concevoir et de structurer le code.

En parallèle, l'apprentissage du concept d'architecture MVVM (Model-View-ViewModel) et du développement d'applications Windows avec WPF (Windows Presentation Foundation), utilisant le XAML pour le binding et l'interface utilisateur, a considérablement enrichi ma compréhension du développement logiciel. Cette immersion dans C# a non seulement élargi mon horizon technique mais a également renforcé ma capacité à penser et à implémenter des solutions logicielles complexes de manière plus efficace et structurée.

Chez Kadys, pour le projet K-Ptur, ma principale difficulté a été de comprendre le fonctionnement détaillé du service de classement automatique uniquement par la lecture du code, ainsi que de me réadapter à l'environnement de développement (IDE VS2022), que je n'avais pas utilisé depuis quelque temps. Récemment, nous avons ajouté la gestion des fichiers au format .rtf, un format particulièrement complexe comparé au .pdf et largement utilisé par les collectivités territoriales. J'ai donc été chargé de la gestion des erreurs pour ce type de documents. Avant mon intervention, lorsqu'un document .rtf ne pouvait être classé correctement, il est converti en .pdf et placé dans un dossier d'erreurs, ce qui pose un problème majeur puisque le format .rtf est requis dans la GED des collectivités, obligeant ainsi le support technique à demander aux clients de renvoyer les documents problématiques.

Pour résoudre cela, j'ai utilisé la bibliothèque Aspose, pour laquelle notre projet possède une licence. J'ai étudié la manière dont Aspose gère les documents .rtf grâce à leur documentation. Toutefois, les variantes de ce format sont nombreuses et parfois étranges. J'ai réussi à créer un code qui gère ces variations de la manière la plus générique possible, mais il semble qu'il y aura toujours des cas imprévus, comme récemment, lorsqu'on m'a signalé un cas où quatre pages étaient considérées comme une seule.

Quant au projet K-Upgrader, j'ai initié ce projet dans l'optique de simplifier la gestion des versions pour les clients. Au début, j'ai été confronté aux difficultés liées au suivi du versionnement de l'outil K-Ptur et à sa maintenance par l'équipe technique. L'objectif était de faciliter et donc d'accélérer l'installation initiale ainsi que les mises à jour. Ce qui est intéressant, c’est que la création de cet outil m'a conduit à ajouter des endpoints à une API existante, ouvrant ainsi la voie à la maintenance et à l'implémentation d'autres solutions à l'avenir.

Cette diversité de projets m'a permis de toucher à presque toutes les facettes de C#, de la gestion d'un client lourd à l'intégration API, en passant par les applications web et finalement, le développement multiplateforme avec .NET MAUI. Chaque projet a été une occasion d'apprentissage et de consolidation de mes compétences, me propulsant vers un niveau intermédiaire. Je vise à maîtriser des fonctionnalités avancées, en particulier .NET MAUI, stimulé par un projet à Kadys pour développer une application mobile iOS et Android. Cette flexibilité de C# dans le développement multiplateforme m'attire particulièrement.

Mon parcours chez Kadys a révélé ma capacité à naviguer et à me développer dans des contextes variés, reflétant la flexibilité et la robustesse de C#. Cette expérience a profondément enrichi ma compréhension du langage et stimulé mon intérêt pour continuer à explorer ses fonctionnalités avancées. Je trouve que c’est un langage facile d’utilisation, surtout pour faire un projet fromscratch. En revanche, j’ai vraiment du mal lorsqu’il s’agit de reprendre une solution existante, notamment dans ce que j’ai pu voir lors de mon alternance avec K-Ptur et K-Sol (back-office et front-end).

Actuellement, j'ai envie de maitriser le framework .NET MAUI, le fait de faire un code pour une application utilisable sur plusieurs plateformes m’attire fortement. Je suis des formations sur Microsoft learn et lit des articles via l'extension de daily.dev pour renforcer mes connaissances et apprendre les bonnes pratiques. Je conseille aux débutants en C# de ne pas sous-estimer l'importance des fondamentaux de la programmation orientée objet, d’utiliser la documentation Microsoft et de bien utiliser le système de débogage, qui je trouve, est très bien fait. Mon objectif à moyen terme est d'atteindre un niveau avancé en C#, avec un intérêt spécifique pour .NET MAUI. La petite application prévue pour Visiativ Document, facilitant l'interaction avec des documents via des notifications mobiles, est une base intéressante pour commencer à assimiler.