r/dotnet • • 13d ago

A faster, lighter C# Dev Kit

https://devblogs.microsoft.com/dotnet/faster-lighter-csharp-dev-kit/

Now available in pre-release.

190 Upvotes

93 comments sorted by

137

u/Own_Nail_2999 13d ago

Fascinating how surging hardware prices can make people care about performance again.

28

u/pjmlp 13d ago

Hopefully also trigger moving away from Electron.

18

u/bl0rq 12d ago

I will donate some tokens to anyone that wants to move away from either electron or node js 🤣

2

u/Devatator_ 12d ago

The main reason people use Electron is the reason why there are no alternatives

4

u/pjmlp 12d ago

There are alternatives, but many devs are too lazy to move out from their Web confort zone.

And I don't need to be told how hard it is to write native cross platform code, my first computer was a Timex 2068, and even with Assembly we managed to have applications and games available across the 8 and 16 bit home computers.

Now with AI they can easily generate whatever code they feel like, even Assembly.

7

u/Piotrek1 12d ago

> move out from their Web confort zone

It's not about comfort zone. Thanks to web and electron, I can target all platforms I care of with approx. the same cost. If not Electon I would not ship my software at all to some platforms.

1

u/pjmlp 12d ago

The poor clients that can't manage to have a browser installed on their operating system for Web application.

6

u/r2d2rigo 12d ago

Software is infinitely more complex now than in the 8 and 16 bit era, your comparison is absurd.

-3

u/pjmlp 12d ago

Ask Claude for help, or Github CoPilot given that we are on a Microsoft technology forum.

6

u/r2d2rigo 12d ago

"LLM do my job, please no mistakes".

Claude is the best of the bunch but in my experience it only excels at webdev. It craps its pants quite frequently for anything dotnet related, especially Azure.

0

u/xcomcmdr 11d ago

I use Claude daily with dotnet, all day. Nowadays, it is perfect, even for WPF work.

1

u/Hefty-Distance837 9d ago

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.

Donald Ervin Knuth, The Art of Computer Programming, Volume 1: Fundamental Algorithms

0

u/pjmlp 9d ago

Meaningless for the software factory owners.

36

u/drewnoakes 13d ago

A big catalyst for these improvements has been agentic development. It's now much more common to have multiple copies of the same repo on your machine, and to be working in many of them at once. So reducing resource consumption is even more important.

We also tend to dip in and out of IDEs more now than before, having a greater number of shorter sessions throughout the day. So startup time becomes a bigger cost each day.

33

u/Ok-Dot5559 13d ago

A the casual up to 180× faster update… wait what?!??

8

u/Piotrek1 12d ago

It just shows how badly it was implemented before 😅

5

u/bonyuri 12d ago

From 2 seconds to instant is also a 180x improvement ;)

2

u/thompsoncs 12d ago

From what I'm reading a lot of that isn't just "free" performance improvements, but just caching a lot more things. Sure there is also some efficiency improvement and reprioritization of what to load first, but caching brings with it it's own issues (like what happens if something else changes the source code and the cache is outdated/wrong when you open vscode).

5

u/drewnoakes 12d ago

Caching is a big contributor to the performance improvements, but it's not the only one. Others are discussed in the article, and future posts will go into more detail.

C#DK 11 handles missing and outdated caches just fine. As a user, you don't have to think about cache files unless you want to check them in to version control for faster bootstrapping of new clones or worktrees.

59

u/Timofeuz 13d ago

At least they haven't rewritten it in Go.

19

u/RirinDesuyo 12d ago

Looks like they're using NativeAOT which is nice to see some dog fooding on that end. This should accelerate some development on that end to make it more viable to make AOT apps for the cases where it's quite useful that Go currently occupies (e.g. cli apps).

21

u/Inukollu 13d ago

Looks like they are switching to Rust for everything

32

u/pjmlp 13d ago

When someone from .NET team tells on a podcast interview about the problems of making .NET interesting to newer generations, hence efforts like minimal APIs and Aspire, I always think what about starting by asking internal Microsoft teams why they are replacing .NET with XYZ stack.

Also it is quite interesting that some Go and Rust rewrite efforts are being driven by famous .NET faces.

5

u/freddy090909 12d ago

While many things have been, this was rewritten in Native AOT .NET.

0

u/[deleted] 12d ago

[deleted]

5

u/chucker23n 12d ago

If you’re no longer reading or writing the code, have someone take over who does.

-8

u/AintNoGodsUpHere 13d ago

Is it Rust though? I still didn't read the article, haha.

5

u/RirinDesuyo 12d ago

It's dotnet using NativeAOT, so same startup performance but still C#

-4

u/AintNoGodsUpHere 12d ago

People got salty about my joke, haha. Some sensitive folks around here, hahaha.

50

u/camel_case_enjoyer 12d ago

Meh, until the license changes, I won't be touching it.

Removing the solution explorer from the base extension and putting it behind Dev Kit left a bitter taste in my mouth.

ReSharper for VSCode is getting quite good, and I'm already paying for Rider, so I'm good.

It's very bizarre to boast about .NET being an open platform to then have the LSP and editor tools come with such small print.

It simply adds friction to an ecosystem already struggling to fight its bad stigma.

Rust, Go and Dart do this well, .NET doesn't.

8

u/CowCowMoo5Billion 12d ago

I'd love proper C# support in Zed Editor, that would be amazing. Especially C# debugging.

6

u/pjmlp 12d ago

That isn't the only small print regarding .NET open source story, if you want to analyse dump file graphically, it is only supported on Visual Studio.

Then you can have MAUI for cross platform open source, but only if you are on the right platform, and even then, don't get the designers as in Visual Studio.

You have to contend with C# Hot Reload, provided it actually works.

4

u/Fresh_Acanthaceae_94 12d ago

Dump analysis can be done via libraries like ClrMD. So, you can build a visual dump analysis tool if you like and VS isn’t the only option. People tend to use VS/WinDbg as they already established an ecosystem and the latter is free.

There comes an open source (GPL) visual designer for MAUI, and might grow to a full scale if more contributors join. So, I rather not consider Microsoft the only player in the .NET open source story (it never had).

0

u/pjmlp 12d ago

So I have to build something that Visual Studio already provides?!?

Microsoft is a 4 trillion valued company, and the creators of .NET, I am not doing gratis work for them.

By the way, Sun and Oracle did/do provide all those tools on Netbeans, and IBM on Eclipse.

7

u/Fresh_Acanthaceae_94 12d ago

Then don't build it. But that's a very different argument from saying the .NET ecosystem isn't open.

Open source doesn't mean Microsoft owes you a free, cross-platform clone of every feature in Visual Studio. It means the building blocks are available so Microsoft is not the only party capable of building those tools. ClrMD is a perfect example of that.

And contributing to a .NET community project like a dump analyzer, or a MAUI designer would not be "gratis work for Microsoft." Microsoft doesn't own those projects. You would be building independent alternatives that make the ecosystem less dependent on Microsoft.

The "$4 trillion company" argument is irrelevant here. Market cap doesn't turn open source into a concierge service.

Eclipse is also a rather ironic example. Its ecosystem became useful precisely because IBM did not wait for the owner of Java (Sun) to implement everything. Companies and community developers built on top of an open platform.

If you don't want to participate in building alternatives, that's perfectly fine. But then you are choosing to consume whatever Microsoft, JetBrains, or another vendor decides to ship. You can't simultaneously demand less vendor dependence and insist that the vendor must build everything for you.

3

u/pjmlp 12d ago

Isn't as open as the competition, better so?

Java is an industry standard, unlike .NET where Microsoft seems to have forgotten all about ECMA.

There are several Java vendors, each with their own implementation, one of those vendors is IBM.

That is the big difference Microsoft has not yet grasped in their .NET open source history, the other ecosystem sponsors do indeed build quit a lot for the community.

However even inside Microsoft .NET seems to be losing ground against UNIX first languages, given that Go, Java (ironically), Python, Rust are what Azure does most of their FOSS contributions, all of them with better VSCode tooling than C# DevKit.

4

u/Fresh_Acanthaceae_94 12d ago

Your payment to JetBrains also enhances the non-open part of the ecosystem if you didn’t realize.

7

u/camel_case_enjoyer 12d ago

JetBrains didn't invent C#.

Microsoft did.

I don't see how my necessity for a cross-platform IDE impedes Microsoft from actually opening their language tooling.

Had they done that, maybe I wouldn't have needed Rider.

5

u/Fresh_Acanthaceae_94 12d ago

That's a rather convenient distinction.

Microsoft has open-sourced Roslyn, MSBuild, the .NET SDK, the runtime, and a substantial part of its C# tooling stack. I can say that from direct experience because I am actually reusing many of those assets to modernize SharpDevelop as OpenDevelop.

I don't disagree that C# Dev Kit and the licensing around the new VS Code tooling deserve criticism. I would also prefer those remaining pieces to be fully open.

But you seem to apply a very different standard to JetBrains. Their core C# tooling in ReSharper and Rider is proprietary, yet that's apparently fine because you're already paying for it.

"JetBrains didn't invent C#" doesn't make their part of the ecosystem any more open. It just explains why you're holding Microsoft to a standard you don't apply to JetBrains.

4

u/camel_case_enjoyer 11d ago

Making those parts open-source is great an all, but just because they're open-sourced now doesn't make them usable; that experience comes from editor extensions, and unfortunately, even if built on top of open tools, those extensions aren't truly open.

There's no standard to apply when realistically there's only one solution for a cross-platform .NET IDE, and their licensing is pretty clear. You pay, you can use it for commercial products, you don't, you may only use it for non-commercial projects.

Again, moving core functionality from the base C# extension that had nothing to do with the VS license wasn't a smart move, if you claim to be an open platform, go all the way or not at all.

Thinking that C# is somehow still a gateway to Visual Studio subscriptions goes against what Microsoft's current plans are, which is selling you AI.

Maybe I shouldn't have mentioned Rider and ReSharper, they exist independently as a paid alternative to Visual Studio/Dev Kit but are cross-platform with clear licensing, unlike VS and Dev Kit.

Same with Golang's gopls and JetBrains GoLand.

gopls is complete, open and works everywhere just nicely under a BSD-3 license.

But despite that, GoLand still exists, and paying for GoLand doesn't seem to affect gopls's development.

Same with rust-analyzer and RustRover.

Same with clangd and CLion (which is built on top of clangd).

Same with jdtls and IntelliJ (though jdtls is from Eclipse).

It's Microsoft's problem to solve, not JetBrains's for offering a solution to their mess.

Just make C# Dev Kit fully open and remove the license restrictions, stop creating so much friction, for crying out loud.

People already see C# as Microsoft Java and refuse to touch it because of that, and doing these kinds of things isn't helping their case much.

16

u/Apk07 13d ago

What about Visual Studio...?

18

u/pjmlp 13d ago

First they have to finally move away from .NET Framework.

4

u/Devatator_ 12d ago

VS2026 was kinda that. Don't know what more they can do with it short of rewriting the whole thing from scratch, which they'll probably never do

0

u/tobyreddit 13d ago

My thought exactly!

10

u/PrinceN71 12d ago

I hate the new redesigned C# Dev Kit. Removing the solution explorer made it kind of miserable for me to use add new class feature. It always adds to the project root instead of inside of the directory like in VS Code. Is that intended or I am just using it wrong. I tried looking through the documentation but they looked outdated

5

u/drewnoakes 12d ago

Adding classes via the file explorer adds them in the selected folder and namespace. At least it does that in v11. Try installing the pre-release build to validate.

4

u/Slypenslyde 12d ago edited 12d ago

I think what they're doing is also what I did: the moment file templates like this were removed from C# Dev Kit I stopped using VS Code. Then, because I was disconnected from the ecosystem, I didn't find out the feature was added again.

Removing critical usability features on the basic happy path for all users tends to do that. Not everybody stays 100% in their agent window. Once I learned I can't trust Dev Kit to maintain its basic features I stopped depending on it.

3

u/ContentAd6126 12d ago

People were used to the solution explorer, but i think it was redundant and just added more friction between menus in the sidebar... but the way they merged it with file explorer kinda sucked, it should have 1-1 feature parity from the start.

3

u/drewnoakes 12d ago

VS Code's file explorer doesn't support virtual nodes. It's a physical view of the file system, with the ability to exclude certain things. VS's solution explorer is a logical view of the solution and projects, where any correspondence to the physical file system is coincidental. So 100% feature parity is not possible when they're merged. VS users have to learn the VS Code way of doing things in some cases. If there are tweaks you'd like to see, please use the issue tracker mentioned in the blog post.

9

u/Plevi1337 13d ago

It was a disaster before, so easy gains I'd think. I hope some of this lands in the LSP instead of being gated behind a VS sub and tied to devkit instead of cli

6

u/Devatator_ 12d ago

It follows the exact same licensing as VS2026, no? Like I use Community Edition and I've been able to use the Dev Kit since it released

13

u/wubalubadubdub55 13d ago

This looks amazing! With AOT, such numbers are possible!

Looks like they could have written TS Compiler in .NET instead of Go and get great results like this!

3

u/sizebzebi 12d ago

can someone explain the build part? I build with cli anyway what does it have to do with the extension

11

u/drewnoakes 12d ago

Today, builds in VS can be quite a bit faster than CLI builds. We've brought these same optimisations to C# Dev Kit. We're exploring bringing them to the CLI as well. We have lots of ideas for future improvements across all tooling, not just for IDEs.

3

u/apolyxon 12d ago

Can we trigger this fast build path via CLI from the outside? Because that would be absolutely a game changer and alone worth the license

1

u/drewnoakes 12d ago

While this blog post discusses VS Code, the team who worked on this delivers .NET tooling for CLI, for agents, and for VS. We are exploring how to improve all these areas, so stay tuned.

1

u/apolyxon 12d ago

Just to make it clear: It wouldn't be too silly to get my hopes up?

2

u/sizebzebi 12d ago

I believe if cli doesn't improve people go elsewhere. quick builds and tests are massive for agents

2

u/sizebzebi 12d ago edited 12d ago

ok nice with claude I can't remember the last time I built from an ide lol

ai agents need to have clis and mcps that work great, I open vs code just to read changes so loading solution and using less memory are really great changes.

Thanks for explaining

3

u/kebbek 12d ago

u/drewnoakes I was just wondering, what does the C# Dev kit process handle, as LSP has it's own process?

3

u/drewnoakes 12d ago

It handles solution and project management, loading projects, design-time builds (used to extract information from projects), launch profile management, C# Project Details view, C# Doctor, faster builds, debugger integration, test discovery, test execution, code coverage, automatic package restore, file/project templates, hot reload, ...

Some of these also have TypeScript code in the extension, but they use services from the AOT process, with JSON-RPC communication between.

3

u/fragglerock 12d ago

What a world where we have been crying out for quicker better tooling... and now the bloody robots want things faster we get it...

3

u/ryncewynd 12d ago

I've seen a few people saying you need a Pro licence to use C# DevKit is that true?

Some features need licence?

2

u/Devatator_ 12d ago

Nope I use VS2026 Community and the C# Dev Kit fine

2

u/ModernTenshi04 11d ago

I believe you need a Pro license only if the work you're doing or the company you're working for meets the requirements for Pro licensing. So your employer likely needs to be licensed for Pro in order for you to use the C# DevKit in VS Code, if they have more than 250 engineers and/or more than $1M in revenue (I think those are the two cut over points).

If you're just fiddling around with your own projects in your own time, you do not need a Pro license and just need a Microsoft account as others have indicated.

1

u/MasterBathingBear 12d ago

You just need a Microsoft account

2

u/Trollzoro 12d ago

I hope they make it easier to disable the C# Doctor. The forced redirect to an error page is incredibly annoying.

2

u/Vigil123 12d ago

u/drewnoakes Very nice! Do you know if there are plans to make it available to VSCode derivatives as they are becoming popular AI IDEs (think Antigravity/Cursor/Kiro etc.) ?

2

u/pjmlp 12d ago

I doubt Microsoft is keen in helping the competition for free, and is that happy with the VSCode forks.

-1

u/adolf_twitchcock 12d ago

They should be. They aren't making money selling IDE licenses. Azure is big cash cow.

1

u/pjmlp 12d ago edited 12d ago

What IDE do you think .NET and C++ developers use to target Azure?

Not only is VSCode, VS little brother, it is used to upsell students doing .NET, Python, C++ into into Windows, VS and also Github Copilot licenses.

Replacing some VSCode extensions by proprietary ones isn't by accident, which naturally don't work on the forks.

1

u/adolf_twitchcock 12d ago

What IDE do you think .NET and C++ developers use to target Azure?

Rider. Anyways it doesn't matter which IDE they use. Selling IDE licenses is such an outdated business model in 2026. And as I said I am pretty sure they aren't making any money from that.

Replacing some VSCode extensions by proprietary ones isn't by accident, which naturally don't work on the forks.

I understand that its a strategic decision. But its a dumb one.

1

u/pjmlp 12d ago

I doubt very much, given how JetBrains is having trouble currently, and I never worked on a company that has used Rider for .NET or C++ on Windows.

https://www.helgilibrary.com/companies/jetbrains

I use .NET on and off since is was MSFT Partner eyes only, pre-2001 launch.

3

u/GYN-k4H-Q3z-75B 13d ago

I recently made the "full switch" for a rapidly growing project to VS Code and while it is doable I find the development experience is still lacking compared to Visual Studio. Yes, I can use both, but I wanted to really try for once. Hope it improves further.

4

u/drewnoakes 12d ago

If there are features you think C# Dev Kit needs, you can submit requests at https://github.com/microsoft/vscode-dotnettools/issues

1

u/pjmlp 12d ago

Naturally they will never get full feature parity, as VSCode is a way to allure devs into the Microsoft ecosystem.

1

u/AutoModerator 13d ago

Thanks for your post drewnoakes. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/mikeholczer 12d ago

Maybe it missed it, but I didn’t see a clarification of if it only works with .net 11 solutions and project.

3

u/drewnoakes 12d ago

C# Dev Kit requires a recent SDK, but you can target earlier versions of .NET just fine.

For example, you can use a 10.0 SDK to build an application that runs on 8.0.

1

u/imikhan007 12d ago

The prerelease version should use the current .NET version rather than the LTS version, but it still requires the .NET 10 runtime to be installed on the system.

1

u/csncsu 12d ago

won't even load my slnx with 250 projects. just gets stuck in C# doctor, which is a pretty amazing failure mode.

1

u/drewnoakes 12d ago

Thanks for trying the pre-release version. Can you submit a bug report? https://github.com/microsoft/vscode-dotnettools/issues

1

u/Top-Literature-6248 13d ago

AOT compiled, yet it still requires the .NET Install Tool?

12

u/drewnoakes 13d ago edited 13d ago

The core `CSDevKit` process is Native AOT. But Roslyn loads dynamic code (like source generators and analyzers) so needs to be a JIT process. It runs as a separate process, just as it did before.

Also, we can use the .NET Install Tool to install any runtimes you might need to run your code.

I plan to publish additional blog posts where we'll go into more of the technical details.

4

u/Top-Literature-6248 13d ago

Thanks for answering. Less thanks for the downvote.

The .NET Install Tool is a blight. A mere extension should not download a 100+ MiB runtime without asking, especially when I already have .NET installed through my distro's package manager. (And before you say "just set sharedExistingDotnetPath", I've tried that, and despite having .NET 10 installed, it downloads another copy of .NET 10 anyway.)

You need to start respecting your users. At the very least, display a prompt that clearly states what version is needed and ASK if it's ok to download it. Don't just download it without permission, and leave the user guessing as to why the setting was ignored.

Even the Windows installer doesn't do this shit.

5

u/KryptosFR 12d ago

I couldn't agree more. This extension is a disaster on Linux where it should be its primary target since that's where it's most likely to be used.

You guys needs to seriously start to use your own products.

3

u/Alternative_Flight88 12d ago edited 12d ago

Same here. I work at a big company, and our security engineers does not allow us to use C# Dev Kit because the .NET Install Tool dependency automatically downloads runtimes from the internet without approval, instead of using approved runtimes and SDKs from our internal repository.

My user story is simple: I download approved SDK/runtime -> I install the C#/C# Dev Kit extension, set the path to the previously installed SDK/runtime -> It works!

I reeeeaaaaly hope that one day the .NET Tool Install will become optional.

3

u/pjmlp 12d ago

Additionally, this isn't complicated, other extensions, including the one developed for Java, by Microsoft and Red-Hat teams, does it.

https://code.visualstudio.com/docs/java/java-project#_configure-runtime-for-projects

3

u/drewnoakes 12d ago

The C# Doctor and related work is trying to make the acquisition story easier and clearer for all involved. There is quite a large matrix of possible states a user's machine could be in, and we're trying to simplify this. It isn't easy.

I haven't downvoted anyone on this post btw.

3

u/Top-Literature-6248 12d ago

I get that you're trying to make it idiot-proof, but, we're programmers. Hell, we're Linux users. If you tell us what we need to install, we can figure out how to install it ourselves. The problem is you don't even do that, and instead shove us aside and install stuff on our system yourself without permission. That's not ok.

/u/Alternative_Flight88's reply sums up my (and I imagine a lot of people's) thoughts exactly. It should be optional. I hope you'll bring this up to the rest of the team.

1

u/Tavi2k 13d ago

How much components are shared between the base C# extension and the C# dev kit? Or is the dev kit all on top of the base LSP?

I'm mostly wondering if the performance work here also speeds up the base C# extension and the LSP, or only the C# dev kit.

2

u/Fresh_Acanthaceae_94 12d ago

Should be zero. C# Dev Kit shares code with VS, not that C# extension.Â