Question

J'essaie d'apprendre Asp.net Mvc et j'essaie ce tutoriel .

Ils parlent du modèle de référentiel et de la facilité de passer à une autre technologie d'accès aux données au lieu d'appeler directement Linq vers Sql.

L'utilisation de LINQ to SQL dans une classe de contrôleur rend difficile le changement de technologie d'accès aux données à l'avenir. Par exemple, vous pouvez décider d'utiliser Microsoft LINQ to SQL pour utiliser Microsoft Entity Framework en tant que technologie d'accès aux données. Dans ce cas, vous devrez réécrire tous les contrôleurs qui accèdent à la base de données au sein de votre application.

Remarque: je n'avais jamais vraiment compris comment une interface fonctionnait avant de lire ce tutoriel et ce n'est toujours pas clair à 100%. Je le vois maintenant comme une sorte de "modèle" pour une classe.

Après avoir utilisé avec succès Linq to Sql, j’ai pensé que ce serait bien d’essayer Ado.net Entity Framework car je lisais beaucoup de choses à ce sujet. Ils ont dit qu'en utilisant le modèle de référentiel, il serait facile de passer, alors j'ai pensé tester cela.

Ma question est la suivante: que dois-je faire pour passer à Ado.net EF?

C'est ce que je pense que je devrais faire.

  • Ajoutez le fichier Movie.edmx et configurez-le (ajoutez mon tableau de film).
  • Écrivez une nouvelle classe basée sur IMovieRepository et appelez-la éventuellement MovieEFRepository.
  • Modifiez le paramètre dans le constructeur du contrôleur en MovieEFRepository. C’est la première chose que je trouve étrange, car dans le didacticiel, ils disent que ne pas utiliser le référentiel vous obligera à changer tous les contrôleurs si vous passez à une autre source de données. De toute façon, n’ai-je pas besoin de changer chaque contrôleur puisque je spécifie la classe MovieRepository?
  • Le dernier ajustement que je pense devoir faire est de changer la vue. Parce qu'il utilise la classe Product créée par le concepteur Linq to Sql. Je ne sais pas comment je vais faire cela. J'imagine que j'aurais dû utiliser un objet qui ne dépendait pas du fichier dbml?

Pardonnez-moi si j’ai une vision légèrement simpliste de Asp.net Mvc. Je suis un webdesigner très intéressé par le développement Web Asp.net.

Était-ce utile?

La solution

Vous pourriez avoir votre référentiel découplé à cause de l'injection, pas si vous avez suivi uniquement les exemples à cause de

public MoviesController (): this (nouveau ** MovieRepository ** ())

Je vous recommande de lire sur IOC, c’est facile et très intéressant, vous pouvez utiliser un conteneur ioc comme Castle Castle.

Avec cela, votre contrôleur aura un seul constructeur, celui avec l'interface, et ne devra pas être changé.

Avec vos entités, vous pouvez faire la même chose qu'avec les contrôleurs, créez une interface pour chaque entité et utilisez également le modèle ioc. Vous n'aurez plus qu'à modifier votre fichier de configuration pour votre conteneur ioc.

Si vous ne faites pas ces choses, votre droit, vous devrez changer tout ce que vous avez dit.

J'espère que cette aide! désolé pour mon anglais!

Autres conseils

Donc, après quelques jours de lecture et beaucoup de recherches sur Google, je me suis mis au travail. J'ai d'abord essayé de savoir ce que voulait dire IoC (Inversion of Control).

L’un des premiers sites que j’ai trouvé était un site Web contenant une capture d’écran sur Unity. Ce qui est un framework DI / IoC pour .Net.

En le regardant maintenant, c’est en fait un très bon screencast et un exemple de la facilité avec laquelle il est facile d’utiliser Unity et IoC / DI. À l’époque, je ne comprenais pas tout à fait que j’ai continué à googler.

Un site Web que j'ai rencontré en permanence est celui de Martin Fowler.

Pour moi, une personne novice dans le codage de ce site Web est un peu abstraite. Cela peut aussi paraître étrange, mais la police, la hauteur de ligne et la typographie de ce site Web étaient vraiment affreuses, ce qui rendait la lecture encore plus difficile.

Le site Web suivant que j'ai lu parlait du château de Windsor, car Alfredo Fern nous disait que c'était facile à utiliser.

La documentation n’était pas trop mauvaise, mais j’ai eu quelques problèmes pour convertir leur "démarrage". exemple de base de mon application Asp.net Mvc. Les parties 2 et 3 étaient également absentes.

Après cela, j'ai commencé à chercher les différents cadres pour voir si je pouvais trouver un exemple vraiment basique. Si je regardais de nouveau le premier screencast, je l’aurais corrigé beaucoup plus tôt, mais j’en ai perdu le fil.

J'ai eu beaucoup de problèmes avec les fichiers de configuration XML et je n'arrivais pas à les faire fonctionner. J'ai essayé Windsor, Structure Map et Spring.net mais je me suis toujours retrouvé coincé avec les fichiers XML.

J'ai donc décidé d'aller sur le site Asp.net Mvc parce que c'est là que j'ai commencé à apprendre Asp.net Mvc. J'ai trouvé les premiers screencasts et présentations MIX09 très clairs et j'ai compris la plupart des choses dont les gens parlaient. Je me suis retrouvé coincé au deuxième screencast de Rob Conery lors de la construction de l'application Storefront. Parce que j'en savais un peu plus sur le référentiel et l'IOC / DI, je pensais que ce serait une bonne idée de commencer à regarder à nouveau les screencasts de Rob Conery. Dans l’un des screencasts, il parle de télécharger tous les échantillons sur codeplex.

Je suis allé à codeplex et ai découvert que vous pouvez parcourir

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