Software Engineering | School | 3 min read
EasySave.
A file backup software built like a real commercial product: C# / .NET 8, WPF MVVM interface, versioned releases, GitFlow, documentation site and an external encryption module. School project, professional standards.
EasySave
Logiciel de sauvegarde de fichiers — C# · .NET 8 · WPF · MVVM
Documentation »
Signaler un bug
·
Suggérer une feature
·
English
Table des matières
À propos
EasySave est un logiciel de sauvegarde développé dans le cadre du cours de Génie Logiciel (CESI A3 FISE INFO 2025-2026). Il simule le cycle de vie complet d'un produit commercial chez l'éditeur fictif ProSoft : de l'application console minimaliste (v1.0) à l'interface graphique WPF complète (v2.0), jusqu'aux sauvegardes parallèles et la supervision centralisée (v3.0).
Stack
| Composant | Rôle |
|---|---|
| C# / .NET 8.0 | Langage et runtime |
| WPF + MVVM | Interface graphique (v2.0+) |
| EasyLog.dll | Bibliothèque de logging découplée (JSON / XML) |
| NuGet | Gestion des dépendances |
| GitHub + GitFlow | Versioning et gestion des branches |
Fonctionnalités
v1.0 — Console
- Jusqu'à 5 travaux de sauvegarde (complète ou différentielle)
- Exécution via menu interactif ou CLI (
EasySave.exe 1-3,1;3) - Log JSON journalier par transfert de fichier
- Fichier d'état temps réel (
state.json) - Interface bilingue FR / EN
v1.1 — XML Logger
- Choix du format de log : JSON ou XML
LoggerFactory— sélection automatique au démarrage- Préférence persistée dans
settings.json
v2.0 — WPF / MVVM
- Interface graphique WPF, abandon de la console
- Travaux de sauvegarde illimités
- Cryptage via CryptoSoft (XOR, extensions configurables)
- Blocage automatique si un logiciel métier est détecté
- Barre de progression en temps réel par travail
- Édition inline des travaux
- Vue Paramètres généraux (format log, extensions crypto, logiciel métier)
Architecture
Easy_Save/
├── EasyLog/ DLL de logging — JsonLogger, XmlLogger, LoggerFactory
├── EasySave.Core/ Logique métier partagée (console + WPF)
│ ├── Model/Entities/ SaveJob · SaveState · SaveType
│ ├── Model/Service/ SaveExecutor · ConfigService · StateService
│ │ AppPaths · CryptoService · BusinessAppWatcher
│ └── Model/Strategies/ FullSaveStrategy · DifferentialSaveStrategy
├── EasySave.ViewModel/ ViewModels MVVM (v2.0+)
├── EasySave.WPF/ Application graphique WPF (v2.0+)
│ ├── Views/ JobListView · SettingsView · MainWindow
│ └── Resources/ Localisation .resx FR/EN · Styles
└── EasySave.Tests/ Tests unitaires MSTest
Tous les fichiers runtime sont écrits dans
%AppData%\EasySave\— aucun chemin hardcodé.
Démarrage rapide
Prérequis : .NET 8.0 SDK
git clone https://github.com/sorooty/Easy_Save.git
cd Easy_Save
dotnet build
Interface graphique (v2.0) :
dotnet run --project EasySave.WPF
Interface console (v1.0 / v1.1) :
dotnet run --project EasySave.Console
Tests :
dotnet test
Roadmap
| Version | Description | Statut |
|---|---|---|
| v1.0 | Application console, 5 travaux, EasyLog.dll | ✅ Livré |
| v1.1 | Log XML, LoggerFactory | ✅ Livré |
| v2.0 | WPF/MVVM, CryptoSoft, logiciel métier, progression | ✅ Livré |
| v3.0 | Sauvegardes parallèles, Play/Pause/Stop, Docker logs | 🔄 En cours |
Voir les issues ouvertes pour la liste complète.
GitFlow
| Branche | Rôle |
|---|---|
main | Version stable — merge via PR taguée uniquement |
develop | Intégration — toujours compilable |
feature/* | Nouvelle fonctionnalité |
hotfix/* | Correction urgente sur main |
release/* | Préparation d'une livraison |
Liens
- Documentation complète
- CryptoSoft — moteur de cryptage XOR utilisé par EasySave
- Projet — Génie Logiciel · CESI A3 FISE INFO 2025-2026