Question

Je commence un nouveau projet MVC où il existe des règles particulières et un peu d'étrangeté, et cela m'intrigue. Plus précisément, j'ai accès à une base de données contenant toutes mes données, mais celle-ci doit être entièrement gérée via un service Web externe. Ne me demandez pas pourquoi, je ne comprends pas les raisons. C'est comme ça.

Le CRUD sera donc géré via cette API. Je prévois de créer une couche de service qui mettra fin à tous les appels, mais je ne parviens pas à comprendre le modèle ... Pour créer mes objets de domaine basés sur un modèle (clients, commandes, etc.) devrais-je:

  1. Créez-les tous manuellement
  2. Créer une base de données fictive et y diriger un ORM
  3. Pointez un ORM sur la base de données existante mais ignorez la persistance de l'ORM au lieu de l'API.

J’ai l’impression que j’ai toutes les informations dont j’ai besoin pour construire cela, mais je commence à me familiariser avec l’API. Tout pointeur ou conseil serait grandement apprécié.

Était-ce utile?

La solution

En fonction de l’ampleur de ce que vous faites, l’option 3 est dangereuse, car vous supposez que le modèle de base de données est identique à celui exposé par le service externe. Les options 1 et 2 ne sont pas très différentes à mon humble avis - dans un cas comme dans l'autre, vous devrez décider quels objets, propriétés et comportements vous allez adopter - tout se résume à savoir si vous êtes plus à l'aise en cours ou des tables de base de données.

L'essentiel est de s'assurer que les appels de service externes sont cachés derrière une sorte de wrapper. Personnellement, je mettrais ensuite un référentiel sur celui-ci pour gérer l'interrogation du wrapper de service externe et renvoyer des objets de domaine.

Autres conseils

En général, les ORM ne sont pas connus pour leur capacité à générer des classes de modèle de domaine propre. Les ORM sont connus pour créer des couches de données, dont vous semblez ne pas avoir besoin dans ce cas.

Vous pourriez probablement utiliser un outil de génération de code tel que T4 pour générer une première passe au niveau de vos classes de modèle de domaine, en fonction du service Web ou de la base de données, si cela pouvait vous faire gagner du temps. Sinon, vous ne feriez probablement que créer manuellement les objets du domaine. Même si votre code génère une première passe au niveau de vos objets de domaine, il est peu probable qu'un mappage 1-1 propre à vos objets de domaine soit à partir de la base de données ou du service Web. Vous devrez donc probablement passer beaucoup de temps à éditer manuellement votre domaine généré par code. classes de toute façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top