Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

.NET Tools

.NET Annotated Monthly | May 2023

Did you know? There is a difference between compilation and transpilation. The short explanation is that compilers use code from one language to produce output, usually binary. Transpilers are a type of compiler that produce source code but at the same level of abstraction, so the output is usually more source code.

.NET Annotated Monthly | May 2023

.NET news

Featured content 

We’d like to thank Laurent Kempé for curating this month’s featured content! Laurent is a JetBrains .NET Community Contributor and Microsoft MVP for Developer Technologies. He is passionate about new technology, teamwork, and developer productivity. He publishes content on his blog, twit as laurentkempe, shares open source code on GitHub, and publish his photos on flickr.

Thank you, JetBrains, for having me as a curator of your .NET Annotated for May 2023. As a long-time supporter of your developer tools, I appreciate it.

I started with computers when I was 12 on a ZX81. It had 1 KB of memory. I later extended it to 16KB. At that time, the memory was precious for programmers. We would optimize any bits.

Today, my desktop has 64GB, my notebook 32GB, and my phone 8GB, crazy! Nevertheless, I still feel that the memory is precious. Some technology movements, such as serverless and edge computing, amplify that feeling.

The container’s size is another area where the memory footprint is essential. The smaller the container size, the faster it gets deployed, the more you can deploy on one physical machine, and the less it costs to run.

As .NET C# developers, we got reminded about the importance of memory footprint for quite some time with Blazor WebAssembly. Running .NET code in the browser means downloading the .NET Common Language Runtime (CLR) to the web browser. With .NET 7, the size of the CLR downloaded with the file ‘dotnet.wasm’ is around 2.5MB, which is already quite impressive. Then there are all the .NET framework assemblies for another 20MB. Of course, there are techniques like caching that reduce the impact. There is also trimming and AOT. On top of that, the .NET team is working on lowering that size even more for .NET 8.

WASM (WebAssembly) is a good topic when you talk about reducing the size of payloads. WASI (WebAssembly System Interface) is another one. WASI is a system interface for WebAssembly. It is a way to run WebAssembly outside of the browser. It lets you run WebAssembly on a server, on the edge, on the desktop, on mobile devices, and IoT devices. So again, the memory footprint is essential.

I am delighted that Microsoft is embracing WASI, now available in the nightly build of the .NET SDK for .NET 8. I love seeing Fermyon letting us “Experience the next wave of cloud computing” with .NET! Then we have the idea of components, introduced by Dapr, for building portable and reliable microservices. Now, combine all of those things. We will have some new Lego pieces in our developer’s hands. Those will allow us to build impressive new applications and systems at a fraction of today’s cost.

I am looking forward to seeing where our industry is moving next. My passion is still huge for someone who started with computers in the 1980s. And by the way, I did not even speak about AI!

Links:

DotNetIsolator: an experimental package for running .NET code in an isolated sandbox – Steve Sanderson, the father of Blazor, shows us how to run .NET code in an isolated sandbox levergaging WASM/WASI. This is a great way to run untrusted code in a safe way. Stay tuned for more, soon.

Using WebAssembly to run, extend, and secure your .NET application – Niels Tanis gives an excellent presentation at NDC Security 2023, introducing WASM and WASI and then how to extending and secure .NET with WebAssembly.

.NET WASI support tracking – This issue is to track known issues in the early WASI-enabled runtime builds.

.NET runtime builds.

Fermyon Spin SDK for .NET Preview – Fermyon is a company that is building a new cloud platform based on WASM/WASI. They have a preview of their SDK available for .NET on GitHub. 

WASM I/O 2023 – A great playlist of videos from the WASM I/O 2023 conference which happenend in March 2023.

Introduction to Dapr – Join Aaron Crawfis and Paul Yuknewicz to learn about Dapr, the Distributed Application Runtime. Learn how to install, init, and run Dapr  in just a few seconds, and begin adding Dapr’s building blocks to your own applications. Also see what’s new in Dapr v1.10, including Dapr workflows.

Programing tutorials and tips 

.NET tutorials and tips

Related programming tutorials and tips:

Interesting and cool stuff

And finally, the latest from JetBrains

⚒️ Check out our .NET Guide! Videos, tips, and tricks on .NET related topics. ⚒️

Don’t miss this fantastic offer! CODE Magazine is offering a free subscription to JetBrains customers. Get your copy today!

Sharing is caring! So share content that you find useful with other readers. Don’t keep it to yourself! Send us an email with your suggestions for publication in future newsletters!

Subscribe to .NET Annotated

image description

Discover more