In this article, I describe my journey creating a barely functional rust backend enabling compilation for the .NET runtime (Usually used to run C# and F#). It is currently in the proof-of-concept stage, but I believe it still may be of some interest. Rust is everywhere.
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”.
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 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.
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.
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 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.
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.
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.
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.
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.
Today, I am excited to announce that Visual Studio 2015 and .Net 4.6 are available for download.
These releases are the next big step in the journey we outlined last November to bring the productivity of Visual Studio and .NET to any developer working on any kind of application while also delivering a new level of innovation in developer productivity for all Visual Studio developers.
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 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.
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.
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.
"Last week at the BUILD conference, we had the pleasure of announcing the next version of the .NET Framework and releasing a developer preview
at the same time. We have so many new things in .NET 4.5
to discuss with our developer community - we're excited to have this opportunity to begin a discussion about each of them
From the release announcement
: "Almost a year ago we started building a set of Mono bindings for building native MacOS X applications. Our original goals were modest: bind enough of AppKit that you could build native desktop applications for OSX using C# or your favorite .NET language. We leveraged a lot of the code that we built for MonoTouch our binding to the CocoaTouch APIs."
"In a keynote presentation at the Silverlight Firestarter event this morning, Corporate Vice President in Microsoft's developer division, Scott Guthrie officially announced Silverlight 5, and outlined its new features and 1H 2011 beta availability. Silverlight 5 adds more than 40 new features to the Web application framework that focus on improving its streaming media functionality for users and on improving application development for engineers. Some of the new streaming additions include: GPU-accelerated video decoding, variable speed playback which allows for user-defined, pitch-corrected slow motion, improved power saver awareness to prevent screensavers from turning on during playback, and native remote control support."
"Visual Studio 2010 and .NET Framework 4
have something for every developer. The new editor, now using Windows Presentation Foundation, supports concepts such as the use of multiple monitors. This enables a developer to have one monitor with code, another with the user interface designer, and yet another with database structure. Developers have integrated access to SharePoint functionality into the Visual Studio integrated development environment. Windows Azure tools make it easy to quickly develop, debug, test and deploy cloud applications from within the familiar Visual Studio environment."