2010-07-19 5 views
0

Salut c'est une question à tous les développeurs expérimentés qui créent leurs applications web en utilisant ASP.NET (C#) avec MySQL. J'utilise actuellement Microsoft Enterprise Library pour implémenter un modèle de conception d'usine de base de données.Quel modèle de conception fonctionne pour vous? ASP.NET avec MySQL

J'ai un DAL qui retourne un DataTable. J'ai une BLL qui exécute cette DAL qui renvoie une Liste <> de mes DataObjects. Le BLL dispose de paramètres pour le tri, les enregistrements de limite et les filtres. À votre avis, ce qui est de loin un bon modèle de conception qui fonctionnera pour les requêtes transactionnelles et les requêtes contenant un certain nombre de jointures (4 à 10 tables) et conditions.

Je ne suis pas satisfait de la mise en œuvre actuelle et je ne sais pas si cela va fonctionner pour moi à long terme. Je continue à créer des classes DataObjects -> BLL -> DAL à chaque fois.

+0

Cela devrait probablement être une question de "Wiki de la communauté", si elle survit à l'assaut imminent des gens qui sont décidés à le fermer. – Pointy

+0

J'ai vu quelques types de modèles de conception ici. http://w3mentor.com/learn/asp-dot-net-c-sharp/c-asp-net/types-of-design-patterns/. Avez-vous utilisé ceux-ci. Qu'est-ce que vous pensez est évolutif et ne prend pas de temps –

Répondre

1

Pour les requêtes de transaction, je lookinto le modèle UnitOfWork, ce qui peut aider à gérer la complexité de la mise à jour plusieurs objets qui sont modifiés au cours d'un processus qui peut être considéré comme une seule unité de travail (souvent associé directement avec une seule transaction).

Pour les requêtes avec plusieurs jointures, lookintoCommand-Query Responsibility Segregation. L'idée générale derrière CQRS est que nos modèles d'accès aux données semblent très différents lorsque nous interrogeons des données (par exemple, pour le reporting) que lorsque nous demandons des données pour le modifier. CQRS nous dit d'embrasser cette différence et de coder notre accès différemment parce que les exigences techniques de chaque type d'accès sont vraiment si différentes.

+0

c'est un sujet intéressant. –

+0

sont ces modèles réalisables en utilisant des outils ORM. ces problèmes m'empêchent d'utiliser les outils ORM –

+0

Ces modèles sont * certainement * faisables en utilisant les outils ORM. En fait, les ORM - au moins les plus matures - les soutiendront directement. Par exemple, NHibernate Burrow (http://nhforge.org/wikis/burrow/home.aspx) est une implémentation du pattern Unit Of Work. Il rend l'utilisation d'UoW incroyablement facile avec NHibernate ORM et, disons, les applications ASP.Net. –

Questions connexes