.NET Archive

.NET 9 released

Today, we are excited to announce the launch of .NET 9, the most productive, modern, secure, intelligent, and performant release of .NET yet. It’s the result of another year of effort on the part of thousands of developers from around the world. This new release includes thousands of performance, security, and functional improvements. You will find sweeping enhancements across the entire .NET stack from the programming languages, developer tools, and workloads enabling you to build with a unified platform and easily infuse your apps with AI. ↫ .NET Team at the .Net Blog All I know is that these are very important words, and a very important release, for thousands and thousands of unknown developers slaving away in obscurity, creating, maintaining, and fixing endless amounts of corporate software very few of us ever actually get to see very often. They toil away for meager pay in the 21st century version of the coal mines of the 19th century, without any recognition, appreciation, or applause. They work long hours, make their way through the urban planning hell that is modern America, and come home to make some gruel and drink water from lead pipes, waiting for the sweet relief of what little sleep they manage to get, only to do it all over again the next day. …I may have a bit of a skewed perception of reality for most IT people. In all seriousness, .NET is a hugely popular set of tools and frameworks, and while it’s probably not the most sexy topic in the tech world, any new release matters to a ton of people. .NET 9.0. This new version’s main focus seems to be performance, with over 1000 performance-related changes tot he various components that make up .NET. In a blog post about these performance improvements, Stephen Toub explains in great detail what some of the improvements are, and where the benefits lie. Of course, there’s an insane amount of talk about “AI” features in .NET 9, and apparently .NET MAUI is seeing a surge in popularity on Android, if you believe Microsoft (“30$” increase in “developer usage” means little when you don’t provide a baseline). .NET MAUI is Microsoft’s cross-platform framework for building applications for Android, iOS, macOS, and Windows. Among other things, .NET MAUI 9 provides more access to platform-native features, as well as benefiting from some of the performance improvements. There’s also a paragraph about .NET 9 development on Windows, just in case you thought the .NET team forgot Windows existed. With .NET 9, your Windows apps will have access to the latest OS features and capabilities while ensuring they are more performant and accessible than ever before. Whether you are starting a new modern app with WinUI 3 and the Windows App SDK or modernizing your existing WPF and WinForms applications, your Windows apps run best on .NET 9. We have been collaborating closely with the Windows developer community to bring features that you have been requesting. This includes Native AOT support for WinUI 3 for smaller and more performant apps, modern theming enhancements with Fluent UI for WPF, and WinForms gets a boost with a new Dark Mode, modern icon APIs, and improved asynchronous API access with Control.InvokeAsync. ↫ .NET Team at the .Net Blog There’s way more on top of all of this, from changes to the languages .NET uses to new releases of the various developer tools, like Visual Studio.

Microsoft hands over Mono to the Wine project

Microsoft is handing over the Mono project to WineHQ, which came as a bit of a surprise announcement today. We are happy to announce that the WineHQ organization will be taking over as the stewards of the Mono Project upstream at wine-mono/Mono · GitLab (winehq.org). Source code in existing mono/mono and other repos will remain available, although repos may be archived. Binaries will remain available for up to four years. Microsoft maintains a modern fork of Mono runtime in the dotnet/runtime repo and has been progressively moving workloads to that fork. That work is now complete, and we recommend that active Mono users and maintainers of Mono-based app frameworks migrate to .NET which includes work from this fork. ↫ Mono’s website Wine make use of Mono, so this seems like a natural home for the project. Mono is an open source implementation of Microsoft’s .NET, and is available on a wide variety of platforms, but lately it’s been languishing a bit, with no major release since 2019, and only small patches since then. Microsoft gained stewardship over the Mono project when it acquired Xamarin in 2016.

.NET 8 released

With this release, .NET reshapes the way we build intelligent, cloud-native applications and high-traffic services that scale on demand. Whether you’re deploying to Linux or Windows, using containers or a cloud app model of your choice, .NET 8 makes building these apps easier. It includes a set of proven libraries that are used today by the many high-scale services at Microsoft to help you with fundamental challenges around observability, resiliency, scalability, manageability, and more. Integrate large language models (LLMs) like OpenAI’s GPT directly into your .NET app. Use a single powerful component model to handle all your web UI needs with Blazor. Deploy your mobile applications to the latest version of iOS and Android with .NET MAUI. Discover new language enhancements that make your code more concise and expressive with C# 12. It’s still wild to me to that Microsoft provides detailed installation instructions for .NET for a variety of Linux distributions, down to stuff like Alpine.

How small is the smallest .NET Hello World binary?

Here is a dumb question that you probably never asked yourself: What is the minimal amount of bytes we need to store in a .NET executable to have the CLR print the string "Hello, World!" to the standard output? In this post, we will explore the limits of the .NET module file format, get it as small as possible, while still having it function like a normal executable on a typical Windows machine with the .NET Framework installed. The answer is “way, way smaller than I thought”.

.NET 6 released

Welcome to .NET 6. Today’s release is the result of just over a year’s worth of effort by the .NET Team and community. C# 10 and F# 6 deliver language improvements that make your code simpler and better. There are massive gains in performance, which we’ve seen dropping the cost of hosting cloud services at Microsoft. .NET 6 is the first release that natively supports Apple Silicon (Arm64) and has also been improved for Windows Arm64. We built a new dynamic profile-guided optimization (PGO) system that delivers deep optimizations that are only possible at runtime. Cloud diagnostics have been improved with dotnet monitor and OpenTelemetry. WebAssembly support is more capable and performant. New APIs have been added, for HTTP/3, processing JSON, mathematics, and directly manipulating memory. .NET 6 will be supported for three years. Developers have already started upgrading applications to .NET 6 and we’ve heard great early results in production. .NET 6 is ready for your app. It’s available on Linux, Windows, and macOS.

Microsoft reverses controversial .NET change after open source community outcry

Microsoft is reversing a decision to remove a key feature from its upcoming .NET 6 release, after a public outcry from the open source community. Microsoft angered the .NET open source community earlier this week by removing a key part of Hot Reload in the upcoming release of .NET 6, a feature that allows developers to modify source code while an app is running and immediately see the results. It’s a feature many had been looking forward to using in Visual Studio Code and across multiple platforms, until Microsoft made a controversial last-minute decision to lock it to Visual Studio 2022 which is a paid product that’s limited to Windows. Sources at Microsoft, speaking on condition of anonymity, told The Verge that the last-minute change was made by Julia Liuson, the head of Microsoft’s developer division, and was a business-focused move. The scorpion and the frog make it a little further across the river. For now.

Performance improvements in .NET 6

I at least peruse if not review in depth the vast majority of all those PRs, and every time I see a PR that is likely to impact performance, I make a note of it in a running log, giving me a long list of improvements I can revisit when it’s blog time. That made this August a little daunting, as I sat down to write this post and was faced with the list I’d curated of almost 550 PRs. Don’t worry, I don’t cover all of them here, but grab a large mug of your favorite hot beverage, and settle in: this post takes a rip-roarin’ tour through ~400 PRs that, all together, significantly improve .NET performance for .NET 6. You might want to get some coffee.

.NET 5.0 released

We’re excited to release .NET 5.0 today and for you to start using it. It’s a major release — including C# 9 and F# 5 — with a broad set of new features and compelling improvements. It’s already in active use by teams at Microsoft and other companies, in production and for performance testing. Those teams are showing us great results that demonstrate performance gains and/or opportunities to reduce hosting costs for their web applications. ASP.NET Core, EF Core, C# 9, and F# 5 are also released today. You can download .NET 5.0 for Windows, macOS, and Linux on both x86 and ARM.

Microsoft plots the end of Visual Basic

Microsoft said this week that it will support Visual Basic on .NET 5.0 but will no longer add new features or evolve the language. “Starting with .NET 5, Visual Basic will support Class Library, Console, Windows Forms, WPF, Worker Service, ASP.NET Core Web API … to provide a good path forward for the existing VB customer who want to migrate their applications to .NET Core,” the .NET team wrote in a post to the Microsoft DevBlogs. “Going forward, we do not plan to evolve Visual Basic as a language … The future of Visual Basic … will focus on stability, the application types listed above, and compatibility between the .NET Core and .NET Framework versions of Visual Basic.” Alright then.

Announcing .NET Core 3.0

We’re excited to announce the release of .NET Core 3.0. It includes many improvements, including adding Windows Forms and WPF, adding new JSON APIs, support for ARM64 and improving performance across the board. C# 8 is also part of this release, which includes nullable, async streams, and more patterns. F# 4.7 is included, and focused on relaxing syntax and targeting .NET Standard 2.0. You can start updating existing projects to target .NET Core 3.0 today. The release is compatible with previous versions, making updating easy.

Introducing .NET 5

Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the next big release in the .NET family. There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more. We will introduce new .NET APIs, runtime capabilities and language features as part of .NET 5. This will be a Microsoft-heavy day, since Microsoft’s developer conference is underway.

Google signs on to the .NET Foundation

Microsoft is hosting its annual Connect(); developer event in New York today. With .NET being at the core of many of its efforts, including on the open-source side, it’s no surprise that the event also featured a few .NET-centric announcements, as well. For the most part, these center around the .NET Foundation, the open-source organization Microsoft established to guide the future development of the .NET Core project.

As the company announced today, Google is now a member of the .NET Foundation, where it joins the likes of Red Hat, Unity, Samsung JetBrains and (of course) Microsoft in the Technical Steering Group.

In addition, Samsung is bringing .NET to its Tizen platform, which it claims is installed on 50 million devices. Tizen is uses in Samsung smartwatches and TVs, among other things.

Announcing .NET Core 1.0

We are excited to announce the release of .NET Core 1.0, ASP.NET Core 1.0 and Entity Framework 1.0, available on Windows, OS X and Linux! .NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications.

This release includes the .NET Core runtime, libraries and tools and the ASP.NET Core libraries. We are also releasing Visual Studio and Visual Studio Code extensions that enable you to create .NET Core projects. You can get started at https://dot.net/core. Read the release notes for detailed release information.

WCF is now open source

WCF targets the .NET Core framework which is designed to support multiple computer architectures and to run cross-platform. Right now the WCF project builds on Windows, but .NET Core offers the potential for it to run on OS X and Linux. The WCF team are working hard to make this a reality and to keep up to date as platform support for .NET Core grows, but if you want to help I know they would love contributions especially around improving and testing the platform support.

Microsoft is open sourcing .NET framework

Microsoft has just announced they open sourced .NET," including ASP.NET, the .NET compiler, the .NET Core Runtime, Framework and Libraries, enabling developers to build with .NET across Windows, Mac or Linux." They're including a patent promise. Miguel de Icaza reports that the Mono project will be "replacing chunks of Mono code that was either incomplete, buggy, or not as fully featured as it should be with Microsoft's code," and he also notes that "Microsoft has stated that they do not currently plan on taking patches back or engaging into a full open source community style development of this code base, as the requirements for backwards compatibility on Windows are very high." Nevertheless, this is a very interesting development that demonstrates that Microsoft is serious about remaining relevant.

Visual Studio goes cross platform with Cordova integration

At its TechEd conference today, Microsoft announced the next step in its "mobile first, cloud first" strategy with a preview of Apache Cordova support in Visual Studio. Cordova is a toolkit for building apps for iOS, Android, and Windows using HTML, CSS, and JavaScript. With the Cordova integration, Visual Studio will directly support building apps for all of these platforms.

This new thing Microsoft's got going on takes a bit of getting used to. I hope it sticks for once, because this company has changed direction more often than a politician in need of campaign funding.

Microsoft open sources big chunk of .NET

At its Build developer conference today, Microsoft announced that it was open sourcing a wide array of its .NET libraries and related technologies and creating a group, the .NET Foundation, to oversee the development and stewardship of the open source components.

Perhaps the highlight of the announcement today was that the company will be releasing its Roslyn compiler stack as open source under the Apache 2.0 license. Roslyn includes a C# and Visual Basic.NET compiler, offering what Microsoft calls a "compiler as a service".

This is more than just a code dump - Microsoft is launching the .NET Foundation, with representatives from Microsoft, GitHub, and Xamarin, among others, to act as stewards for the various related open source projects.