Creating VS Code extensions


The article covers essential steps on how to create a typical extension for the Visual Studio Code and publish it in the marketplace. It also explains how to automate the publishing of releases on GitHub instead of manual calls of the CLI. Useful links for a quick start are provided.

Team-shared Nuget package with StyleCop and other Roslyn analyzers

In the previous article StyleCop with team-shared rules and auto-update I've covered how to package StyleCop analyzers as a Nuget package, and distribute it to the team with automatic updates. While that approach is still valid, the part related to the Nuget project itself is overcomplicated and cumbersome. This time I'd like to show a simpler and easier way how to package any Roslyn analyzers including StyleCop and all related settings.

A System.Text.Json converter to serialize/deserialize a JSON node as a string

How to deserialize a part of JSON as a string keeping everything inside as is including the formatting? Or how to merge JSONs together into one having them provided as strings? The article shows an implement of a custom converter for the System.Text.Json that does described things, and provides additional cases when such converter might be useful.

The new blog


My previous blog was created using WordPress. Overall, it was a good experience, but in course of time I understood that it is simply too much for my personal blog because of several reasons.

How to make Windows Terminal nice and convenient


Scott Hanselman explained how to make a pretty prompt in the Windows Terminal.

I'd like to list additional hints where and what to tweak in the Windows Terminal in order to make it even more convenient and nicer as the daily tool.

StyleCop with team-shared rules and auto-update

The post covers how to implement StyleCop analyzers with automatically updating team-shared rules and settings. The described approach works both in Visual Studio and Rider and on any CI.

Convert MongoDB’s UUID to .NET GUID

One of the form how MongoDB represents UUID is BinData of type 3 or 4. The post covers how to convert the Legacy UUID (LUUID) to the .NET GUID representation.

Parsing non-existing enum values

A quick question to check the knowledge how enum values work under the hood.

The issue with the order of newly added entities in Entity Framework Core


Recently I've developed a simple processing application that generates some data in the database. For business logic it was important to understand what entity was created the last on some steps. Since there was no concern about scaling or running several instances simultaneously, it was decided to use the primary key itself, the auto-incremental integer value. I didn't want to rely somehow on date-time or invent something sophisticated.

The new using declaration in C# 8


C# 8 contains a new "enhancement" to the syntax: a declaration of using scope as a variable. While it might be considered as a good simplification to one of the most used constructions, not everything is so univocal.

Ansible Control Machine on Windows


The post describes how to easily run Ansible on Windows without docker, VirtualBox or Hyper-V. The approach utilizes Linux through Windows Subsystem for Linux (WSL) available in Windows 10.

A custom Json.NET converter

Sometimes, the incoming data in JSON has some custom form that is not supported by the built-in Json.NET converters. In this article, as an educational example, we will implement a custom converter from the UNIX time format in milliseconds to the native .NET class DateTime.

Dumping any requests in ASP.NET Core 2.0

Once, I was needed to have a simple endpoint in which I can send any request for test purposes. Just a simple web service that eats a request, no matter what HTTP method and route are used.

Fortunately, Microsoft did a great job making ASP.NET Core as flexible as possible, so the solution turned up quite short and simple.

Software versioning in Windows and .NET

My new article about product versions was published. Feel free to read. It explains different kinds of versions, and approaches how to use and implement them. Additionally, my own experience of implementing versioning in my current project.

Pattern matching in C# 7.0 and how it works


Posted the article in the Binary-Studio’s Blog about the new C# 7.0 syntax feature – pattern matching.

Essential addons for Visual Studio 2017


Here is my updated list of the essential Visual Studio 2017 add-ons for comfortable and productive work. You can check also the previous list for Visual Studio 2015.

A shared logger

A simple implementation of the shared Logger based on NLog that can be easily included into any solution with a minimum configuration.

ConfigEx 2.1.0


I'd like to introduce a library for accessing app settings in the App.config and Web.config. Unlike standard ConfigurationManager, ConfigEx additionally allows reading configs of other assemblies used in the project. Moreover, it is strongly typed, has a mechanism of settings overriding, and allows applying automatic conversion of values.

Reading large XML files

Have you ever had a task to read and deserialize a large XML file? Like 500 MB or 2 GB, that is impossible just to read to the end into memory and parse it.

Assembly location in ASP.NET

An interesting note that I've found while updating the ConfigEx library: the assembly DLL file in the ASP.NET application might be located in a place different from what we expect. During runtime, it is actually not in the place where the application is hosted.