¿Code First with Migrations o SQL Server Data Tools se ajusta mejor?

11

Me dieron una especificación para crear un nuevo sitio web MVC4, al principio no será un proyecto demasiado grande, pero sospecho que crecerá a medida que el negocio obtenga nuevas ideas para él.

Usando .NET 4.5 ASP.NET MVC4 y EF Tengo que elegir entre el código primero con migraciones o las Herramientas de datos del servidor SQL (SSDT) ​​para manejar mi base de datos.

Con el SSDT puedo controlar mi base de datos en un proyecto como parte de mi solución y manejar los cambios desde el desarrollo hasta la producción y más allá usando archivos dacpac. Mi experiencia con el código primero de MVC3 fue no usarlo más allá del desarrollo debido a las limitadas opciones de base de datos. Siempre terminaría soltando el Db en el cambio de modelo o manejando los cambios de Db manualmente. Sin embargo, creo que MVC4 Migrations ya no es el caso y ahora puedo enviar actualizaciones a la base de datos.

Entonces, mi pregunta es cuál es la más eficiente de usar en función del ahorro de tiempo / esfuerzo en el desarrollo, pero también escalable y capaz de manejar los cambios de producción. Me gustó el código primero y la capacidad de generar mi base de datos a partir de modelos, ¿la introducción de migraciones ahora la hace viable en la producción?

James
fuente

Respuestas:

2

Mi opinión personal es que Codefirst es una gran herramienta y excelente para el desarrollo. Los pasos del primer desarrollo de la base de datos deben ser la creación de scripts de herramientas externas o de forma manual, si ya tiene una base de datos de producción.

El código primero se incluirá en el desarrollo del sistema de control de versiones de la base de datos y proporciona un desarrollo de base de datos distribuido.

Punto de partida, es una buena serie:

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

Gábor Plesz
fuente
¿Has probado el ssdt, pudiste comparar los 2?
James
1
Sí, lo uso regularmente en versiones anteriores de SSDT. Miré la más reciente en estos enlaces: 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 /… . No he probado la prueba de la unidad de base de datos, pero creo que la clave se debe usar una al lado de la otra, primero el código y el SSDT.
Gábor Plesz
Leeré esos blogs pronto. No pensé que el código primero y SSDT funcionarían lado a lado. ¿A menos que se refiera a usar código primero durante el desarrollo y cambiar a SSDT para producción? ¡Leeré tus enlaces!
James
Estoy haciendo el primer método de código de desarrollo de base de datos. La migración de codefirst resuelve los pasos para instalar la base de datos (crear una nueva tabla, una nueva columna a una tabla existente, etc.). Por ejemplo, si desea crear pruebas unitarias de base de datos , también puede usar el SSDT. Si queremos comparar dos estructuras , también podemos usar el SSDT. Al menos, así que lo uso. Desarrollo y despliegue de codefirst muy bueno.
Gábor Plesz
Por lo que parece, SSDT es perfecto para Db First y por todo lo que dijiste y publicaste, parece que las opciones de migración agregadas a MVC4 hacen que el código primero se pueda usar más allá del desarrollador inicial.
James