Roundup #48: .NET Reunified, Performance in .NET Core 3, XAML Hot Reload, Blazor

Here are the things that caught my eye recently in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

.NET Reunified: Microsoft’s Plans for .NET 5

When Microsoft announced .NET 5 at Microsoft Build 2019 in May, it marked an important step forward for developers working across desktop, Web, mobile, cloud and device platforms. In fact, .NET 5 is that rare platform update that unifies divergent frameworks, reduces code complexity and significantly advances cross-platform reach.

Link: https://msdn.microsoft.com/en-us/magazine/mt833477.aspx

What’s new for performance in .NET Core and ASP.NET Core 3.0 – Ben Adams

One of the biggest advantages of using .NET Core (besides cross-platform support) is the drastic improvements in performance. Because the .NET Core team was able to make minor breaking changes in the runtime and Base Class Library (BCL), lots of stuff was implemented much more efficiently. In this session Ben will dive into the performance improvements in .NET Core in the 3.0 release: runtime changes, JIT changes, intrinsics and a deep dive into some of the improvements making it the best release yet!

Link: https://www.youtube.com/watch?v=bIfolJJJWqs

Announcing XAML Hot Reload for Xamarin.Forms

Today at Xamarin Developer Summit, we announced XAML Hot Reload for Xamarin.Forms, which enables you to make changes to your XAML UI and see them reflected live, without requiring another build and deploy.

XAML Hot Reload for Xamarin.Forms speeds up your development and makes it easier to build, experiment, and iterate on your user interface. And this means that you no longer have to rebuild your app each time you tweak your UI – it instantly shows you your changes in your running app!

Link: https://devblogs.microsoft.com/xamarin/xaml-hot-reload/

Blazor, a new framework for browser-based .NET apps – Steve Sanderson

Today, nearly all browser-based apps are written in JavaScript (or similar languages that transpile to it). That’s fine, but there’s no good reason to limit our industry to basically one language when so many powerful and mature alternate languages and programming platforms exist. Starting now, WebAssembly opens the floodgates to new choices, and one of the first realistic options may be .NET.

Blazor is a new experimental web UI framework from the ASP.NET team that aims to brings .NET applications into all browsers (including mobile) via WebAssembly. It allows you to build true full-stack .NET applications, sharing code across server and client, with no need for transpilation or plugins.

In this talk I’ll demonstrate what you can do with Blazor today and how it works on the underlying WebAssembly runtime behind the scenes. You’ll see its modern, component-based architecture (inspired by modern SPA frameworks) at work as we use it to build a responsive client-side UI. I’ll cover both basic and advanced scenarios using Blazor’s components, router, DI system, JavaScript interop, and more.

Link: https://www.youtube.com/watch?v=uW-Kk7Qpv5U

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.

Roundup #45: AWS Secrets Manager, Microservices, ASP.NET Core Architect, WCF vs gRPC

Here are the things that caught my eye this week in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

AWS Secrets Manager client-side caching in .NET

AWS Secrets Manager now has a client-side caching library for.NET that makes it easier to access secrets from .NET applications. This is in addition to client-side caching libraries for Java, JDBCPython, and Go. These libraries help you improve availability, reduce latency, and reduce the cost of retrieving your secrets. Secrets Manager cache library does this by serving secrets out of a local cache and eliminating frequent Secrets Manager API calls.

Link: https://aws.amazon.com/blogs/security/how-to-use-aws-secrets-manager-client-side-caching-in-dotnet/

Microservices and more in .NET Core 3.0

Enabling developers to build resilient microservices is an important goal for .NET Core 3.0 In this episode, Shayne Boyer is joined by Glenn Condron and Ryan Nowak from the ASP.NET team who discuss some of the exciting work that’s happening in the microservice space for .NET Core 3.0.

Link: https://www.youtube.com/watch?v=cNdPbTB72bw

Becoming the ASP.NET Architect with David Fowler

In this episode, David Fowler, the Partner Architect for the ASP.NET team walks you through landing his first job, moving from a dev to an architect role and what he had to learn and let go of at every step along the path. (David intros himself as a Principal Architect but his promotion was announced right after we filmed.)

Link: https://www.youtube.com/watch?v=8akvvwQoGjs

WCF vs gRPC – Round 2

After my previous post comparing WCF to gRPC, a couple of people on Twitter and in the comments asked which WCF binding I had used for the performance comparison. The answer to that was “whatever the default binding is”, which is basic HTTP binding. As Clemens Vaster pointed out, that is not an “apples-to-apples” comparison, and a fairer WCF vs gRPC test would use NetTCP binding. So I re-ran my performance tests using NetTCP binding in a simple console host for the WCF service.

Link: https://unwcf.com/posts/wcf-vs-grpc-round-2/

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.

Roundup #44: Porting Desktop Apps to .NET Core, .NET Core 3 Progress, GC Pressure, WCF vs gRPC

Here are the things that caught my eye this week in .NET.  I’d love to hear what you found most interesting this week.  Let me know in the comments or on Twitter.

Porting desktop apps to .NET Core

Since I’ve been working with the community on porting desktop applications from .NET Framework to .NET Core, I’ve noticed that there are two camps of folks: some want a very simple and short list of instructions to get their apps ported to .NET Core while others prefer a more principled approach with more background information. Instead of writing up a “Swiss Army knife”-document, we are going to publish two blog posts, one for each camp:

This post is the simple case. It’s focused on simple instructions and smaller applications and is the easiest way to move your app to .NET Core.

We will publish another post for more complicated cases. This post will focus more on non-trivial applications, such WPF application with dependencies on WCF and third-party UI packages.

If you prefer watching videos instead of reading, here is the video where I do everything that is described below.

Link: https://devblogs.microsoft.com/dotnet/porting-desktop-apps-to-net-core/

.NET Core 3.0 Progress

Link: https://twitter.com/ziki_cz/status/1133786512473018368

8 Techniques to Avoid GC Pressure and Improve Performance in C# .NET

In a .NET application, memory and performance are very much linked. Poor memory management can hurt performance in many ways. One such effect is called GC Pressure or Memory Pressure.

GC Pressure (garbage collector pressure) is when the GC doesn’t keep up with memory deallocations. When the GC is pressured, it will spend more time garbage collecting, and these collections will come more frequently. When your app spends more time garbage collecting, it spends less time executing code, thus directly hurting performance.

Link: https://michaelscodingspot.com/avoid-gc-pressure/

WCF vs gRPC

One of the alternatives recommended by Microsoft for organizations looking for a migration path away from WCF on .NET Framework is gRPC: a low-overhead, high-performance, cross-platform RPC framework. The upcoming .NET Core 3.0 has first-class support for gRPC; out of the box, you can create a new project with dotnet new grpc.

Link: https://unwcf.com/posts/wcf-vs-grpc/

Enjoy this post? Subscribe!

Subscribe to our weekly Newsletter and stay tuned.