J'ai fait un peu de programmation Linq avec TDD ASP.Net MVC et je l'ai adoré. En digressant, j'apprends maintenant les formes de Web contre les procs stockés et ne peux pas employer linq. Je voudrais conserver une partie du couplage lâche et de la testabilité apprécié avec MVC.Aide à la conception de mon propre DataContext brut
Je n'avais pas le temps d'apprendre et de configurer une infrastructure d'injection de dépendance. J'ai donc créé une fabrique d'objets pouvant être configurée pour créer des instances fictives ou réelles selon ce qui est requis. Le problème avec cette approche est que l'usine sert de nouvelles instances de mes référentiels de test, donc quand l'entité A demande le référentiel pour l'entité B, elle obtient une nouvelle instance sans les modifications effectuées dans le contexte de mon test unitaire - ceci est le problème. Comme mes instances de test n'ont aucun mécanisme de persistance et que je n'utilise pas l'injection de dépendance, j'ai besoin d'un moyen pour l'Entité A d'accéder au contexte de données actuel de mon test unitaire pour pouvoir récupérer le référentiel sale de l'Entité B. J'ai l'habitude de créer mon dataContext en tant que singleton, mais en raison des problèmes de concurrence avec les applications web, je l'ai exclu.
Je cherche un joli motif à suivre à la place. En tant qu'interruption, j'ai demandé que tous les référentiels et objets métier soient instanciés avec un contexte de données créant un type de hiérarchie où dataContext instancie le référentiel avec dc qui instancie à son tour les objets métier avec dc.
Je n'ai pas utilisé de modèle composite, d'héritage ou d'interface (sauf pour les moqueurs). Je ne suis pas un programmeur OO mais ça a l'air plutôt moche. Est-ce que quelqu'un a eu de bonnes suggestions de modèles que je devrais suivre qui pourraient ranger ma solution?
TIA
Etes-vous sûr de ne pas pouvoir utiliser LINQ à cause des procédures stockées? LINQ to SQL les supporte. –
Ouais - l'exigence dit 'no linq' –