Je suis nouveau sur ASP.NET MVC et j'essaie d'implémenter les meilleures pratiques pour une application de petite à moyenne taille qui utilise un service Web comme source de données. Le service Web expose les méthodes suivantes pour soutenir l'application:Modèle de référentiel MVC/Services Web SoC Question
- AuthenticateCustomer - renvoie l'ID client si e-mail valide/mot de passe
- GetCustomer - retourne un objet sérialisé contenant des informations client
- Etc
Ma question est, tous ces services retournent des valeurs de succès (bool) et de message (chaîne) selon le résultat de l'opération. Le message contient des informations descriptives si une erreur s'est produite. Je ne suis pas sûr si l'appel des services Web appartient à la couche Repository, mais je pense qu'il est important de pouvoir transmettre les valeurs Success et Message via les couches Repository -> Service -> Controller. La seule façon que je peux penser à faire est soit jonchant les méthodes du référentiel avec sur les arguments:
public int AuthenticateCustomer(string Email, string Password, out bool Success, out bool Message);
ou créer une sorte d'enveloppe qui contient la valeur de retour prévue (entier) et le succès et les valeurs de message. Cependant, chaque méthode de service Web renvoie des valeurs différentes, de sorte qu'un wrapper de taille unique ne fonctionnerait pas. En outre, ces valeurs devraient être transmises à travers la couche Service, et il semble que la validation de quelque sorte se passe au niveau du Repository. 1. Séparation des problèmes (validation, accès aux données via le service Web) pendant que ... le chemin de la vue?
P.S. - Désolé pour la question laconique. C'est un peu difficile à expliquer avec n'importe quelle sorte de brièveté.
Martin, Votre réponse est logique. En y réfléchissant, mon application ne «possède» pas les données et n'est pas responsable de la conservation des données dans le stockage persistant (le service web gère cela), éliminant ainsi le besoin d'un référentiel explicite. Merci de votre participation. – Ariel