Para un proyecto, debo implementar una comunicación entre una base de datos alojada en un servidor web y varios clientes en Internet. Después de leer un poco y ver algunos videos introductorios sobre posibles tecnologías (Microsoft) me di cuenta de que me parece que tiene (al menos) tres opciones:WCF, servicios web o servicios de datos ADO.NET: ¿Qué debo usar?
1) Windows Communication Foundation (WCF)
2) ASP. los servicios web NET
servicios de datos 3) ADO.NET
Porque no estoy familiarizado con cualquiera de esas tres tecnologías que tengo que aprender (esperemos solamente) una de ellas en profundidad - y la pregunta es: ¿Cuál?
O para ser más precisos: ¿Cuál para la siguiente tarea?
Los datos deben cargarse desde un cliente al servidor/base de datos y también se deben descargar algunos otros datos. En el lado del cliente, esto no ocurrirá de forma interactiva por un usuario que trabaja en un navegador sino como un proceso automático en el cliente que se ejecutará periódicamente (cada 2 horas, por ejemplo).
a) Por el lado servidor web habrá:
- Una base de datos de SQL Server
- .NET Framework 3.5 SP1
- Una biblioteca de clases que representa la estructura de base de datos y modelado con ADO.NET Entity Framework
- (Una aplicación web ASP.NET que presentará los datos en la base de datos en un navegador: pongo esto entre paréntesis aquí porque esta aplicación web realmente no importa ya que la descarga/descarga de datos mencionada no se activará a través de una GUI del navegador.)
b) El lado del cliente es menos claro y debe ser más flexible. Aquí tengo que distinguir entre dos requisitos:
i) Prioridad Uno (en términos del tiempo que tengo disponible para el desarrollo):
- El lado del cliente está bajo mi control, que significa: tengo alguna Windows OS en el cliente, puedo instalar .NET Framework y puedo decidir desarrollar un servicio de Windows, una aplicación de consola, una aplicación de Windows Forms o lo que sea. Y tengo conocimiento y acceso a la biblioteca de clases mencionada anteriormente.
ii) menor prioridad, pero debe ser una opción de futuro:
- necesito para exponer cualquier tipo de descripción de la interfaz que permite a otros desarrolladores crear sus propias aplicaciones para cargar/descargar datos.
- Los clientes que otros desarrollarán se pueden operar con cualquier tipo de sistema operativo (Windows, UNIX, MacOS y más). También deberán ser lo más libres posible para seleccionar su propio lenguaje de programación preferido.
Debido al último punto que obliga a los desarrolladores a utilizar .NET Framework en el lado del cliente no es una opción. La comunicación en el lado del cliente debe ser cualquier tipo de tecnología "estándar" accesible desde diversas plataformas e idiomas.Estaba leyendo términos como "SOAP", "REST" o "AtomPub" durante mi pequeña investigación y estos parecen ser un tipo de protocolo estándar o tecnología de comunicación (no una invención patentada de Microsoft). Pero no estoy seguro ni sé qué tecnología está "actualizada", tiene el "mejor futuro", es más común y más conocida, es la más poderosa o la más fácil de usar (desde el punto de vista de esas otras posibles ¡Así que la pregunta es qué tengo que apoyar para hacer felices a la mayoría de los desarrolladores del lado del cliente).
Un último punto: ¡La seguridad es importante! La carga/descarga de datos debe estar restringida a personas dedicadas. No debería ser posible usar o explorar la interfaz sin las credenciales apropiadas.
¿Qué tecnología es la mejor para usar ahora? (1), (2) o (3)? ¿Y por qué lo recomendarías?
Muchas gracias de antemano por cualquier consejo!
WCF se puede comunicar con casi ** cualquier lado del cliente ** - Ruby en Mac, iPhone, .NET, Java - lo que sea.Es compatible con más estándares de la industria que cualquier otra cosa .... –