none
Consulta instancia de objetos RRS feed

  • Pregunta

  • Hola, voy a comenzar un proyecto y me surgio esta duda. Es la primera vez que voy a usar un modelo de N Capas (voy a usar capa de datos, de negocio y de presentacion), y anteriormente habia hecho otro proyecto de ABM de algunos objetos pero con archivos y lo que hacia era instanciar el objeto de donde tenia toda la logica, una unica vez en el formulario de inicio, y en el resto de formularios utilizaba interfaces para enviar hacer llegar al formulario de inicio los parametros y ejecutar el procedimiento de la logica.

    Lo que queria consultar ahora, viendo videos y leyendo un poco del tema, es que muchos instancian un objeto de Negocio en el formulario que estan utilizando, eso estaria bien? O es mejor utilizar interfaces de vuelta e instanciar el objeto de Negocio en un unico formulario.

    Gracias.

    jueves, 8 de noviembre de 2018 15:26

Respuestas

  • hola

    >>muchos instancian un objeto de Negocio en el formulario que estan utilizando, eso estaria bien? O es mejor utilizar interfaces de vuelta e instanciar el objeto de Negocio en un unico formulario.

    Estas mezclando temas, una cosa son las interfaces que se usan para desacoplar y otra como instancias

    el uso de interfaces esta bueno si estas pensando en generar unit test en el codigo, ademas la interfaz te permite usar librerias de Dependency Injection (Unity, Ninject, autofact, Simple Injector , etc) para poder cambiar la implementacion de forma dinamica

    La instancia NUNCA se hace de forma global, lo realizas donde lo necesites

    Windows Forms Integration Guide

    alli vera scomo se hace aplicando DI, veras como el container resuelve las instancia que inyectas en el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Nacho Sa jueves, 8 de noviembre de 2018 18:03
    jueves, 8 de noviembre de 2018 17:16

Todas las respuestas

  • hola

    >>muchos instancian un objeto de Negocio en el formulario que estan utilizando, eso estaria bien? O es mejor utilizar interfaces de vuelta e instanciar el objeto de Negocio en un unico formulario.

    Estas mezclando temas, una cosa son las interfaces que se usan para desacoplar y otra como instancias

    el uso de interfaces esta bueno si estas pensando en generar unit test en el codigo, ademas la interfaz te permite usar librerias de Dependency Injection (Unity, Ninject, autofact, Simple Injector , etc) para poder cambiar la implementacion de forma dinamica

    La instancia NUNCA se hace de forma global, lo realizas donde lo necesites

    Windows Forms Integration Guide

    alli vera scomo se hace aplicando DI, veras como el container resuelve las instancia que inyectas en el form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Nacho Sa jueves, 8 de noviembre de 2018 18:03
    jueves, 8 de noviembre de 2018 17:16
  • Gracias Leandro, estos comentarios me van sacando dudas que voy teniendo mientras leo sobre cosas nuevas. Te hago otra consulta, y describiendo mejor el ejemplo, en el proyecto anterior yo tenia dos Proyectos, uno de Logica, que tenia una clase Persona con ciertas propiedades y otro Empresa, donde tenia una lista de Persona y los metodos para agregar a la lista esa Persona, y otro Proyecto de WindowsForm, donde tenia las presentaciones y tenia referenciado a Logica para enviar los datos a que se validen y se agreguen.

    Lo que estuve viendo en algunos videos es que cuando usan bases de datos, las clases como Persona no la hacen, solo hacen en el Proyecto de Negocio y Datos los metodos necesarios para insertar una nueva Persona. Eso esta bien, lo de no hacer mas la clase Persona, sino que definirla dentro de la base de datos?

    jueves, 8 de noviembre de 2018 18:11
  • hola nacho

    respecto a lo que preguntas:

    instancian un objeto de Negocio en el formulario que estan utilizando, eso estaria bien? O es mejor utilizar interfaces de vuelta e instanciar el objeto de Negocio en un unico formulario.

    Se debe instanciar instanciar Entidades y objeto de negocio en la capa de presentación seria algo asi

    +Capa de Datos

    ++Capa Negocio instancias la de datos

    +++Capa Presentacion instancias la de negocio

    y transversal a las capas tendrias un proyecto donde creas las entidades bien sea por un ORM o creando clases que represente el modelo de datos.

    para los que trabajan DDD si es mejor usar interfaces pero tendrias que usar Patron Repositorio y Clases Agregadas Raiz, Agregados etc. 

    Como dice @leandro Tutini ya tendrias que usar DI y librerias ninject, unity etc...

    Te recomiendo usar el primero sin llevar interfaces si no es muy complejo el proyecto que estes desarrollando.

    Suerte!!

    jueves, 8 de noviembre de 2018 19:07
  • Claro, eso lo entendi, pero lo que no entiendo es por que no crean una clase por ejemplo Persona, con sus propiedades dentro de Visual Studio. Veo que siempre la declaran en la base de datos y nada mas. Eso esta bien? Como trabajan con los objetos sino?
    jueves, 8 de noviembre de 2018 21:40