Question

J'ai lu le livre Pro ASP NET MVC Framework et je suis vraiment confus avec beaucoup de choses.J'ai essayé de faire quelques recherches, mais je constate qu'avec autant d'approches et de concepts différents qui me sont proposés, cela ne fait qu'empirer les choses.
J'ai donc quelques questions :

  1. Je sais que MVC est censé diviser les fonctionnalités en trois éléments principaux :Modèle -> Contrôleur -> Vue.Le MVC est-il une approche différente de l’architecture à trois niveaux ?Ou suis-je toujours censé penser à créer une couche d'accès aux données et une couche de logique métier dans mon projet ?

  2. Que sont exactement les référentiels ?C'est ce qui fait office de couche d'accès aux données ?Où/Comment les référentiels s'intègrent-ils dans le MVC ?

  3. Le livre parle de l'utilisation de LINQ to SQL pour interagir avec la base de données, mais il indique néanmoins que LINQ to SQL ne sera pas pris en charge à l'avenir et que Microsoft l'abandonnera pour Entity Framework.Où s'intègre Entity Framework dans le MVC et comment puis-je interagir avec lui ?

Merci d'avance pour votre aide!
Mat

Était-ce utile?

La solution

  1. MVC est principalement un motif pour la couche de présentation et se concentre sur l'interaction entre la vue et le contrôleur. Le modèle peut être considéré comme la les composants de l'application chargés de maintenir l'état , y compris la persistance.

    Dans une application simple, le modèle peut simplement être un modèle LINQ-To-SQL. Dans une application d'entreprise de grande taille, le modèle peut contenir une couche d'accès aux données, une couche métier et une couche de domaine. ASP.NET MVC ne vous limite pas à la manière dont le M doit être implémenté.

  2. Le modèle Référentiel est un moyen d'implémenter la partie persistance du paramètre M. ActiveRecord en est un autre. Le modèle à choisir dépend de la complexité de l'application et de vos préférences.

    Jetez un coup d’œil à la étape 3 du didacticiel NerdDinner où ils créent une référentiel utilisant Linq to SQL.

  3. Linq to SQL ne sera pas mort. Microsoft continuera d’améliorer le noyau et d’ajouter les demandes des clients lorsque cela aura du sens, mais Entity Framework sera l’objectif principal. Jetez un coup d'œil à ce post pour LINQ des modifications SQL dans .NET 4.0 .

    EF peut être utilisé de la même manière que LINQ to SQL, mais il est également plus flexible et peut donc être utilisé d’une autre manière. Par exemple, EF4 supportera plus ou moins la persistance de vos propres objets POCO dans une conception davantage axée sur le domaine.

Autres conseils

Oui, je pense que MVC est une approche différente de "l'architecture" à 3 niveaux que je pense que vous vouliez dire ici (l'architecture dans laquelle vous créez principalement 3 projets DAL, BL et UI).L'idée principale derrière MVC est la séparation des préoccupations entre chacun de ses composants (Modèle, Vue et Contrôleur).Le contrôleur est le composant responsable du traitement des demandes des utilisateurs et, dans la plupart des cas, il s'associe au composant "Modèle" afin d'afficher la vue souhaitée en réponse à la demande de l'utilisateur.La différence entre cette architecture et l'architecture traditionnelle à 3 niveaux est que le DAL et le BL sont désormais regroupés et nommés modèle et oui, vous devez toujours créer ces composants.
Que sont les référentiels ?
Martin Fowler mentionne la définition d'un référentiel comme "Intervient entre les couches de domaine et de mappage de données à l'aide d'une interface de type collection pour accéder aux objets de domaine" Les référentiels font partie de votre couche d'accès aux données, ils n'accèdent pas aux données par eux-mêmes, ils servent d'intermédiaire entre le domaine et les entités de mappage de données, et bien sûr, ils doivent être placés dans votre dossier/projet Modèle.

Linq to SQL sera-t-il obsolète ?
NON et le même livre l'indique, Damien Guard (développeur de l'équipe ADO.NET) a également mentionné dans l'un de ses articles de blog que Linq to SQL sera inclus dans .NET 4.0.

Comment interagir avec EF ?
Comme vous le feriez avec Linq to SQL.Comme Linq to SQL, Entity Framework sera vos entités de mappage et résidera également dans le projet Model.
J'espère que cela t'aides!

Je suppose que vous êtes un peu confus à propos de ces choses et qu'elles sont déroutantes, alors allons-y lentement.

  1. L'architecture N-Tiered Architecture et MVC sont différentes, mais s'entremêlent. N-Tier parle généralement de la séparation de l'accès aux données, de la logique métier et de l'interface utilisateur. Cependant, certaines personnes peuvent faire valoir qu'il est impossible de séparer totalement les niveaux de solvabilité de l'interface utilisateur; MVC adresse cela, de telle manière qu’un contrôleur correspondant communique avec votre BLL et votre vue, au lieu que votre vue parle directement à votre BLL.

  2. Oui, disposer de référentiels est l’une des méthodes permettant d’avoir un DAL . Il y a plusieurs façons de le faire, et vous ne devriez pas vous limiter à ce qui est discuté dans le livre.

  3. Le livre utilise uniquement LINQ to SQL pour présenter ASP.NET MVC de la manière la plus rapide possible, mais ce n'est PAS la seule solution. Ne pensez plus à LINQ to SQL pendant une minute; ASP.NET MVC peut être utilisé, que vous utilisiez un ORM tel que NHibernate ou que vous utilisiez du type ADO.NET + DAL Factory ou autre chose. Ce que vous ne pourrez pas utiliser, ce sont ceux ASP.NET ObjectDataSources que vous glissez-déposez avec votre interface utilisateur.

En ce qui concerne Entity Framework, Brad Abrams a rédigé un guide intéressant sur comment utiliser Entity Framework avec ASP.NET MVC , ce qui devrait couvrir votre dernière question.

HTH

  1. Oui, vous devez toujours créer vous-même les couches d'accès aux données et de logique métier. Certains diront peut-être que la couche de contrôleur EST la logique métier, mais je préfère personnellement la séparation entre la logique métier réelle (par exemple, le calcul du prix) et la logique métier à l'écran (le gestionnaire d'événements pour le bouton "OK", par exemple). Vous les appellerez ensuite depuis votre classe de contrôleur. La classe de contrôleur contrôle la logique de votre écran et gère la conversion de votre couche de logique de données / métier en valeur d’écran.

  2. le framework ASP.NET MVC n'impose aucune restriction au " modèle " couche, ce qui signifie que vous pouvez utiliser ce que vous voulez, y compris NHibernate, LINQ to SQL ou une structure d’entité. J'utilise LINQ to SQL parce que c'est simple.

  3. Pas sûr, ne lisez jamais ce livre. Je viens de télécharger le projet Nerddinner de Scott Hanselman depuis codeplex et je l’utilise comme guide pour la rédaction de sites Web ASP.NET MVC.

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