In 2017, we posted the strategy for .NET Languages at Microsoft as a blog post. Today, we’re publishing an updated version of the .NET Language Strategy at Microsoft Learn. It has been a long time since we have updated our strategy because our commitments to the languages that you rely on and how we think about them don’t change year to year. We’re with you for the long term.
Microsoft offers three languages on the .NET platform – C#, F#, and Visual Basic. The new .NET Language Strategy updates all three. It also includes a description that shares our perspective about each language. You’ll find additional articles with further comments on key parts of the language strategy for C#, F#, and Visual Basic. The .NET Language Strategy is available in English today and is being translated to other languages.
We’re publishing the updated strategies on Microsoft Learn to give them more permanence and make them easy to find. The previous blog post was great and we often linked to it. But, over time, it became harder to find and felt out of date. If you did find it, there was no indication that it was still our active strategy. The published version on Microsoft Learn reflects the current strategy and lets us keep it up to date. It also makes it easy to find and indicates its importance.
You won’t find big changes. We remain committed to full support for all three languages. We are also committed to open source, backwards compatibility, and aggressive language evolution for C# and F#. We took the time to reconsider, adjust and recommit to our strategy. You remain the reason we are passionate about language, and engaging with the community is a primary driver for language evolution.
Each .NET language is unique. C# is the most widely used language and the language most of .NET is written in. F# explores new language possibilities and the community provides a rich experience across platforms. We remain committed to Visual Basic and continue to invest in maintaining C# interop and Visual Studio features for folks that love Visual Basic or want a stable language.
We know that when you choose a language you make a commitment to your business and your career. We are honored that you chose us and we take that responsibility seriously. We love what we do and we think about you, about the developers that use .NET languages, in every decision we make.
The success of our languages depends on honest, open communication. The new location makes it easier to continue the conversations that the previous blog post started. Publishing our language strategies in a prominent location also keeps it front and center for us. It emphasizes the importance of our strategies, and how they guide us as we evolve the languages.
Our job every day is to make it easier for you to do your job. We know part of that is being confident in Microsoft’s commitment to the languages you love.
When eill VB be able to create asp.net core web sites?
Hi guys,
small help in .net , how to create cascading drop-down without using entity framework.
Thanks
This blog is not a good place to get help. Please post in the Microsoft Q&A forums here.
C# future is DARK. Looking what and how MS team implements in C#, I do TRIPLE FACEPALM and pray these chimp do not touch our lovely c#!! Serious, guys, YOU ARE INCOMPETENT to do any language changes, just piss off. Your work makes C# worse and worse.
Your constant “SDK and API turnover” problem is making improvements to the languages irrelevant, in my opinion.
There is a bug in your strategy
FSharp is supposed to be the language, that 'explores new language possibilities'
So, how is this imagined, considering the dotnet runtime will change for C# only?
I can pick you a couple of long standing things, that the FSharp community loves to implement - and is actually waiting for C# to do so first, cause runtime support depends on it.
In case F# is supposed to be the language going forward,...
If Visual Basic allows .NET Core Web API projects and you show a lot of examples of that in this and others blogs, Why are there no Visual Basic .NET Core Web API templates in Visual Studio?
I already proposed this twice on GitHub repo, but it was closed both times.
https://github.com/dotnet/aspnetcore/issues/34788
https://github.com/dotnet/aspnetcore/issues/40954
Maybe someone else can try it one more time 🙂
C#/.NET, my favorite language/framework, is always going to be weighed down by supporting legacy syntax/constructs.
imho, right now energy/time is devoted to so-called "new features" like generic attributes (not generic in any meaningful sense of that word), and generic math which doesn't address the issues of converting one numeric Type to another that have bedeviled devs (think TypeCodes and long 'switch statements) for years.
Meanwhile VS 2022 (latest version) still: after months, is erratic not displaying either...
I want to know what is the big thing about C# in the next stage?
Look for more on that here in this blog as we get further along in the C# 12 design.
You can also keep up with our meetings at https://github.com/dotnet/csharplang, but those record our design process so can be messy and difficult to follow.
Seems disappointing (at least to me) there is so much work around supporting the nullable construct, instead of adding native support for monads like Option/Either/etc. Or at least my search didn’t bring up anything planned. Maybe in c# 20.
Unions are hard because several constructs have been called this. You can see how often we’ve considered this searching for “discriminated” in https://github.com/dotnet/csharplang. We are looking at again for C# 12, but I can’t say whether we will settle on a design, or that the first step we will say will be monads. All of us want progress on this front.
Great Share! Thanks for the update, Kathleen.
vb can need must should to be update to B#, that’s great,
vb is most great lang than php on the world 🙂