.Net 6 | No encuentro el fichero Startup.cs

Para los desarrolladores de .Net, es habitual usar el archivo Startup.cs, que viene por defecto en ciertas plantillas de proyecto, entre ellas las de proyectos de Web y de Api, para realizar determinadas tareas que deben ejecutarse al inicio, como determinar los orígenes de las variables de entorno/configuración, añadir servicios al contenedor de dependencias, etc. e incluso aprendimos a añadirlo en proyectos de consola donde no viene por defecto. Pero, al crear un proyecto de Web y de Api con .Net 6, podemos apreciar que ya no existe este fichero Startup.cs. ¿Y ahora dónde ponemos nuestra configuración?

¿Cuándo se ha omitido este fichero y por qué?

A mediados de agosto se anunciaba la Preview 7 de .Net 6 trayendo consigo numerosas novedades y, entre ellas, aparecía el cambio en las plantillas de proyectos web, más concretamente se nombraba ASP.NET MVC template, indicando que los archivos Program.cs y Startup.cs se fusionaban en un único fichero, prevaleciendo Program.cs.

¿Por qué? Pues… tampoco hay una razón con demasiado peso que apoye el cambio, aunque sí que parece lógico que, para simplificar, es mejor trabajar con un único fichero como punto de entrada y no tener cosas por separado entre Program.cs y Startup.cs.

¿Y ahora cómo queda todo esto?

Bueno, teniendo en cuenta que ya sabemos que Program.cs ha asumido las funciones que tenía Startup.cs, es sencillo de entender que debemos pasar al fichero único todo lo que necesitemos hacer, pero veamos cómo trabajarlo de forma resumida. Para ello, vamos a crear sendos proyectos de Api con .Net 6 y .Net 3.1 y vamos a comparar.

El primer paso es crear un proyecto con .Net 6 y lo configuramos con autenticación de Windows Identity por ejemplo.

Ahora procedemos a crear un proyecto con .Net Core 3.1 (o .Net 5 si lo preferís) y seleccionamos el mismo tipo de autenticación.

Una vez creados los proyectos, podemos apreciar que el creado con .Net Core 3.1, sí posee el fichero Startup.cs.

Equivalencia de Startup.cs con el fichero unificado Program.cs en .Net 6

Lo primero que apreciamos es la simplicidad del nuevo fichero en .Net 6 donde se ha reducido considerablemente el número de «using» que contiene (aunque esto tiene truco)

En cuanto al código existente, vemos que se parece bastante lo que existe en Startup.cs con lo que contiene el fichero unificado Program.cs.

También podemos observar que el código por defecto del antiguo fichero Program.cs, que básicamente instanciaba al Startup.cs, también tiene su equivalencia en el unificado.

Vídeopíldora

Conclusión

Como hemos podido apreciar, a partir de ahora trabajaremos con nuestro fichero Program.cs como único punto de entrada por defecto de nuestras aplicaciones Web y Api con .Net 6 y no debería cambiar mucho nuestra forma de trabajar para realizar tareas al inicio del ciclo de ejecución de nuestras soluciones.

Si aún no tenéis .Net 6 y queréis descargarlo, podéis hacerlo desde este enlace https://dotnet.microsoft.com/download/dotnet/6.0

Espero que este artículo os sea de ayuda para iniciar vuestro camino con .Net 6 y, si tenéis dudas, dejad comentarios y os responderé lo antes posible.

Enjoy coding.