none
¿Como crear una aplicación en tiempo real? RRS feed

  • Pregunta

  • Hola comunidad. Tengo que desarrollar una aplicación de escritorio y una aplicación web en C#, pero ambas aplicaciones deben de comunicarse en tiempo real con una base de datos en SQL Server. ¿Que herramientas, tecnologías o framework me recomiendan? Nunca he desarrollado una aplicación de este tipo. Gracias de antemano.
    viernes, 29 de junio de 2018 14:10

Todas las respuestas

  • La expresión "tiempo real" significa distintas cosas en distintos contextos. Estrictamente hablando, querría decir que el tiempo de respuesta esté siempre garantizado en un valor pequeño, por ejemplo, "todas las peticiones deben ser respondidas en menos de 20 milisegundos". Si tu interppretación es esta, entonces no puedes usar SQL Server, porque no garantiza un tiempo de respuesta máximo en todas las circunstancias (aunque desde luego si está bien configurado puedes conseguir que "en promedio" o "en casi todas las peticiones" los tiempos de respuesta sean muy breves).

    En otros casos, hay quien interpreta "en tiempo real" como "no hay colas ni otros procesos de espera, sino que enviamos una petición y nos quedamos esperando hasta recibir la respuesta y confiamos en que sea pronto". Si tu interpretación es esta entonces en la aplicación de escritorio basta con que abras una conexión al SQL Server con normalidad usando ADO.NET y satisfará esta definición de "tiempo real". Lo mismo pasa con la conexión del servidor web al SQL usando este mismo mecanismo. Pero ojo, eso no significa que las páginas web servidas desde ese servidor sean a su vez también "tiempo real". Si lo que tiene que ser en tiempo real es el contenido de la página web (en lugar de la conexión al SQL como parece inferirse de la pregunta) entonces estamos hablando de algo completamente distinto. Habría que usar alguna tecnología tal como WebSockets o SignalR, y aún así solo cumpliríamos la definición "blanda" de "tiempo real", y no la estricta.

    viernes, 29 de junio de 2018 14:36
    Moderador
  • Investigue sobre el desarrollo en capas pues necesitará compartir las capas entre las dos aplicaciones (al menos una) para simplificar la producción de las interfases gráficas y asegurar que se comportan de igual manera.

    Para web, lo más flexible es MVC o SPA (Single Page Application).  Para escritorio yo usaría WPF por sus capacidades de vinculación a datos que permiten crear interfases gráficas muy interesantes.

    Supongo que también necesitará un ORM, y Entity Framework es la opción que la gran mayoría prefiere.  No le recomiendo uno porque no uso ninguno (tengo mi propio método).


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    viernes, 29 de junio de 2018 14:57
    Moderador
  • hola

    >>pero ambas aplicaciones deben de comunicarse en tiempo real con una base de datos en SQL Server.

    a que llamas tiempo real ?

    a ver si usas ado.net o entity framework podras consultar la db desde ambas aplicaciones, pero aconsejo que no accedas directo desde una aplicacion desktop a la db, sino realizalo por medio de una webapi

    o sea la webapi expone los datos y funcionalidad que consumirias tanto desde la aplicaicon desktop como tambien de la web

    >>Nunca he desarrollado una aplicación de este tipo.

    si  entender lo requisitos de lo que es "tiempo real" esta muy dificil entender de que tipo se trata

    a ver existen tecnologias como ser SignalR que permiten enviar mensajes de Push Server a los cliente para actualizar los datos, esto brinda info en tiempo real, pero no se si es lo que necesitas mas que nada porque hay una db involucrada y detectar cambios es esta es muy distinto

    puede que si usas una webapi y tanto desktop como web la utilizan esta actue de intermediaria para la comunicacion en tiempo real

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 2 de julio de 2018 5:26