In this post, we will look into how to Debug Source Generator using Visual Studio 2019. The prerequisite is to ensure you have Visual Studio 2019 16.10 or above. Prerequisite Ensure you have Visual Studio 2019 16.10 or above.Ensure .Net Compiler Platform SDK is installed. To install .Net Compiler Platform SDK, launch the Visual Studio … Continue reading Debugging C# Source Generator
Category: C#
Source Generator : AutoToString
In this post, we will look into an application of Source Generator. Quite often, during debugging, you would wish if you had overridden the ToString() method of the class, so that you could understand the state of the instance. These are especially useful when you are dealing with a collection of the type. The ToString() would provide you a … Continue reading Source Generator : AutoToString
.Net 6: Linq enhancements
Linq has got some noticeably enhancements in the .Net 6. In this post, we will briefly visit some of them. Specify Default Value for FirstOrDefault, LastOrDefault, SingleOrDefault One of the features I am so relieved to see if the support for specifying default value for FirstOrDefault(), LastOrDefault(), and SingleOrDefault(). I never quite understood why it wasn't included in … Continue reading .Net 6: Linq enhancements
.Net 6 : Benchmark performance of JsonSerializer.DeserializeAsyncEnumerable
This should have been part of my earlier post on System.Text.Json Support for IAsyncEnumerable, but it slipped off my mind. So here we are. To understand the significance of this feature in .Net 6, one need to understand the circumstances under which these might be useful. The first of those would be of course, that the … Continue reading .Net 6 : Benchmark performance of JsonSerializer.DeserializeAsyncEnumerable
.Net 6 : System.Text.Json support for IAsyncEnumerable
As the Preview 4 of .Net 6 becomes available, one of the things that excites me is the System.Text.Json support for IAsyncEnumerable. The IAsyncEnumerable, introduced in .Net Core 3 and C# 8, enables us to iterate over async Enumerables. The newer version extends this support to the System.Text.Json. Consider the following data. [{"Id":0,"Value":"915777539"},{"Id":1,"Value":"1332243482"},{"Id":2,"Value":"306207588"}, {"Id":3,"Value":"1413388423"},{"Id":4,"Value":"2145941621"},{"Id":5,"Value":"1041779876"}, {"Id":6,"Value":"1121436961"},{"Id":7,"Value":"520045044"},{"Id":8,"Value":"1357859915"}, {"Id":9,"Value":"1340510964"},{"Id":10,"Value":"1183306988"},{"Id":11,"Value":"502467538"}, {"Id":12,"Value":"31513434"},{"Id":13,"Value":"999086707"},{"Id":14,"Value":"961728759"}, {"Id":15,"Value":"1756662810"},{"Id":16,"Value":"1018107007"},{"Id":17,"Value":"433502262"}, {"Id":18,"Value":"1784715926"},{"Id":19,"Value":"1418088822"},{"Id":20,"Value":"645106286"}, {"Id":21,"Value":"1720929044"},{"Id":22,"Value":"1102142546"},{"Id":23,"Value":"2138442183"}, {"Id":24,"Value":"208176799"},{"Id":25,"Value":"1700100438"},{"Id":26,"Value":"769308703"}, … Continue reading .Net 6 : System.Text.Json support for IAsyncEnumerable
Behind the scene : Async Code
In a previous series of asynchronous programming, we explored the behind the scenes of Async code. Here is a summary of the same for quick reference.
How CLR Handles Static, Non-Virtual Instance, and Virtual Instance method calls
How does method execution differs when CLR handles static, instance and virtual instance methods ? To answer them, one needs to begin by understanding a bit more on how CLR handles Managed Heap during execution of a method. Memory Allocation in Managed Heap When the application execution begins, as the CLR gets loaded, the thread … Continue reading How CLR Handles Static, Non-Virtual Instance, and Virtual Instance method calls
Roslyn Analyzer : Analyzing Comments
One of the things one might encounter quite early while writing a Roslyn Code analyzer for comments is it is slightly different from detection of Syntax Nodes. In fact, it is not a node at all. Syntax nodes represent syntactic constructs, for example declaration, statements, clauses and expressions. A Comment do not quite fall in the same category. … Continue reading Roslyn Analyzer : Analyzing Comments
Why Initialize Collection Size
In possibly every code base you might have seen, usage of Collections would have been a common sight. The introduction of Generic Collections in early stages of evolutin of language has made is all the more favourite of developers comparing to the non-generic cousins that existed before. One of the most common patterns seen in … Continue reading Why Initialize Collection Size
MahApps HamburgerMenu and Caliburn Micro
MahApps is probably one of the most used UI library among WPF developers, with a galaxy of great controls. Despite that, recently I was surprised to see lack of proper example for Hamburger Menu control, particulary MVVM based. I was also more keen to know how to make best use of capabilities of Caliburn Micro along the … Continue reading MahApps HamburgerMenu and Caliburn Micro