DEV Community

Orbis Alonzo Gutierrez
Orbis Alonzo Gutierrez

Posted on

Organiza tu Startup class

Todo el tiempo necesitamos que nuestro codigo, además de que funcione sea entendible para los demas programadores.

Algo muy común es ver nuestra startup class o startup.cs un poco revuelta y aveces tener muchos servicios registrados, implementaciones, db contexts, configuraciones no es muy conveniente tenerlo todo alli, suele ser mucho codigo poco separado, poco organizado y un programador que se dirija a revisar tu codigo, para posteriormente realizar algún cambio puede ser un poco tedioso.

Crea metodos de extension

Si creas metodos de extension de tu clase startup puedes tener el codigo mas organizado y la persona que necesite ir a tu codigo solo tendrá que ir a dichas implementaciones, por ejemplo :

Esta seria mi clase startup con metodos de extension donde solo los estoy llamando y no escribiendo toda la logica o configuración de esta en el ConfigureServices.

Screenshot_2

Crea una clase StartupExtension.cs

En esta clase es preciso que sea static para que pueda ser llamada en la clase startup, con la siguiente estructura donde definas los metodos de extensión de la misma (Lamento los borrones 😁Cuestiones de seguridad). Ejemplo :

Screenshot_3

Manten la organización de tus implementaciones

Recuerda que la programación es lineal, ten cuidado como organizes tus servicios o implementaciones dentro de metodo ConfigureServices y tambien en el middleware.

Sigue extendiendo 🐱‍💻

Si tu middleware necesita tener muchas implementaciones sigue extendiendo su funciones, por ejemplo cuando necesites hacer un log de los request que entren a tu api o proyecto web, lo correcto seria que llamaras esa implementación en tu middleware porque allí es donde pasan todos los request de tu applicación, asi que para estos casos muy especificos cuando tengas mucha logica o mucha configuración extiendelo!

Si te sirvio, no olvides dejar tu comentario y dar like a la publicación.

Sigueme en GitHub => https://github.com/Orbis25

Latest comments (3)

Collapse
 
jrbgithub profile image
JRBGitHub

tenes algu repo demo?

Collapse
 
orbis25 profile image
Orbis Alonzo Gutierrez

Entra a mi github y veras que en todos mis proyectos uso esta arquitectura.

Collapse
 
jrbgithub profile image
JRBGitHub

Buenisimo, muchas gracias