The new blog

static-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

head-image

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.

1 year of living in München

head-image

Exactly 1 year ago we arrived in Munich. New country, new city, new job, new life.

This post is about living here: a personal opinion what was wondering and unusual comparing to the Ukraine, what is really good and what annoys every day.

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

head-image

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

csharp

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

head-image

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

csharp

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

visual-studio

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

library

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.

WPF Async Pack 1.0

WPF Async Pack is a small library for creating asynchronous WPF applications. It's not a framework, it was created mainly for the small applications where installing heavy frameworks is just overkill. It doesn't have any dependencies and contains such the most used classes as AsyncCommand and BaseViewModel.