- Added DatabaseService to handle database operations for messages and support requests. - Created IDatabaseService interface to define the contract for database operations. - Developed ViewModels for Dashboard, Messages, and Support pages to manage data and commands. - Implemented XAML views for Dashboard, Messages, and Support, including data binding and UI elements. - Created SQL script for setting up the database schema and inserting test data.
5.8 KiB
5.8 KiB
Commandes Utiles - TravelMate Admin
🔧 Développement
Restaurer les packages
dotnet restore
Build le projet
# MacCatalyst
dotnet build -f net10.0-maccatalyst
# Windows
dotnet build -f net10.0-windows10.0.19041.0
# Android
dotnet build -f net10.0-android
# iOS
dotnet build -f net10.0-ios
Lancer l'application
# MacCatalyst
dotnet build -t:Run -f net10.0-maccatalyst
# Windows
dotnet build -t:Run -f net10.0-windows10.0.19041.0
Nettoyer le projet
dotnet clean
rm -rf TravelMateAdmin/bin TravelMateAdmin/obj
Rebuild complet
dotnet clean
dotnet restore
dotnet build
🗄️ Base de Données
Créer la base de données
mysql -u root -p < database_setup.sql
Se connecter à MySQL
mysql -u root -p travelmateadmin
Afficher les tables
USE travelmateadmin;
SHOW TABLES;
Voir les données
-- Tous les messages
SELECT * FROM messages ORDER BY created_at DESC;
-- Messages en attente
SELECT * FROM messages WHERE done = FALSE;
-- Statistiques
SELECT
COUNT(*) as total,
SUM(done = FALSE) as pending,
SUM(done = TRUE) as completed
FROM messages;
Ajouter un message de test
INSERT INTO messages (nom, prenom, email, message, done, created_at)
VALUES ('Test', 'User', 'test@example.com', 'Ceci est un test', FALSE, NOW());
Marquer tous les messages comme non traités
UPDATE messages SET done = FALSE;
UPDATE support_requests SET done = FALSE;
Réinitialiser les données
mysql -u root -p travelmateadmin < database_setup.sql
Backup de la base
mysqldump -u root -p travelmateadmin > backup_$(date +%Y%m%d_%H%M%S).sql
Restore depuis un backup
mysql -u root -p travelmateadmin < backup_20260112_143000.sql
📦 NuGet Packages
Voir les packages installés
dotnet list TravelMateAdmin/TravelMateAdmin.csproj package
Mettre à jour un package
dotnet add TravelMateAdmin/TravelMateAdmin.csproj package CommunityToolkit.Mvvm
dotnet add TravelMateAdmin/TravelMateAdmin.csproj package MySqlConnector
Mettre à jour tous les packages
dotnet list TravelMateAdmin/TravelMateAdmin.csproj package --outdated
🐛 Debugging
Voir les logs
Dans le terminal où vous avez lancé l'app, les logs apparaissent via :
System.Diagnostics.Debug.WriteLine("Mon log");
Tests de connexion MySQL
# Tester si MySQL est accessible
nc -zv localhost 3306
# Voir les processus MySQL
ps aux | grep mysql
# Démarrer MySQL (Mac avec Homebrew)
brew services start mysql
# Démarrer MySQL (Linux)
sudo service mysql start
# Démarrer MySQL (MAMP)
# Utiliser l'interface MAMP
📱 Plateforme Spécifique
MacCatalyst - Voir les logs système
log stream --predicate 'processImagePath contains "TravelMateAdmin"' --level debug
Android - Voir les logs
adb logcat | grep TravelMateAdmin
iOS Simulator - Voir les logs
xcrun simctl spawn booted log stream --level debug | grep TravelMateAdmin
🔍 Code Analysis
Format le code
dotnet format TravelMateAdmin/TravelMateAdmin.csproj
Analyser le code
dotnet build /p:TreatWarningsAsErrors=true
📊 Statistiques du Projet
Compter les lignes de code
find TravelMateAdmin -name "*.cs" -not -path "*/obj/*" -not -path "*/bin/*" | xargs wc -l
Voir l'arborescence
tree -I 'bin|obj' TravelMateAdmin/
Taille du projet
du -sh TravelMateAdmin/
🚀 Publication
Publish MacCatalyst
dotnet publish -f net10.0-maccatalyst -c Release -p:CreatePackage=true
Publish Windows
dotnet publish -f net10.0-windows10.0.19041.0 -c Release
Créer un package pour Mac App Store
dotnet publish -f net10.0-maccatalyst -c Release \
-p:RuntimeIdentifier=maccatalyst-arm64 \
-p:CreatePackage=true \
-p:CodesignKey="Apple Distribution: Your Name" \
-p:CodesignProvision="Your Provisioning Profile"
🧪 Tests (futur)
Ajouter un projet de tests
dotnet new xunit -n TravelMateAdmin.Tests
dotnet sln add TravelMateAdmin.Tests/TravelMateAdmin.Tests.csproj
dotnet add TravelMateAdmin.Tests reference TravelMateAdmin/TravelMateAdmin.csproj
Lancer les tests
dotnet test
📝 Git
Initialiser le repo
git init
git add .
git commit -m "Initial commit: TravelMate Admin MAUI app"
Ignorer les fichiers de build
Le .gitignore est déjà configuré pour :
- bin/, obj/
- .vs/, .vscode/
- Configuration sensible
Créer une branche
git checkout -b feature/nouvelle-fonctionnalite
🔐 Sécurité
Chiffrer la configuration (exemple)
# Générer une clé
openssl rand -base64 32
# Chiffrer un fichier
openssl enc -aes-256-cbc -salt -in AppSettings.cs -out AppSettings.cs.enc
# Déchiffrer
openssl enc -d -aes-256-cbc -in AppSettings.cs.enc -out AppSettings.cs
🛠️ Maintenance
Vérifier les dépendances obsolètes
dotnet list package --outdated
Mettre à jour .NET
# Vérifier la version actuelle
dotnet --version
# Télécharger la dernière version
# https://dotnet.microsoft.com/download
Nettoyer NuGet cache
dotnet nuget locals all --clear
💡 Tips & Tricks
Hot Reload
Lors du développement, les changements XAML sont appliqués en temps réel avec Hot Reload.
Raccourcis Visual Studio
F5: Run avec debugCtrl+F5(Cmd+F5 Mac) : Run sans debugShift+F5: Stop debugging
Performance
# Build en Release pour tester les performances réelles
dotnet build -c Release -f net10.0-maccatalyst
Multi-targeting
Pour cibler plusieurs plateformes en une fois :
dotnet build
# Build toutes les plateformes définies dans TargetFrameworks