February 6th, 2023

Update to the .NET language strategy

Kathleen Dollard
Principal Program Manager

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.

Author

Kathleen Dollard
Principal Program Manager

Kathleen Dollard loves to code and loves to teach and talk about code. She’s written tons of articles, a book, and spoken around the world. She’s on the .NET Team at Microsoft where she works on the .NET Core CLI and SDK and managed languages (C# and Visual Basic.NET). She’s always ready to help developers take the next step in exploring the wonderful world we call code.

39 comments

Discussion is closed. Login to edit/delete existing comments.

  • Ustes Greenridge

    When eill VB be able to create asp.net core web sites?

  • devi setti

    Hi guys,
    small help in .net , how to create cascading drop-down without using entity framework.
    Thanks

    • Michael Taylor

      This blog is not a good place to get help. Please post in the Microsoft Q&A forums here.

  • Daite Dve

    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.

  • Jim Foye

    Your constant “SDK and API turnover” problem is making improvements to the languages irrelevant, in my opinion.

  • Matthias Schuster

    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,...

    Read more
  • Super Coco

    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?

  • Will Woo · Edited

    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...

    Read more
  • 新建 孙

    I want to know what is the big thing about C# in the next stage?

    • Kathleen DollardMicrosoft employee Author

      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.

      • Val P

        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.

      • Kathleen DollardMicrosoft employee Author

        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.

  • Evolvous Limited

    Great Share! Thanks for the update, Kathleen.

  • li lee

    vb can need must should to be update to B#, that’s great,
    vb is most great lang than php on the world 🙂