none
conectar aplicacion con servidor externo(WCF) n -capas Entity Framework RRS feed

  • Pregunta

  • Saludos, espero que esten bien.

    Tengo una aplicacion en Winforms con arquitectura de N - capas utilizando Entity framework 4.0, y quiero aplicar que la aplicacion se conecte a la base de datos(SQLExpress 2008) de 2 formas:

    1 - de forma local, por medio de una red interna

    2 - remotamente que el servidor de base de datos este en otra parte

    Duda: para realizar esto es a traves de (servicios WCF)???, si es asi algun enlace que pueda realizar los servicios, manual o tutorial.

    corregirme si me equivoco, los servicios cuando se crean, me los crea con una direccion de localhost, lo que intuyo es que la aplicacion de escritorio tendra que comunicarse a un servidor web IIS y ahi colocar los servicios; y para cuando sea consumir los servicios en la base de datos en la red local, seria un IIS para la Intranet???.

    espero darme entender, Gracias de antemano

    viernes, 1 de junio de 2012 16:27

Respuestas

  • para realizar esto es a traves de (servicios WCF)?

    es recomendable hacer esto por medio de servicio, mas si la conexion sera remota

    si es asi algun enlace que pueda realizar los servicios, manual o tutorial.

    la pagina del msdn es muy completa

    Windows Communication Foundation

    los servicios cuando se crean, me los crea con una direccion de localhost, lo que intuyo es que la aplicacion de escritorio tendra que comunicarse a un servidor web IIS y ahi colocar los servicios

    es correcto

    para cuando sea consumir los servicios en la base de datos en la red local, seria un IIS para la Intranet?

    esta parte no quedo clara

    imagino apuntas a que el servicio se conecta directo a la base de datos, porque los servicio estaran ubicados en el mismo entorno que la db, mientras que los cliente se podria conectar de forma remota

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Johan0920 domingo, 3 de junio de 2012 14:00
    viernes, 1 de junio de 2012 19:45
  • Ok, efectivamente la solcuion es usar N-Capas

    DATOS

    Aqui esta EntityFramework como tecnologia de acceso a datos.

    ENTIDADES

    SI usas entity framework pues puedes generar entidades limpias tipo POCO (Busca informacion sobre Entity Framework POCO Entities)

    NEGOCIO

    Aqui esta todas las funciones y reglas de negocio para la aplicacion las cuales se conectan con la capa de datos y devuelven a la capa superior.

    ===========================

    Hast aqui son las capas basicas, ahora el cliente si va a correr en el mismo lugar donde esta la base de datos com puede ser una web entonces creas la capa

    INTERFAZ WEBTe recomiendo usar asp.net MVC

    ahora si quieres conectar aplicaciones de esritorio  pues tienes que crear una capa de servicios.

    Hasta aurita todo lo que esta es para compilar e innstalar en el servidor.

    Ahora los clientes puedes tener un WindoesForms que consuma esos servicios.

    cuando en tu aplicacion de escritorio en el app.config tienes la ruta ne donde esta hospedado los servicios. si el compilado de servidor lo instalsa en una computadora que esa ten una red local pues accedes con el nombre o ip de la maquina, si la computadora esta por internet pues pones la url en donde estan los servicios.

    =======================================

    Un ejemplo de algo similar a lo que quieres hacer, es en mexico liverpool, tienes gran parte de sus sistema en algun servidor y por medio de internet todos los liverpool de mexico se conectan entre si, pero si en algun caso se va el internet en alguna tienda aun asi te pueden seguir cobrando ya que los precios de los productos estan de manera local y cada 2 dias se actualizan automaticamente, todas las ventas generadas cuando el internet regresa pues se actualizan al servidor.

    • Marcado como respuesta Johan0920 domingo, 3 de junio de 2012 14:00
    domingo, 3 de junio de 2012 5:03

Todas las respuestas

  • para realizar esto es a traves de (servicios WCF)?

    es recomendable hacer esto por medio de servicio, mas si la conexion sera remota

    si es asi algun enlace que pueda realizar los servicios, manual o tutorial.

    la pagina del msdn es muy completa

    Windows Communication Foundation

    los servicios cuando se crean, me los crea con una direccion de localhost, lo que intuyo es que la aplicacion de escritorio tendra que comunicarse a un servidor web IIS y ahi colocar los servicios

    es correcto

    para cuando sea consumir los servicios en la base de datos en la red local, seria un IIS para la Intranet?

    esta parte no quedo clara

    imagino apuntas a que el servicio se conecta directo a la base de datos, porque los servicio estaran ubicados en el mismo entorno que la db, mientras que los cliente se podria conectar de forma remota

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta Johan0920 domingo, 3 de junio de 2012 14:00
    viernes, 1 de junio de 2012 19:45
  • Gracias Leandro por la pronta respuesta.

    De pronto en la ultima pregunta no me exprese bien. La reformulo.

    si yo tengo mi servidor remoto, donde estan alojados los servicios y la base de datos, de que forma o que es lo recomendable hacer, si se me cae la conexion al servidor remoto, yo necesito que la informacion este disponible de forma local, osea ir teniendo sincronizada la base de datos local con la base de datos remota; que apenas se restablezca la conexion, se haga la sincronizacion nuevamente.  Se me ocurre tener un archivo XML en el servidor local y simiultaneamente apenas se realice alguna consulta de (insercion, modificacion, eliminacion), se haga en el servidor remoto como en el servidor local, si llega a caerse la conexion al servidor remoto trabajen el la base de datos XML y apenas regrese la conexion se sincronice con la base de datos remota.

    espero si haberme dado a entender y como siempre gracias por tu paciencia y dedicacion


    Johanny Valencia Sanchez

    viernes, 1 de junio de 2012 20:58
  • Ok, efectivamente la solcuion es usar N-Capas

    DATOS

    Aqui esta EntityFramework como tecnologia de acceso a datos.

    ENTIDADES

    SI usas entity framework pues puedes generar entidades limpias tipo POCO (Busca informacion sobre Entity Framework POCO Entities)

    NEGOCIO

    Aqui esta todas las funciones y reglas de negocio para la aplicacion las cuales se conectan con la capa de datos y devuelven a la capa superior.

    ===========================

    Hast aqui son las capas basicas, ahora el cliente si va a correr en el mismo lugar donde esta la base de datos com puede ser una web entonces creas la capa

    INTERFAZ WEBTe recomiendo usar asp.net MVC

    ahora si quieres conectar aplicaciones de esritorio  pues tienes que crear una capa de servicios.

    Hasta aurita todo lo que esta es para compilar e innstalar en el servidor.

    Ahora los clientes puedes tener un WindoesForms que consuma esos servicios.

    cuando en tu aplicacion de escritorio en el app.config tienes la ruta ne donde esta hospedado los servicios. si el compilado de servidor lo instalsa en una computadora que esa ten una red local pues accedes con el nombre o ip de la maquina, si la computadora esta por internet pues pones la url en donde estan los servicios.

    =======================================

    Un ejemplo de algo similar a lo que quieres hacer, es en mexico liverpool, tienes gran parte de sus sistema en algun servidor y por medio de internet todos los liverpool de mexico se conectan entre si, pero si en algun caso se va el internet en alguna tienda aun asi te pueden seguir cobrando ya que los precios de los productos estan de manera local y cada 2 dias se actualizan automaticamente, todas las ventas generadas cuando el internet regresa pues se actualizan al servidor.

    • Marcado como respuesta Johan0920 domingo, 3 de junio de 2012 14:00
    domingo, 3 de junio de 2012 5:03
  • Gracias caballero, me he ubicado con esta respuesta.

    y si, ya me puse a investigar con lo de WCF para crear y poner a funcionar el servicio.


    Johanny Valencia Sanchez


    • Editado Johan0920 domingo, 3 de junio de 2012 14:02
    domingo, 3 de junio de 2012 14:00