Ever since we’ve released a discussion summary of the top-level statements console template protest, the discussion was still going, although it looks like that, according to the .NET 7.0 console rework task list, Microsoft have been reconsidering the decision taken about adopting the new console template as a default for .NET 6.0 projects. They said:
We will contribute to the reconsideration of the new console template that was introduced in .NET 6.
— The .NET 7.0 console rework task list, GitHub
The flame in this discussion at GitHub is continuing to destroy the sanity of the C# programmers who didn’t like the new console template introduced back when .NET 6.0 was out in November 2021; they proceed to express their outcry about the template by commenting about how bad the template is and upvoting the:
- comment that tells the programmers to up-vote it if they prefer the traditional
Program.cs
code (Comment ID #987006581) - comment that tells the programmers to up-vote it if they prefer to be given a choice if they would like the classic template or the modern template (Comment ID 987007543)
As of the time of writing, these are the voting results for the top-level-statement-based console application template introduced in .NET 6.0:
- 34 people support the new template
- 364 people go against the new template
- 369 people prefer to be given a choice between the two templates
A new issue
However, a user called @siegfriedpammer have recently raised an issue regarding the event handler tab completion with the console top-level statement template. When they tried to use the tab completion to make an event handler in the new template, nothing happened.
Also, there was a note in the issue that said:
I think, Visual Studio needs extra options in the new project dialog, to allow each user to select whether they want top-level statements and/or implicit usings. This would alleviate the pain I have with the new project templates.
from #43563 (comment), apparently this has been a known issue since May 2020.
Because top-level statements are effectively rubbed into one's face when creating a new project (not a good thing at all!), one would have every right to expect this to work.
Every time I try to adapt to this, I get bitten by something. and I am forced back to trusty old class Program.
A user have also posted the link to the comment of a Roslyn issue here.
When a user suggested that they add their observation to the core issue, they closed their issue, saying that they have nothing to add to the discussion.
Will the flames stop?
It’s currently unknown whether Microsoft will actually listen to more than 733 protestors and reconsider their decision about the top-level statements, because that’s infuriating for the programmers who are used to the old template. C# was made as an object-oriented language in the first place.
Thoughts?