There are a lot of good technical articles & books on Web. I see them all the time – when trying to find a solution, when investigating things or simply when reading new posts from my RSS Feed during breakfast.
Having all these knowledge only for myself was a bit selfish. That is why once a month or two I compose some of this content into a so called ‘digest’ for colleagues & friends.
After fourth issues (this one is the fourth) I though – maybe this can be interesting for my readers? So this is the Aprils issue of .NET R&D Digest.
Computer Science
- JPEG’s Magic (by Benjamin Dumke-von der Ehe)
In this talk, Ben explains how JPEG compression works and how it reduces the size of digital photos by a large amount without sacrificing quality.
Security
- Use this mental model to learn security (by Daniel Szpisjak)
This post presents one of the quite popular mental models for learning security. It helps you organize the knowledge and guides your thinking by telling you how different ideas connect.
Domain Driven Design
- How to publish and handle Domain Events (by Kamil Grzybek)
In this post Kamil aggregates different approaches of how to raise domain events and provides some useful comments. Links to the original posts are very valuable. - Simple CQRS implementation with raw SQL and DDD (by Kamil Grzybek)
This post demonstrates a simple but yet complete example of implementing CQRS with DDD.
Design
- Domain-Oriented Observability (by Pete Hodgson)
This article explains a concept of domain oriented observability – i.e. how to instrument domain methods and why you should instrument them in the first place.
C# Language
- C# ReadOnlySpan and static data (by Kevin Jones)
In this post Kevin walks through one of the under the hood magic thing done by a compiler to optimize usage ofReadOnlySpan<byte>
type. - Code Tip: How to work with asynchronous event handlers in C#? (by Oleg Karasik)
This post is a small neat pick about how you can support asynchronous events handlers when raising events in .NET using C#. - What’s new in C# 8 (by documentation)
While C# 8 isn’t available yet (it will be released alongside with .NET Core 3.0) there are many features confirmed to be present in the next version.
.NET Core
- [C#] Have some fun with .net core startup hooks (by Kévin Gosse)
A fun way to learn about new .NET Core feature – Startup Hooks. - How to port desktop applications to .NET Core 3.0 (by Olia Gavrysh)
The .NET Core is coming with WPF and WebForms support. This post is a guide of how to start porting your desktop app to .NET Core 3.0.
ASP.NET Core
- Why isn’t my session state working in ASP.NET Core? Session state, GDPR, and non-essential cookies (by Andrew Lock)
The GDPR features introduced in ASP.NET Core 2.1 and the fact that session state uses cookies. In this post Andrew describes why session state doesn’t behave as expected, as well as some ways to handle it. - Using MVC result executors in ASP.NET Core middleware (by Kristian Hellang)
In this post Kristian explains how you can handle content negotiation process in ASP.NET Core application right from the middleware. - Health Checks in ASP.NET Core (by Derek Comartin)
Nice post about how to use HEALTHCHECK feature introduced in ASP.NET Core 2.2 with detailed explanations and list of useful NuGet packages. - Re-reading ASP.Net Core request bodies with EnableBuffering() (by Jeremy Meng)
In some scenarios there’s a need to read the request body multiple times. Usually we just copy the request body in some temporary memory stream but what if framework has a built-in support for these scenarios?
Entity Framework Core
- Many to Many Relationships in EF Core 2.0 (by Arthur Vickers)
This series describes a way to handle many-to-many relationships in Entity Framework Core 2.0.
.NET Internals
- Any tool to see where variables are stored while a .NET program is executing? Is it on the stack or heap? (by Hans Passant)
A Stack Overflow answer from Hans Passant about how variables are stored during .NET application execution.
CSS
- CSS GRID (by Wes Bos)
CSS Grid is a brand new layout system in CSS! It’s not a framework or library – it’s an addition to the language that allows us to quickly create flexible, two dimensional layouts. This page contains materials and web course created by Wes Bos. - How to Learn CSS (by Rachel Andrew)
This article can be a good starting point if you’ve decided to start learning CSS. It explains some of the core concepts, approaches and has useful links in it.
GitHub
- Creating my first GitHub app with Probot(by Andrew Lock)
The series of posts describe how to build a GitHub application using a Probot framework. If you ever thought – “What if GitHub could…” then the Probot and this series is for you. Turn “whether it could” into “it can” 🙂
MSBuild
- Shipping a cross-platform MSBuild task in a NuGet package (by Nate McMaster)
This post explains in details how to create and ship a cross platform MSBuild task in a NuGet package.
Cloud
- Azure Tips and Tricks
This site is a special collection of over 180+ tips, videos, conference talks, and 2 eBooks that span the entire universe of the Azure platform. The tips you’ll find here are based on real-world scenarios that the community has encountered while using Azure. - Azure April (by Emily Freeman, Jennifer Davis, Burke Holland and others)
This series covers multiple “working with Azure” situations. There would be abound 31 posts dedicated to: Deploying to Azure, Blob Storage, Logic Apps, Machine Learning, Azure DevOps, ARM templates, Azure Functions, VS Code, Cosmos DB and IoT. - Phippy and Friends
This demo project has a few services, each of service is written in a different language, showing how the Azure Kubernetes Service (AKS) cluster can run anything you can bring it.
Tools
- ObjectLayoutInspector
There is no official documentation about fields layout because the CLR authors reserved the right to change it in the future. But knowledge about the layout can be helpful if you’re curious or if you’re working on a performance critical application. - System.CommandLine
A set of libraries for command line parsing, invocation, and rendering of terminal output. For more information checkout this post and wiki. - DeepL
This is a relatively new player on the natural language translation field. Very good alternative to Google Translate. - Mycroft
Mycroft is the world’s first open source voice assistant. You can run it on many platform, use or create your own extensions aka “skills” and more if you want to. - CSS Grid Inspector
The Grid Inspector allows you to examine CSS Grid Layouts using the Firefox DevTools, discovering grids present on a page, examining and modifying them, debugging layout issues, and more.
Books we can get for free
- Learn Azure in a Month of Lunches
Abstract: “Learn Azure in a Month of Lunches breaks down the most important Azure concepts into bite-sized lessons with exercises and labs—along with project files available in GitHub—to reinforce your skills.” - Don Jones’ PowerShell 4N00bs
Abstract: “What the heck is PowerShell, and why should you care? This new book from PowerShell MVP Don Jones will teach you everything you need to know about PowerShell Core! This Agile-published book is still in progress, with new chapters released every few weeks.” - Become Hardcore Extreme Black Belt PowerShell Ninja Rockstar
Abstract: “Are you a Master PowerShell Guru? Do you have Powerful PowerShell Fu? Wanna? This is the book that can tell you, and help you along.” - PowerShell by Mistake
Abstract: “Learn PowerShell by reviewing “broken” code and discovering the answers. A great complement to any structured learning effort!”