2011-05-24 13 views
16

Looks like Azure Storage Emulator omite SQL Azure. ¿Es verdad? Entonces, ¿cómo pruebo mi aplicación que usa SQL Azure sin implementarla en la nube en vivo?¿Cómo puedo realizar pruebas locales contra SQL Azure?

+0

Hay algunos problemas de paridad con las bases de datos de SQL Azure frente a SQL Express (sin embargo, estas se minimizan en el caso de V12).No recomendaría las pruebas creando una instancia local sino una base de datos básica (para la prueba de funcionalidad de la aplicación de subproceso único). Siempre puede exportar la base de datos e importarla cuando sea necesario si está preocupado por la facturación. Antes de entrar en la producción, de todos modos necesita lidiar con la escala/perf, etc., y esas no se pueden analizar localmente. Para evitar futuras sorpresas, el mejor enfoque es crear una edición básica y ampliar según los requisitos –

Respuesta

23

Para las pruebas locales, puede usar un servidor SQL local (completo, expreso o incluso CE) dentro de su aplicación - solo use las conexiones locales en lugar de SQL Azure en sus archivos .cscfg o .config - luego el local la instancia de cómputo se conectará como lo haría cualquier otro proceso local.

En su mayor parte, SQL local y SQL Azure son compatibles e intercambiables. Microsoft afirma que SQL Azure comparte gran parte de su base de código con SQL Server 2008 R2. Como resultado, puede usar SQL Server 2008 R2 o SQL Server 2008 Express localmente para probar su aplicación. De hecho, para aplicaciones "simples" también debería poder usar el nuevo SQL Server basado en archivos.


Para aplicaciones "avanzadas", entonces hay algunas limitaciones con SQL Azure - ver limitaciones en http://msdn.microsoft.com/en-us/library/ee336245.aspx - pero para muchas aplicaciones ASP.NET, que debe ser capaz de migrar sólo de SQL Express a SQL Azure.

Para más detalles sobre SQL vs SQL Azure, consulte http://social.technet.microsoft.com/wiki/contents/articles/comparing-sql-server-with-sql-azure.aspx

Para migrar datos de SQL local para SQL Azure, consulte el Asistente para la migración de SQL en CodePlex - http://sqlazuremw.codeplex.com/

+0

¿Cómo conecto una función que se ejecuta en el emulador de cómputo a mi servidor SQL local? – sharptooth

+1

Simplemente use las cadenas de conexión exactamente como lo haría para su instancia de SQL Azure. Para que sea configurable para la implementación, entonces debe cargarlos en el archivo .cscfg en lugar de en .config – Stuart

+0

. ¿Quiere decir que una función verá mi SQL Server local de la misma manera que lo haría cualquier proceso local? – sharptooth

1

le sugiero que utilice el servidor SQL 2008 Express para el desarrollo imprevisto. puedes migrar eso a la nube una vez que estés listo. Pero debe tener en cuenta las limitaciones contemporáneas y también algunas consideraciones arquitectónicas al usar el servidor SQL.

Y la mejor parte es que solo necesita cambiar la cadena de conexión para conectarse a SQL Azure después de la migración.

1

No, no hay un emulador de SQL Azure local. Como Stuart mencionó, un DB local es la mejor opción para el desarrollo local.

Con SQL Server 2012, tiene la opción de "Local DB". Es un sabor muy ligero de SQL Server 2012 Express. More details here. Sólo funciona en "modo de usuario", lo que significa

  1. Usted no tiene que instalar SQL Server localmente
  2. Usted no tiene que ejecutar SQL Server como un servicio en segundo plano tiempo completo

Después de instalarlo, ahora hay un tipo de proyecto en VS 2012. Similar a CE, crea un archivo MDF y LDF. Se conecta a él con una cadena de conexión como esta:

"Server=(LocalDB)\v11.0; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf" 

Esto me ha funcionado bien; el tamaño de descarga más ligero es bueno (33 MB frente a 133 MB). Quita la carga de mi máquina de desarrollo para no ejecutar un servidor de base de datos en todo momento.

Nota: Al crear los archivos MDF/LDF, probablemente se incluirá en su solución. En mi opinión, debe dejar estos archivos fuera de su VCS. Me gusta usar scripts para crear y actualizar objetos DB, luego verifico esos scripts con mis otros archivos fuente.

Cuestiones relacionadas