Retour à l’accueil

Projet Country Code - Démonstrateurs techniques & Vitrine technologique

Ingénieur Développeur C# .NET – WPF • Blazor • MAUI • IA Fullstack Sénior
| Expert Modernisation
ou Migration Legacy → .NET 8+ / WPF+ / Blazor / MAUI
| Évolution • Refonte • Architecture - Développement - Tests - Production
Remote (France)

Démonstrateurs d'architecture hexagonale en C# .NET :

Ce projet présente des applications développées en C# avec .NET et utilisant le DDD (Domain-Driven Design), le Clean Code avec une architecture hexagonale. Il propose différents adapters UI : WPF, Avalonia, Blazor, MAUI et Console avec également plusieurs adapters infrastructure : Fichiers, BDD, API REST, IA Locale & IA Cloud.

Ces démonstrateurs illustrent comment structurer proprement un projet métier réutilisable, avec injection de dépendances, adaptateurs UI découplés, adaptateurs infrastructure indépendants et tests. Il peut servir de base à des projets professionnels modernes.

🎯 Contexte / Mission

J’ai conçu et développé une solution complète pour moderniser/migrer, rendre multiplateformes et déployer des applications C# .NET/WPF vers des technologies récentes comme Blazor, MAUI, .NET 8/9, avec une architecture hexagonale et des démonstrateurs techniques accessibles en ligne.

Cette solution gère notamment les cas métiers suivants :

  • Trouver un code téléphonique à partir d’un pays
  • Trouver un pays à partir d’un code téléphonique

Objectif : Démontrer le partage de la logique métier, moderniser une base applicative, ou préparer/faire une migration complète d’une application legacy.

Country Code : Side-project abouti illustrant la transformation d’un besoin métier en applications multiplateformes avec :

  • Frontends interchangeables
  • Backends interchangeables

🚀 Réalisations clés

  • – Architecture hexagonale orientée DDD avec moteur/domaine central et plusieurs adaptateurs métier
  • – Développement de 6 adaptateurs UserInterfaces UIs multiplateformes indépendants :
    • WPF (Windows Desktop)
    • Avalonia (Linux/Windows Cross-Platform Desktop)
    • Blazor Server (Web Serveur)
    • Blazor WebAssembly (Web Assembly)
    • Blazor Hybrid MAUI (Mobile)
    • Console (Windows/Linux)
  • – Développement de 5 adaptateurs infrastructure comme sources de données indépendantes :
    • Fichiers locaux : txt, json, csv
    • Base de données SQLite
    • API REST HTTPS
    • IA locale via Ollama entraîné et personnalisé, pour interprétation intelligente et autonome
    • IA Cloud (OpenRouter, Mistral, etc.)
  • – Déploiement complet sur VPS Linux avec .NET, Docker, Jenkins CI/CD avancée :
    Le projet intègre une chaîne de déploiement moderne et automatisée pour déployer et rendre accessible les applications desktop (Avalonia pour WPF multiplateforme), web (Blazor web server et Blazor web assembly), mobiles (Blazor Hybrid MAUI) et Console (.Net multiplateforme) hébergées sur un VPS Linux.
    • Intégration continue avec versioning automatique et exécution de tests
    • Publication multiplateforme : Avalonia, Blazor, MAUI, Console
    • Packaging `.tar.gz` Docker, `.apk` Android, déploiement NAS/VPS
    • Déploiement sécurisé via `scp`, avec gestion des anciennes versions
    • Reverse proxy NGINX pour accès public
    • Exécution d’UIs non-web (console, desktop, mobile) via Gotty, ThinLinc, Appetize.io
    • Round-robin contrôlé via Node.js pour démonstrations simultanées
    • Automatisation complète : scripts, services, monitoring, sites
    • Mise en ligne de toutes les applications web et non-web
  • – Une autre version avec UI/UX épurée en ligne

🛠️ Environnement technique

Windows/Linux, .NET 8/9, C#, WPF, Avalonia, Blazor Server, Blazor WebAssembly, Blazor Hybrid MAUI, Jenkins CI/CD, Architecture hexagonale, MVVM, Clean Code, SOLID, DDD, Linq, Tests unitaires, SQL, VPS Linux, NGINX, Docker, Fichiers, SQLite, API REST, Ollama, OpenRouter.


📺 Démonstrations en vidéo + 🧩 Applications associées

🎬 WPFAdapter
🎬 WPFAvaloniaMultiPAdapter
💻 Frontend Desktop : WPF Windows & Avalonia Linux
Backend : Fichiers, BDD, API REST, IA LLM local & IA LLM Cloud
Langages & Frameworks : C#, .Net, Js, Html, Css, Shell
CI/CD : Automatisé avec Jenkins & déploiement sur VPS Linux
Qualité logicielle : DDD, Hexagonale, SOLID, Clean Code, Tests
🎬 BlazorServerAdapter
🌐 Frontend Web Serveur : Blazor Server
Backend : Fichiers, BDD, API REST, IA LLM local & IA LLM Cloud
Langages & Frameworks : C#, .Net, Js, Html, Css, Shell
CI/CD : Automatisé avec Jenkins & déploiement sur VPS Linux
Qualité logicielle : DDD, Hexagonale, SOLID, Clean Code, Tests
🎬 BlazorWebAssemblyAdapter
🌐🧱 Frontend Web Assembly : Blazor Web Assembly
Backend : Fichiers, BDD, API REST, IA LLM local & IA LLM Cloud
Langages & Frameworks : C#, .Net, Js, Html, Css, Shell
CI/CD : Automatisé avec Jenkins & déploiement sur VPS Linux
Qualité logicielle : DDD, Hexagonale, SOLID, Clean Code, Tests
🎬 BlazorMAUIMobileAdapter Physique
🎬 BlazorMAUIMobileAdapter Emulateur
📱 Frontend Mobile : Blazor Hybrid MAUI
Backend : Fichiers, BDD, API REST, IA LLM local & IA LLM Cloud
Langages & Frameworks : C#, .Net, Js, Html, Css, Shell
CI/CD : Automatisé avec Jenkins & déploiement sur VPS Linux
Qualité logicielle : DDD, Hexagonale, SOLID, Clean Code, Tests
🎬 ConsoleAdapter
Console Icon Frontend Console : Console Windows & Linux
Backend : Fichiers, BDD, API REST, IA LLM local & IA LLM Cloud
Langages & Frameworks : C#, .Net, Js, Html, Css, Shell
CI/CD : Automatisé avec Jenkins & déploiement sur VPS Linux
Qualité logicielle : DDD, Hexagonale, SOLID, Clean Code, Tests

🌐 Application Country Code Light – Version simplifiée :

🚀 Lancer Country Code Light

📸 Screenshots du projet Country Code

🤖 Prompts et Intelligence Artificielle

AI 1
AI 2
AI 3
AI 4
AI 5

📞 Recherche du code téléphonique

Country 1
Country 2
Country 3
Country 4
Country 5

🌍 Recherche du pays

Code 1
Code 2
Code 3
Code 4
Code 5

Architecture hexagonale cliquable du projet Country Code

Ce schéma interactif présente l'architecture hexagonale utilisée pour ce projet.
Cliquez sur les cases des interfaces utilisateurs à gauche pour tester les applications en condition réelle.

Internet Nginx | Https | Reverse Proxy | Services | Configurations | Etc. CI/CD Jenkins Application UserInterface Infrastructure Domaine Port Primaire Port Secondaire WPFAvaloniaMultipAdapter BlazorServerAdapter BlazorWebAssemblyAdapter BlazorMAUIMobileAdapter ConsoleAdapter FileAdapter 📁 DatabaseAdapter 🗄️ HttpAPIAdapter 🔗 LocalLLMAdapter 🧠 CloudLLMAdapter ☁️