Le code d'abord avec les migrations ou les outils de données SQL Server est-il mieux adapté?

11

On m'a donné une spécification pour créer un nouveau site Web MVC4, ce ne sera pas un projet trop important au début, mais je soupçonne qu'il va croître à mesure que l'entreprise obtient de nouvelles idées.

En utilisant .NET 4.5 ASP.NET MVC4 et EF, je dois choisir entre le code en premier avec les migrations ou Sql Server Data Tools (SSDT) ​​pour gérer ma base de données.

Avec le SSDT, je peux contrôler ma base de données dans un projet dans le cadre de ma solution et gérer les changements tout au long du développement jusqu'à la production et au-delà en utilisant des fichiers dacpac. Mon expérience du code en premier de MVC3 n'était pas de l'utiliser au-delà du développement en raison des options de base de données limitées. Cela finirait toujours par abandonner la base de données lors du changement de modèle ou gérer les modifications de la base de données manuellement. Cependant, je suis amené à croire qu'avec MVC4 Migrations ce n'est plus le cas et je peux maintenant pousser les mises à jour de la base de données.

Ma question est donc celle qui est la plus efficace à utiliser, basée sur le gain de temps / effort de développement, mais également évolutive et capable de gérer les changements de production. J'ai aimé le code en premier et la possibilité de générer ma base de données à partir de modèles, l'introduction de migrations la rend-elle désormais viable en production?

James
la source

Réponses:

2

Mon opinion personnelle est que c'est un excellent outil de codefirst et idéal pour le développement. Les étapes du premier développement de la base de données doivent consister à écrire des outils externes ou à la main, si vous avez déjà une base de données de production.

Le code est le premier à être inclus dans le développement du système de contrôle de version de base de données et fournit un développement de base de données distribué.

Point de départ, c'est une bonne série:

http://coding.abel.nu/2012/02/using-entity-framework-to-create-a-database/

Gábor Plesz
la source
Avez-vous essayé le ssdt, capable de comparer les 2?
James
1
Oui, je l'utilise régulièrement dans la version précédente de SSDT. Je regardais le plus récent à ces liens: msdn.microsoft.com/en-us/jj650015 , sqlblog.com/blogs/jamie_thomson/archive/2013/03/21/... , develop.com/sqlservertwelvedatatools , blogs.msdn.com/ b / ssdt / archive / 2012/12/13 /… . Je n'ai pas essayé le test unitaire de base de données, mais je pense que la clé doit être utilisée côte à côte le codefirst et le SSDT.
Gábor Plesz
Je vais bientôt lire ces blogs. Je ne pensais pas que le code en premier et le SSDT fonctionneraient côte à côte. À moins que vous ne vouliez dire utiliser le code en premier pendant le développement et passer au SSDT pour la production? Je vais lire vos liens!
James
Je fais la première méthode du code de développement de base de données. La migration codefirst résout les étapes d'installation de la base de données (création d'une nouvelle table, d'une nouvelle colonne vers une table existante, etc.). Par exemple, si vous souhaitez créer des tests unitaires de base de données , vous pouvez également utiliser le SSDT. Si nous voulons comparer deux structures , nous pouvons également utiliser le SSDT. Du moins, je l'utilise donc. Développement et déploiement de codefirst très bon.
Gábor Plesz
D'après ce que je semble, SSDT est parfait pour Db First et d'après tout ce que vous avez dit et publié, il semble que les options de migration ajoutées à MVC4 rendent le code d'abord utilisable au-delà du développement initial!
James