¿Cuál es el mejor método para conectar una aplicación de Windows Phone o Windows 8 directamente a un servidor SQL Server?
No se puede conectar directamente a un servidor SQL Server, por el concepto de Metro-Apps-Sandbox.
Sólo pueden comunicarse con un servidor a través de un servicio, la única manera de evitar esta limitación, que yo sepa es una integración SQLite en Apps de Windows 8.
En mi opinión la mejor manera (si se utiliza Visual Studio) es el EntityFramework, parece un poco complejo al principio, pero el ORM realmente ayuda durante el desarrollo (menos errores a través intellisens, más seguridad contra inyecciones). Entonces lo que se hace después es incluirlo en un servicio de datos WCF para posteriormente estar listo para usar cualquier base de datos SQL en la aplicación.
Entity Framework permite a los desarrolladores trabajar con datos en forma de objetos y propiedades de dominio específico, como clientes y direcciones de los clientes, sin tener que preocuparse por las tablas de base subyacentes y columnas donde se almacenan estos datos. Con Entity Framework, los desarrolladores pueden trabajar a un nivel más alto de abstracción cuando se relacionan con los datos, y pueden crear y mantener aplicaciones orientadas a datos con menos código que en las aplicaciones tradicionales
Entonces se puede decidir entre dos formas:
1. Model first- Diseña tu DB dentro de Visual Studio o SQL Server Management Studio
2. Code first- Diseña tu DB basado en clases
Desventajas:
• Si se usa Windows Azure no se puede utilizar n: m (relación directa) debido a algunas restricciones de la base de datos de Azure.
• Es necesario llamar a la base de datos asincrónica para el desarrollo en Windows 8.
Por lo tanto, siempre hay algo de confusión entre el viejo uso del cliente de EF y el nuevo uso en Windows 8.