2010-11-05 16 views
0

J'ai un peu de dilemme moral, à savoir si nous utilisons automapper de la bonne façon et si notre architecture est valide. Je suis un développeur relativement nouveau, mais cela me semble faux. Mon collègue est un grand fan de automapper (ce qui est compréhensible, ça bouge) mais mon problème est que nous l'utilisons juste pour le plaisir et essayons de faire du klaxon dans un motif juste parce que "c'est comme ça". Fondamentalement, nous construisons une extension Web à une application interne qui a une API et une base de données Sql méchant. Nous avons créé un certain nombre de vues sql pour extraire les données dont nous avons besoin pour chaque écran. Les vues sont ensuite appelées à l'aide de linq2sql et d'un modèle de référentiel qui transmet ensuite les données à une couche de service qui automatise les données à peu près comme pour produire les objets Viewmodel à transmettre à la vue. Mon problème est que nous avons vraiment besoin d'autmapper ici sûrement nos données sont déjà à un stade où nous pouvons voir .. Aussi un argument pour cela est de nous donner le contrôle en utilisant les métadonnées du modèle de vue mais sûrement cela pourrait être fait avec les classes buddy sur linq2sql entités?Besoin d'éclaircissements sur l'utilisation d'AutoMapper

Ai-je manqué quelque chose ou cela semble-t-il un complexe non essentiel? J'ai aussi cherché à utiliser les contrôles teleriks pour la grille, mais avec automapper debout entre mes données et la sortie, je ne suis pas sûr de hom pour faire face à cela?

Merci pour toute entrée;)

+0

À quoi ressemble l'interface utilisateur? Affichez-vous le résultat sur une page Web? Tournage à travers la WCF? Les modèles ont-ils une logique supplémentaire qui ne peut pas être intégrée dans les objets générés de linq à sql? – Will

+0

Nous affichons dans une application MVC avec beaucoup de partiels, etc. A la minute les modèles n'ont pas beaucoup de logique sinon le modèle d'édition aura probablement, mais ce n'est que pour les écrans de vue. la logique a été placée dans les vues sql. –

Répondre

1

J'ai construit une taille modérée application Web ASP.NET MVC qui ressemble à son architecture était très semblable à ce que vous décrivez. Nous avons constaté que l'exposition directe de nos objets LINQ to SQL en tant que modèles de vue à nos vues créait beaucoup de friction dans le projet, car plusieurs de nos vues composaient plusieurs objets LINQ to SQL ou ne dépendaient que d'un sous-ensemble des données d'un objet LINQ to SQL . Tard dans le projet, nous avons commencé à utiliser AutoMapper pour mapper des objets LINQ to SQL afin de visualiser des modèles (et inversement) et cela a certainement permis à notre système d'être beaucoup plus flexible. Donc je le recommanderais.

+0

Heureux d'entendre cela, Comment avez-vous gérer une grande liste de données/pagination etc avec automapper? C'est mon plus gros problème à la minute. –

+1

Nous avons passé l'index de la page et la taille de la page jusqu'à la couche de données où nous pouvions utiliser Skip(). Take() sur un IQueryable pour récupérer les résultats paginés. –