none
Servicio no aparece al crear la vista RRS feed

  • Pregunta

  • Hola.

    Tengo una aplicacion que esta en 4 capas (datos, modelo, servicios, y finalmente UI). La capa de datos usa EF5, la capa del modelo hace referencia a la de datos y aloja el modelo generado con Ef 5.x Self-trskincg Generator..

    A su vez, la capa de servicios (que referencia a las capa de modelo y datos) genera el servicio, y funciona probandola desde la consola de servicios...

    Al crear la capa de presentacion, agregue una app MVC4, en la cual agrego la referencia al servicio correspondiente (via discover), el servicio se agrega sin problemas, y hasta ahi todo bien (me preocupe de agregar el conextionString correspondiente en el appconfig de la capa de servicios)

    EL probklema se da, al agregar la vista en el controlador correspondiente, ya que al indicarle que voy a crear una vista fuertemente tipada, no aparece por ningun lado la clase del modelo agregado en la referencia de servicio.

    Alguna idea de porque puede estar pasando esto?. Donde puedo verificar que la referencia fue corectamente agregada? ya que al menos desde la consola de servicios, funciona (trae datos desde la BD)

    Saludos y gracias por las respuestas

    viernes, 6 de diciembre de 2013 19:14

Respuestas

  • EL probklema se da, al agregar la vista en el controlador correspondiente, ya que al indicarle que voy a crear una vista fuertemente tipada, no aparece por ningun lado la clase del modelo agregado en la referencia de servicio.

    y es que no deberia aparecer y eso esta correcto, no recomendaria utilizar la clase del servicio directo como model de la view

    sino que crea entidades en la carpeta "Model" de asp.net mvc y mapea la entidad del servicio con la del model

    recuerda que a esa clase le puede agregar atributos visuales o de validaciones, como harias eso con una clase que la genera automaticamente un web reference al servicio? no puedes por eso no se recomienda

    usa automapper si quieres facilitar la tarea de conversion, si es que la entidad del servicio sera igual a la de model

    Nota: cuando mencionas servicio entendi que son servicio web, ya sean asmx o wcf

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 7 de diciembre de 2013 7:17
  • Bueno.. despues de muchas pruebas al fin encontre  la explicacion de porque no aparecian las clases con las funciones exouestas en los servicios WCF, y es que al establecerlos, se debe especificar que genere siempre los contratos del mensaje. Con esto, al agregar la referencia, apareceran los metodos al agregar la vista. dejo el comentario por si a alguien le sirve la explicacion mas adelante

    saludos y gracias nuevamente por la coolaboracion

    jueves, 12 de diciembre de 2013 21:22

Todas las respuestas

  • EL probklema se da, al agregar la vista en el controlador correspondiente, ya que al indicarle que voy a crear una vista fuertemente tipada, no aparece por ningun lado la clase del modelo agregado en la referencia de servicio.

    y es que no deberia aparecer y eso esta correcto, no recomendaria utilizar la clase del servicio directo como model de la view

    sino que crea entidades en la carpeta "Model" de asp.net mvc y mapea la entidad del servicio con la del model

    recuerda que a esa clase le puede agregar atributos visuales o de validaciones, como harias eso con una clase que la genera automaticamente un web reference al servicio? no puedes por eso no se recomienda

    usa automapper si quieres facilitar la tarea de conversion, si es que la entidad del servicio sera igual a la de model

    Nota: cuando mencionas servicio entendi que son servicio web, ya sean asmx o wcf

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 7 de diciembre de 2013 7:17
  • Hola Leandro, muchas gracias por la respuesta.

    despues de leer y reeleer el tema de automapper el cual me parece muy logico, me di cuenta que en la descripcion del problema que realice, cometi un error, en el sentido de que, no es el modelo el que requiero, si no que los metodos que implemente en el servicio WFC.

    ejemplo, en el servicio, implemente metodos para interactuar con la BD, y por ejemplo tengo un servicio que se llama ListarUsuarios(), el cual, ya fue testeado a nivel de servicio con la consola.

    Entonces, no son las entidades las que requiero en la aplicacion MVC, si no que son estas funciones miembro, que ya se encentran en el servicio, y que son publicadas.

    Segun lo que tenia entendido, asi se evita exponer todo el modelo de entidades, y generar solamente las funcionalidades que la capa de presentacion  va a necesitar..

    y el tema, es que a pesar que el servicio funciona bien, y que en el modelo de objetos si aparecen dichas funciones, "ListarUsuarios()" al momento de crear la vista (que es donde quiero utilizar), esta no aparece por ningun lado.

    de todas formas me sirvio mucho el tema del automapper

    Saludos

    miércoles, 11 de diciembre de 2013 20:37
  • Bueno.. despues de muchas pruebas al fin encontre  la explicacion de porque no aparecian las clases con las funciones exouestas en los servicios WCF, y es que al establecerlos, se debe especificar que genere siempre los contratos del mensaje. Con esto, al agregar la referencia, apareceran los metodos al agregar la vista. dejo el comentario por si a alguien le sirve la explicacion mas adelante

    saludos y gracias nuevamente por la coolaboracion

    jueves, 12 de diciembre de 2013 21:22