Microsoft employee here. We were "urged" to use .NET 6 last year when starting a new project internally and the transition has been quite hard. The learning curve is extremely steep. It took us almost two weeks to work out some basics because the online documentation, a lot of open source projects and what the latest .NET templates look like are very different. The team spends a lot of time figuring out how something is done in .NET and we stumble over a lot of online advice which is dated or plain wrong because it dates back to .NET Framework or .NET Core times. .NET 6 seems to be different to .NET Framework and different to .NET Core in the way it handles even simple things like namespaces, using declarations and other language features. Maybe when we get good at it we will like it but so far it's been quite a journey and I'm not sure we would choose it again if we didn't have to.
This is just the decay of knowledge over time and laziness combined.
From a quick glance internally, the overwhelming majority of repos are using an antiquated build/packager that while it might have been useful a decade ago is a productivity killer today.
The newer build / package system used publicly is light years ahead and provides a boon in productivity.
Not really sure why so many services in MSFT still run .NetFramework when “just” migrating over can lead to sometimes order of magnitude increase runtime performance and decreased resource consumption.
I think one of the real reasons is internally, most of the leads aren’t aware of it. There should be more evangelizing of the .NET team across the different orgs
> .NET 6 seems to be different to .NET Framework and different to .NET Core in the way it handles even simple things like namespaces, using declarations and other language features.
Those are C# language features, not necessarily .NET 6 features:
Yeah, those are optional language features. Namespaces with braces work just fine, and any other language features that are too fancy can be easily disabled in your .csproj (sometimes by downgrading to an older LangVersion).
This feels really incorrect or perhaps you're a complete novice to .NET or fresh out of school. .NET 6 is line-for-line compatible with nearly everything you'd encounter online. The core API hasn't changed, there's certain edges that have changed from .NET Framework to .NET, including where certain libraries might have been moved but I've migrated multiple projects now and the only issues were typically related to either using very old frameworks that had changed their API or changes to build systems (which admittedly are tedious).
I agree that the OP sounds very incorrect, but there is one thing that is notably different, and that would be web development. The classic ASP.NET and the modern ASP.NET Core are not compatible with each other, and have different development styles in some areas. But other than that, most code out there should work with both.
I find this extremely surprising. What were you using before?
I've done multiple Framework 4.8 to .NET 6 migrations and the issue is almost always compatibility with new libraries. Language issues rarely if ever come into play.
What C# language version were you working with before?
Post author here -- There are lots of resources for teams within Microsoft. Please reach out and we can help you speed up that process. Contact info in my profile.
We work super closely with teams and often post about their fine work and even finer results on our blog.
Why... Are the names of everything so confusing? Why does the naming scheme hsve to change with whst looks like every release of the language or framework or whatever. To an outsider all the different .net (core|framework| whatever) names just look.. like the same thing.
I hate the naming scheme but I get it up to a point. Core has VERY breaking changes from Framework (killing off libraries although some of them have been unkilled to varying degrees is probably the biggest one). Frankly I wish they'd stuck with Core as the Post Framework name instead of being like "okay now we are just .NET 5!
We mention in our job descriptions clearly .NET 4.8 and still get 100s of applications.
In the meantime we are working on upgrade to the new .NET but it will take at least couple years.