samedi 1 mars 2025

MVC - MVVM

 MVC (Modèle-Vue-Contrôleur) est un modèle d'architecture de conception largement utilisé dans le développement logiciel, y compris dans le cadre du développement d'applications en C#. Voici une explication de chaque composant de MVC dans le contexte de C# :

1. Modèle (Model):

- Le modèle représente les données et la logique métier de l'application.

- En C#, le modèle peut être constitué de classes qui définissent la structure des données et les opérations qui peuvent être effectuées sur ces données.

- Les modèles sont généralement indépendants de l'interface utilisateur et de la logique de présentation.

2. Vue (View) :

- La vue est responsable de l'interface utilisateur et de l'affichage des données.

- En C#, les vues peuvent être des pages Web (dans le cas d'une application Web) ou des fenêtres et des contrôles d'interface utilisateur (dans le cas d'une application de bureau).

- Les vues sont généralement passives et ne contiennent pas de logique métier significative. Elles se concentrent plutôt sur l'affichage des données fournies par le modèle.

3. Contrôleur (Controller) :

- Le contrôleur agit comme un intermédiaire entre le modèle et la vue. Il gère les entrées de l'utilisateur et coordonne les interactions entre le modèle et la vue.

- En C#, les contrôleurs sont souvent des classes qui répondent aux requêtes HTTP dans une application Web ou qui gèrent les événements utilisateur dans une application de bureau.

- Les contrôleurs sont responsables de la récupération des données du modèle, de leur transmission à la vue appropriée pour affichage et de la gestion des actions de l'utilisateur pour mettre à jour le modèle si nécessaire.

L'architecture MVC favorise la séparation des préoccupations, ce qui rend le code plus modulaire, plus facile à maintenir et à tester. En séparant clairement les responsabilités de la logique métier, de l'interface utilisateur et de la gestion des interactions utilisateur, MVC permet aux développeurs de créer des applications plus évolutives et plus flexibles.

=================

MVVM

Dans le cadre de .NET, MVVM signifie Model-View-ViewModel. C'est un modèle de conception architectural très utilisé dans les applications WPF (Windows Presentation Foundation), Xamarin, MAUI et même dans certaines applications Blazor. Voici une explication des trois composants principaux :

1. Model (Modèle) :

  • Représente les données et la logique métier.

  • Gère les opérations CRUD (Create, Read, Update, Delete) sur les données.

  • Communique souvent avec une base de données ou des services web.

  • Ne contient aucune logique liée à l'interface utilisateur.

Exemple : Une classe Product avec des propriétés comme Id, Name et Price, et une méthode pour calculer les remises.

2. View (Vue) :

  • Correspond à l'interface utilisateur.

  • Utilise des technologies comme XAML dans WPF/Xamarin pour définir l'apparence de l'application.

  • Doit rester "stupide", c'est-à-dire qu'elle ne contient pas de logique métier. Elle est uniquement responsable de l'affichage.

Exemple : Un fichier XAML avec une liste d'articles, un bouton pour ajouter un article, etc.

3. ViewModel :

  • Sert de liaison entre le Model et la View.

  • Contient la logique de présentation.

  • Fournit des propriétés et des commandes (commands) pour permettre à la Vue d'interagir avec les données et les actions sans les mélanger.

  • Utilise souvent le binding de données pour synchroniser automatiquement les changements entre la Vue et le Modèle.

Exemple : Une classe ProductViewModel qui expose une liste observable de produits (ObservableCollection<Product>) et une commande pour ajouter un produit (AddProductCommand).

Communication dans MVVM :

  • Binding : La Vue se lie aux propriétés publiques du ViewModel (bidirectionnel ou unidirectionnel).

  • INotifyPropertyChanged : Interface utilisée dans le ViewModel pour notifier la Vue lorsque les propriétés changent.

  • Commanding : Utilisé pour gérer les actions (comme les clics sur des boutons) via des objets ICommand.

Pourquoi utiliser MVVM ?

  • Séparation des préoccupations : Chaque couche a son rôle, ce qui facilite la maintenance et les tests.

  • Testabilité : Le ViewModel est indépendant de la Vue, donc il peut être testé facilement sans dépendre de l'interface utilisateur.

  • Réutilisabilité : Les mêmes ViewModels peuvent être utilisés avec différentes Vues.

Aucun commentaire:

Enregistrer un commentaire

MVC - MVVM Lượt xem: