2011-07-26 12 views
12

Tengo un cliente que dirige una pequeña empresa. Necesitan una solución de base de datos personalizada y estoy buscando varias opciones. Mi experiencia se limita a .NET usando servidores SQL locales (no ASP.NET), sin embargo, este cliente no es técnico y se beneficiaría de poder externalizar las tareas de DBA. Soy un completo novato de Azure, acabo de escanear los tutoriales y todos parecen dirigirse al desarrollo de soluciones MVC ASP. El cliente no necesita una solución basada en navegador. Un cliente de escritorio gordo utilizado desde diferentes oficinas geográficas sería la opción menos costosa que puedo ofrecer. Solo estoy tratando de ahorrar algo de tiempo revisando todos los tutoriales y documentos solo para descubrir que esto no es lo que pretende hacer SQL Azure. En efecto mis preguntas se reducen a:Es SQL Azure adecuado para aplicaciones de cliente de escritorio

  1. ¿Puedo desarrollar una aplicación de C#/.NET WPF escritorio utilizando Entity Framework 4 y lo han golpeado SQL Azure en lugar de un servidor SQL Server local.?

  2. ¿Existen errores conocidos con EF4 y SQL Azure?

  3. Existen otros costos/complicaciones de desarrollo ocultos en el uso de SQL-Azure en lugar de un servidor SQL local.

  4. ¿El soporte de la herramienta básica es el mismo? Un ejemplo específico en el que puedo pensar; Cómo obtengo una herramienta de perfil de SQL para solucionar problemas?

  5. La última pregunta está relacionada con la seguridad y no soy lo suficientemente sofisticado como para hacer una buena pregunta, pero está golpeando un SQL Azure db considerado como una seguridad, ¿no?

Respuesta

7
  1. Sí, se puede, pero un enfoque más adecuado sería utilizar WCF Data Services u otra forma de servicios web (ASMX o WCF) como una capa de servicios para su aplicación. Me gusta este enfoque para aplicaciones de línea de negocio. Odio las aplicaciones web para la línea de negocios y al utilizar una aplicación de escritorio WPF conectada a servicios, obtienes los beneficios de correr en la nube y tener una oferta en la nube sin la necesidad de estar basado en HTML.

  2. SQL Azure tiene soporte completo para EF en estos días. En el pasado hubo algunos problemas, pero no he encontrado ninguno estos días.

  3. En términos de costos de desarrollo y complicaciones, el entorno alojado en el escritorio de Azure es un poco de un PITA desde una perspectiva de desarrollo, pero no he tenido problemas importantes. Perderá la capacidad de compartir un DEV SQL Server local a menos que use una instancia alojada ... por supuesto, hay un costo de desarrollo porque tiene que pagar por el uso.

  4. ¡Buen punto! SQL Azure no proporciona soporte de SQL Profiler en este momento. Personalmente utilizo el soporte integrado de seguimiento de EF para esta funcionalidad.

  5. La exposición de una base de datos SQL Azure directamente no es una buena idea desde una perspectiva de seguridad. Es por eso que sugiero que golpean una Servicios de datos de WCF (u otros servicios web) punto final en el punto 1.

+0

No estoy seguro de lo que quiere decir acerca de no poder compartir un servidor local de desarrollo de SQL Server? No hay nada que te impida usar un SQL Server local o SQL Express para dev (de hecho, tiene mucho sentido), simplemente cambiando la cadena de conexión. ¿Puedes explicar? –

+0

Gracias por la respuesta detallada. Tengo algo de experiencia en WCF (LAN solamente), así que esa es probablemente la ruta a seguir. Debería haber mencionado que soy nuevo en EF (aunque tengo algunos linq to SQL exp.). Mirando algo de entrenamiento en EF Me sedujeron algunas de las funciones de arrastrar y soltar RAD, pero puedo ver cómo a la larga estoy mejor con una capa de servicio. Una cosa que todavía encuentro confusa acerca de WCF son todas las elecciones vinculantes (particularmente todos los sabores ws *). En mis proyectos, solo he usado net.tcp, pero probablemente no sea apropiado aquí. ¿Alguna sugerencia? – Tod

+0

Me refiero a ejecutar una máquina virtual Azure y tener un entorno azul "real" con el que otros puedan conectarse. Supongo que podrías y proporcionar una cadena de conexión a eso ... pero generalmente he seguido el camino sugerido y ejecuto un servidor SQL común. – Jeff

5

Usted puede desarrollar una aplicación de escritorio o en las instalaciones que utiliza SQL Azure para su base de datos.

Debe tomar las precauciones estándar de Azure: suponga que se producirán fallas de conexión y asegúrese de que su aplicación tenga una lógica de reintento para restablecer la operación.También tenga en cuenta que SQL Azure terminará cualquier operación que tarde más de un minuto, para preservar el servicio para otros usuarios. Si tiene muchos datos y algunas consultas desagradables, eso podría ser relevante.

EF funciona bien con SQL Azure. Existen algunas limitaciones a SQL Azure, de las cuales puede leer acerca de la documentación en el sitio web de Microsoft. Si diseñas tu base de datos para Azure, funcionará bien en SQL Server o SQL Express (pero no necesariamente al revés).

Además del cargo mensual de la base de datos, pagará los datos que abandonen el centro de datos. Diseñe su aplicación cuidadosamente para minimizar la cantidad de datos que se recuperan de la base de datos. Ya no tiene que pagar los datos que entran en el centro de datos, lo que ayuda.

Puede seguir utilizando SQL Management Studio y conexiones de datos en Visual Studio. Sin embargo, no hay un Analizador de SQL. Hay algunas cosas irritantes que no puedes hacer con Management Studio, pero nada insuperable.

Tendrá que abrir reglas de firewall para acceder a la base de datos, pero ojalá que sean limitadas. La autenticación es por credenciales de SQL Server, no autenticación integrada.

No tendería a hacerlo de esta manera, pero funciona.

+0

Gracias por señalar "precauciones estándar de Azure", ya que soy nuevo en esto, es bueno tener un aviso sobre eso mientras me pongo al día con los documentos. Su comentario sobre el pago de los datos que salen del centro de datos me tomó por sorpresa. Antes de publicar, pensé que entendía los costos mensuales [de la sección de precios y medición] (http://www.microsoft.com/windowsazure/features/database/). ¿Tiene un enlace para que se muestren los cargos de datos adicionales? – Tod

+1

Consulte http://www.microsoft.com/windowsazure/pricing/ - la sección titulada "Transferencias de datos medidas en GB (transmisiones desde y hacia el centro de datos de Windows Azure)". –

Cuestiones relacionadas