Application Lifecycle Management (ALM) on the Power Platform

With C# 8 recently shipped, we paint the big picture: we lay out where the C# and Visual Studio experience is headed. We'll also show you early glimpses of what we're currently thinking with C# 9.
Hey Guys,
this is all very exciting, but where is the promised 'extends' keyword with ability to adapt an existing class or interface to another interface locally (within a certain code)?
I summarized and reviewed what are the new features in C# 9. If you guys want to read: https://medium.com/@faruk.nane54/whats-new-in-c-9-fd975fbaab67
Love the pattern matching bits, the not pattern has been long overdue. Unfortunately, that's where it ends for me. Don't like the top level statements...makes it seem like I'm programming in a scripting language and makes me want to run as fast as I can in the opposite direction. Now, records... It will be another feature that is pretty useless and I'll explain why. When I'm writing an immutable type, my constructor validates the invarients based on business requirement. Due to this, records won't ever benefit me and, I'd imagine, people writing immutable classes won't be able to take advantage of it either. Sure the language feature that checks for nulls helps but that doesn't do anything for all the other data types.
Will there also be data structs then?
Great job, congrats to the C# team!
Discriminated unions?
How to try C# 9.0 after installing latest .NET 5 preview, what is minimum VS version required? Any configuration in project?
Mmmm... data keyword will definitely conflict with variable name I am using in most MVC, API methods right now. Very minior indeed but what about prototype keyword instead?
I agree to DevSec's comment that removing the boilerplate code on Program / Main does not seem to be of much benefit.
In fact at the first glance, it even makes it more hard to recognize now. So, if possible, focus on other more important areas to improve upon rather than this Trivial thing.
I agree as well. Removing the boilerplate doesn't make much sense. It's better off leaving it.
I have 3MB internet. Even with lower quality settings these videos are buffering. I can watch Youtube videos and videos on other sites without buffering.
Namspaces is taking up precious screen estate.
Why can't I set it to 0 tabs in Visual Studio ?
Why cant I have default namespaces as in VB.Net ?
Good namning style is to have telling names for methods and variables.
C# is not a help in this effort !
'init', while lovely, seems targeted as a very narrow case; why not allow inline initialization for read-only properties without any new access modifier ?
So the () constructor will take type inference from the left side, and the var keyword will take type inference from the right. This makes var p = (1,2) make syntactic sense (Although inference will fail). I'm not a fan of this sugar, and feel it, combined with the var keyword, is going to make code very difficult to read. One or the other, fine, but not both.
Great job with these features!
Would love to see some changes to the constructor field initialization ceremony in the future (i.e. when using dependency injection).
The whole idea about the boilerplate removal on Program / Main is not meant to be for most cases, its best used for scripts or simple tryouts.
Since you are making a "target-typed new" why don't you make and a "target-typed generic", the thing java is calling diamond operator. List<int> list = new List<>(); ?!
Hello! this is ayesha. I have a question i want to get a certificate of .NET from here what are the steps?
Thank,