Cas pratiques .NET MVC

30 cas pratiques .NET MVC disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques de .NET et C#

Fondamental.NET MVC

Création d'un contrôleur simple avec action dans ASP.NET MVC

Contexte : Vous démarrez un projet ASP.NET MVC pour une application web. Le Problème : Aucun contrôleur n'est encore défini. Contraintes : Créer un contrôleur de base avec une action qui retourne une vue simple. Livrable attendu : Créer un contrôleur `HomeController` avec une action `Index` qui retourne une vue affichant un message de bienvenue.

.net mvccontrolleraction+2
Fondamental.NET MVC

Création d'un filtre personnalisé dans ASP.NET MVC

Contexte : Vous devez implémenter un filtre personnalisé qui s'exécute avant chaque action du contrôleur. Le Problème : Aucun filtre personnalisé n'est encore défini. Contraintes : Créer un attribut de filtre personnalisé qui valide un paramètre avant l'exécution de l'action. Livrable attendu : Créer un filtre personnalisé `ValidateUserAttribute` qui vérifie si l'utilisateur est authentifié avant l'exécution de chaque action.

.net mvcfiltercustom+1
Fondamental.NET MVC

Création d'un modèle avec validation côté serveur

Contexte : Vous devez valider les données d'un formulaire avant de les enregistrer dans la base de données. Le Problème : La validation n'est effectuée qu'au niveau du client. Contraintes : Utiliser les annotations `Required` et `Range` dans le modèle pour effectuer une validation côté serveur. Livrable attendu : Créer un modèle `Order` avec des annotations de validation et l'utiliser dans une action POST pour valider les données envoyées par l'utilisateur.

.net mvcvalidationmodel+1
Fondamental.NET MVC

Création d'une action HTTP POST dans un contrôleur MVC

Contexte : Une page doit accepter des données envoyées par un utilisateur via un formulaire. Le Problème : Aucune action POST n'est définie pour recevoir les données du formulaire. Contraintes : Créer une action HTTP POST dans le contrôleur pour gérer les données envoyées. Livrable attendu : Créer une action `Create` dans le contrôleur qui accepte les données d'un formulaire via la méthode HTTP POST et redirige vers une autre page.

.net mvcpostform+2
Fondamental.NET MVC

Création d'une route avec paramètre dans ASP.NET MVC

Contexte : Vous avez besoin de créer une route dynamique pour afficher des informations basées sur un identifiant. Le Problème : La route n'est pas encore définie avec un paramètre dynamique. Contraintes : Utiliser un paramètre de route pour récupérer l'identifiant d'un article. Livrable attendu : Créer une route `Product/Details/{id}` et un contrôleur qui récupère un produit en fonction de l'identifiant passé dans l'URL.

.net mvcroutingparameter+2
Fondamental.NET MVC

Création d'une vue simple avec Razor

Contexte : Vous devez afficher une page avec des données dynamiques dans votre application. Le Problème : Aucune vue Razor n'est définie. Contraintes : Utiliser le moteur de vues Razor avec la syntaxe `@Model`. Livrable attendu : Créer une vue `Index.cshtml` qui affiche une variable de type string passée depuis le contrôleur.

.net mvcrazorview+1
Fondamental.NET MVC

Gestion des erreurs 404 personnalisées dans ASP.NET MVC

Contexte : L'application retourne une erreur 404 générique lorsqu'une ressource n'est pas trouvée. Le Problème : Aucune gestion personnalisée des erreurs 404 n'est implémentée. Contraintes : Créer une vue d'erreur 404 personnalisée. Livrable attendu : Créer une vue `404.cshtml` et configurer le contrôleur pour rediriger vers cette vue en cas de ressource non trouvée.

.net mvcerror404+2
Fondamental.NET MVC

Mise en place de la validation de formulaire avec Data Annotations

Contexte : Vous devez valider les données soumises par l'utilisateur dans un formulaire. Le Problème : Aucun mécanisme de validation n'est en place. Contraintes : Utiliser les annotations de données pour valider les champs dans le modèle. Livrable attendu : Créer un modèle `User` avec des annotations comme `Required`, `StringLength` et `Range` pour valider les entrées dans un formulaire.

.net mvcvalidationdataannotations+2
Fondamental.NET MVC

Passage de données d'un contrôleur à une vue avec le modèle

Contexte : Une page doit afficher des informations provenant du contrôleur. Le Problème : Les données ne sont pas passées correctement entre le contrôleur et la vue. Contraintes : Utiliser le modèle pour transmettre des données du contrôleur à la vue. Livrable attendu : Créer un modèle `Product` avec des propriétés `Name` et `Price`, puis passer une instance de ce modèle à la vue.

.net mvcmodelcontroller+2
Fondamental.NET MVC

Utilisation de Partial Views pour afficher des composants réutilisables

Contexte : Vous avez une partie de la page qui doit être affichée sur plusieurs vues. Le Problème : Le code de cette partie est dupliqué sur plusieurs pages. Contraintes : Utiliser les partial views pour partager un même composant entre différentes vues. Livrable attendu : Créer une partial view `_ProductDetails.cshtml` et l'inclure dans la vue principale `Index.cshtml`.

.net mvcpartialviewreusability+2
Avancé.NET MVC

Création d'un filtre personnalisé dans ASP.NET MVC pour la gestion des rôles

Contexte : L'application doit autoriser l'accès à certaines pages uniquement pour les utilisateurs avec un rôle spécifique. Le Problème : Aucune gestion des rôles n’est en place pour les actions du contrôleur. Contraintes : Créer un filtre personnalisé qui vérifie les rôles de l'utilisateur avant d'exécuter une action. Livrable attendu : Créer un attribut de filtre personnalisé `RoleAuthorizationAttribute` pour vérifier les rôles des utilisateurs avant d’accéder à certaines actions.

.net mvcfiltercustom+2
Avancé.NET MVC

Création d'un modèle avec des relations Many-to-Many

Contexte : Vous devez gérer des relations entre plusieurs entités. Le Problème : Aucune relation Many-to-Many n'est définie entre les entités. Contraintes : Utiliser Entity Framework pour définir la relation Many-to-Many avec une table de jointure. Livrable attendu : Créer une relation Many-to-Many entre `Student` et `Course`, et implémenter une table de jointure `StudentCourse` pour gérer cette relation.

.net mvcentityframeworkmany-to-many+2
Avancé.NET MVC

Création d'un modèle de données avec des relations One-to-Many

Contexte : Vous devez gérer des entités avec des relations entre elles. Le Problème : La relation entre les entités n'est pas encore définie dans le modèle de données. Contraintes : Utiliser Entity Framework pour établir une relation One-to-Many entre `Category` et `Product`. Livrable attendu : Créer un modèle de données `Category` et `Product` avec une relation One-to-Many et configurer les clés étrangères dans la base de données.

.net mvcentityframeworkrelations+2
Avancé.NET MVC

Création d'une architecture MVC avec séparation des responsabilités

Contexte : Vous commencez un projet ASP.NET MVC et souhaitez organiser l’application avec une séparation claire entre contrôleurs, modèles et vues. Le Problème : L’application est encore peu structurée, avec une logique métier dispersée dans les contrôleurs. Contraintes : Mettre en place une structure MVC en utilisant des services pour la logique métier et des modèles pour la gestion des données. Livrable attendu : Refactoriser l’application en utilisant un contrôleur, un service et un modèle pour gérer une entité `Product`.

.net mvcarchitecturemvc+1
Avancé.NET MVC

Création d'une route POST pour la soumission de données avec un formulaire complexe

Contexte : Un formulaire d'inscription pour un utilisateur avec plusieurs champs doit soumettre des données au serveur. Le Problème : Aucun traitement n’est effectué côté serveur lors de la soumission du formulaire. Contraintes : Utiliser HTTP POST pour soumettre les données du formulaire et assurer une validation côté serveur. Livrable attendu : Créer une route POST dans le contrôleur pour soumettre un formulaire d’inscription et valider les données avant de les enregistrer en base.

.net mvcpostform+1
Avancé.NET MVC

Gestion des erreurs personnalisées avec `HandleErrorAttribute`

Contexte : Une application doit gérer proprement les erreurs qui surviennent pendant l'exécution. Le Problème : Les erreurs ne sont pas capturées et renvoient un message générique. Contraintes : Utiliser le filtre `HandleErrorAttribute` pour capturer les erreurs dans les actions. Livrable attendu : Implémenter le filtre `HandleErrorAttribute` pour rediriger vers une vue personnalisée d’erreur en cas d’exception dans les actions du contrôleur.

.net mvcerrorhandleerror+1
Avancé.NET MVC

Gestion des relations bidirectionnelles avec Entity Framework

Contexte : Vous devez gérer des relations bidirectionnelles entre deux entités. Le Problème : La relation n'est pas correctement gérée des deux côtés. Contraintes : Utiliser les annotations JPA pour gérer correctement les relations entre entités. Livrable attendu : Créer une relation bidirectionnelle entre `Order` et `OrderItem` et s'assurer que les modifications sont bien synchronisées entre les deux entités.

.net mvcentityframeworkrelations+2
Avancé.NET MVC

Implémentation d'une authentification et autorisation de base avec Identity

Contexte : L'application nécessite une gestion des utilisateurs avec authentification et autorisation. Le Problème : Aucun système d'authentification n'est en place. Contraintes : Utiliser ASP.NET Identity pour gérer les utilisateurs, rôles et permissions. Livrable attendu : Implémenter l'authentification avec ASP.NET Identity et sécuriser l'accès à certaines pages avec des rôles utilisateur définis.

.net mvcidentityauthentication+2
Avancé.NET MVC

Implémentation de la pagination dans un contrôleur MVC avec Entity Framework

Contexte : Une liste de produits est trop volumineuse pour être affichée sur une seule page. Le Problème : Les données sont envoyées en une seule fois, ce qui ralentit l'application. Contraintes : Utiliser Entity Framework pour récupérer les données avec pagination. Livrable attendu : Implémenter la pagination dans l’action `Index` du contrôleur en utilisant `Skip()` et `Take()` pour récupérer un sous-ensemble de produits.

.net mvcpaginationentityframework+2
Avancé.NET MVC

Implémentation de la validation de formulaire avec des modèles complexes

Contexte : Une page de création de produit nécessite un formulaire avec plusieurs champs à valider. Le Problème : Aucun mécanisme de validation n'est en place pour garantir la cohérence des données. Contraintes : Utiliser les annotations de données (`[Required]`, `[StringLength]`, etc.) et la validation côté serveur. Livrable attendu : Créer un formulaire de création de produit avec validation des champs `Name`, `Description` et `Price` dans le modèle `Product`.

.net mvcvalidationmodel+2
Expert.NET MVC

Conception d'une architecture MVC avec séparation complète des responsabilités

Contexte : L’application est complexe et nécessite une structure modulaire pour la gestion des contrôleurs, des services et des modèles. Le Problème : La logique métier est répartie dans plusieurs contrôleurs sans véritable séparation. Contraintes : Mettre en place une architecture modulaire en séparant clairement les contrôleurs, services métiers et gestion des données. Livrable attendu : Implémenter une structure MVC bien définie, où chaque couche (Contrôleur, Service, Repository) est clairement séparée et respectée, permettant une meilleure maintenance et testabilité.

.net mvcarchitecturemodularization+2
Expert.NET MVC

Création d’un système d’événements pour découpler les actions métier avec Mediator

Contexte : Vous avez une logique métier qui nécessite des actions secondaires à chaque fois qu'un événement se produit. Le Problème : La logique métier est trop couplée et manque de flexibilité. Contraintes : Utiliser le pattern Mediator pour découpler les événements et les actions correspondantes. Livrable attendu : Mettre en place un système d’événements avec Mediator qui permet de déclencher des actions secondaires lorsqu'un événement métier spécifique se produit, améliorant ainsi la séparation des responsabilités.

.net mvcmediatorevents+2
Expert.NET MVC

Création d'un système de gestion des rôles et permissions dynamique avec ASP.NET Identity

Contexte : L’application nécessite une gestion dynamique des rôles et permissions pour contrôler l’accès aux pages sensibles. Le Problème : Les rôles sont statiques et la gestion des autorisations est manuelle. Contraintes : Utiliser ASP.NET Identity pour gérer les rôles et les permissions, en permettant une évolution dynamique des autorisations. Livrable attendu : Implémenter un système dynamique de gestion des rôles et permissions, permettant de modifier les autorisations en temps réel sans redémarrer l'application.

.net mvcidentityauthorization+2
Expert.NET MVC

Gestion de l’historique des modifications avec Entity Framework et Audit

Contexte : Vous devez garder une trace des modifications des entités sensibles. Le Problème : Les changements effectués sur les entités ne sont pas suivis. Contraintes : Implémenter un système d'audit pour suivre toutes les modifications importantes, telles que les ajouts, mises à jour et suppressions. Livrable attendu : Créer une solution d’audit permettant de suivre et d’enregistrer les changements sur les entités sensibles et d’afficher ces informations dans l’interface d’administration.

.net mvcentityframeworkaudit+2
Expert.NET MVC

Gestion des erreurs globales avec un middleware personnalisé

Contexte : L'application génère des erreurs, mais aucune gestion centralisée n’est effectuée pour les exceptions non traitées. Le Problème : Les erreurs ne sont pas capturées et l'application affiche des messages d’erreur génériques. Contraintes : Créer un middleware qui capture les exceptions globalement et les gère de manière centralisée. Livrable attendu : Implémenter un middleware personnalisé qui gère les erreurs dans l'application et les redirige vers une vue d'erreur générique avec des détails appropriés.

.net mvcerrormiddleware+2
Expert.NET MVC

Gestion des transactions complexes avec plusieurs entités et tables

Contexte : Vous avez plusieurs entités interconnectées et des règles de gestion nécessitant des transactions sur plusieurs tables. Le Problème : Les transactions sont fragmentées et la gestion des erreurs n’est pas cohérente. Contraintes : Utiliser `@Transactional` ou la gestion manuelle des transactions avec des contrôleurs pour garantir la cohérence des données. Livrable attendu : Implémenter une gestion de transactions complexes, avec validation et rollback approprié, en garantissant l'intégrité des données.

.net mvctransactionbackend+2
Expert.NET MVC

Implémentation d’un moteur de recherche avancé avec filtrage dynamique

Contexte : Vous devez permettre à l'utilisateur de filtrer une liste d'entités sur différents critères avec des valeurs dynamiques. Le Problème : La recherche actuelle ne permet pas un filtrage flexible et dynamique. Contraintes : Utiliser des requêtes LINQ avancées avec `Where()`, `OrderBy()`, et des expressions dynamiques pour construire des filtres de recherche. Livrable attendu : Implémenter un moteur de recherche permettant des filtrages dynamiques sur des entités avec plusieurs critères de recherche, tout en optimisant les performances.

.net mvcsearchfiltering+2
Expert.NET MVC

Implémentation d'un système de cache avec Redis pour améliorer les performances

Contexte : L’application subit des ralentissements importants avec un grand nombre de requêtes identiques. Le Problème : L’application ne dispose pas de mécanisme de cache pour réduire la charge de la base de données. Contraintes : Utiliser Redis comme cache pour les requêtes fréquemment exécutées. Livrable attendu : Implémenter un mécanisme de cache distribué avec Redis pour optimiser les requêtes répétitives, réduire les accès à la base de données et améliorer les performances globales.

.net mvcrediscache+2
Expert.NET MVC

Implémentation de l’upload et de la gestion des fichiers avec validation avancée

Contexte : Vous devez permettre à l’utilisateur de télécharger des fichiers tout en vérifiant leur intégrité. Le Problème : Aucune validation de type de fichier ou de taille n'est en place. Contraintes : Implémenter une validation stricte sur le type MIME, la taille du fichier et le stockage sécurisé des fichiers. Livrable attendu : Mettre en place un mécanisme d’upload de fichiers sécurisé avec validation avancée et gestion de l'intégrité des fichiers téléchargés.

.net mvcuploadvalidation+2
Expert.NET MVC

Optimisation des performances avec des requêtes complexes et Entity Framework

Contexte : Vous devez gérer des requêtes complexes avec plusieurs jointures et relations, ce qui impacte les performances de l’application. Le Problème : Les requêtes sont lentes et entraînent des problèmes de performance. Contraintes : Utiliser des techniques avancées d’optimisation des requêtes, comme `Include()` et `AsNoTracking()`, et optimiser les index de base de données. Livrable attendu : Implémenter des techniques d’optimisation pour améliorer les performances des requêtes complexes tout en maintenant l'intégrité des données.

.net mvcentityframeworkperformance+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques .NET MVC : 30 mises en situation | CodeDuel