none
Usar Clase Estatica o Normal RRS feed

  • Pregunta

  • Buenos días, tengo una duda, tengo que hacer un class library para subirlo a un NuGet, esta nuget va a consumir un servicio rest, y regresar el resultado de la operación, pero mi duda es.

    ¿Como es mejor hacer el proyecto que se publica en el NuGet con clases estáticas y no estáticas?

    Pregunto esto por que quería que cuando instalaran mi nuget solo pusieran el código así:

    ClaseNuget.Metodo();

    y no tuvieran que generar una instancia, pero no se si al tener una clase estática que consume métodos para agregar o eliminar se llegue a traslapar información o algo parecido.

    Saludos y buen día.


    Hugo Gil

    miércoles, 29 de enero de 2020 17:35

Respuestas

  • hola

    >>¿Como es mejor hacer el proyecto que se publica en el NuGet con clases estáticas y no estáticas?

    si quieres directo invocar el metodo sin instanciar entonces deberias usar static

    Ahora bien, la verdad no lo recomendaria, porque las librerias que desarrollas deberian poder inyectarse para su uso, ademas de poder ser mockeadas para el test

    la libreria deberia exponer una interface como ser

    public interface IClassNuget{
    
         void Metodo();
    
    }


    entonces la implementacion de esa interface seria lo que usas inyectandolo con librerias de IoC, como ser Unity, autofac, Ninject, etc

    No uses static cuando diseñas librerias, si puedes

    Ademas piensa en quien vaya a realizar test de su codigo, como mockea tu desarrollo si le pones un static

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Hugo Gil miércoles, 29 de enero de 2020 18:18
    miércoles, 29 de enero de 2020 18:10

Todas las respuestas

  • hola

    >>¿Como es mejor hacer el proyecto que se publica en el NuGet con clases estáticas y no estáticas?

    si quieres directo invocar el metodo sin instanciar entonces deberias usar static

    Ahora bien, la verdad no lo recomendaria, porque las librerias que desarrollas deberian poder inyectarse para su uso, ademas de poder ser mockeadas para el test

    la libreria deberia exponer una interface como ser

    public interface IClassNuget{
    
         void Metodo();
    
    }


    entonces la implementacion de esa interface seria lo que usas inyectandolo con librerias de IoC, como ser Unity, autofac, Ninject, etc

    No uses static cuando diseñas librerias, si puedes

    Ademas piensa en quien vaya a realizar test de su codigo, como mockea tu desarrollo si le pones un static

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Hugo Gil miércoles, 29 de enero de 2020 18:18
    miércoles, 29 de enero de 2020 18:10
  • Gracias lenadro

    Hugo Gil

    miércoles, 29 de enero de 2020 18:18