DEV Community

Discussion on: Adding Startup.cs back to .NET 6 Project

Collapse
 
pbouillon profile image
Pierre Bouillon

The Program.cs seems to be missed by many developers!

I happened to look at the preview of .NET 7 and you should be pretty happy since it introduce back the Program.cs for those who want it. All you will need to do is appending --use-program-main to your command line:

console

This will also be supported directly by Visual Studio (I just find odd that a checkbox is for not enabling something):

vs

Hope it might save @stphnwlsh the extension method and give an alternative to @kaylumah!

Collapse
 
stphnwlsh profile image
Stephen Walsh

Hey that's pretty cool, but honestly I don't mind the new setup. I just don't want everything in the one file. It's maybe cool for small projects or little things but when you're configuring logging, telemetry, swagger etc that Program.cs blows out quickly.

I can easily create extension methods on the WebApplicationBuilder and WebApplication in say a ProgramExtensions.cs file and I find it helps with that separation, just like Startup.cs did.

Also not a huge fan of the minimal api setup, but if when implementing those, I'd use extension methods to separate out pseudo controllers too

Collapse
 
pbouillon profile image
Pierre Bouillon

I have to admit that you are right, the Program.cs does look like a good idea but the fact that it is blowing up when configuring a bigger application might show that it may not be the best way to reduce the boilerplate

As for minimal API it seems that a lot of people are doing the same. Still in .NET 7, they introduces RouteGroups to create such pseudo-controllers and keep it a little bit more coherent

However, I think that it may not be ideal if you are defining endpoints in a single pseudo-controller and they all have specific configuration as for their routes / authorization / metadata / etc.

Collapse
 
rmaurodev profile image
Ricardo

Super cool