Monday, November 21, 2022

My experience with OData

OData is very interesting technology. Using several lines of code you can support filtering, paging, partial selection, ... for your data. Today GraphQL is replacing it, but OData is still very attractive.

Nevertheless, there are several pitfalls I had to deal with. Here I want to share my experience with OData.

Thursday, October 27, 2022

Web request sequence visualization

Modern requests to web services are very complex. The service you are calling can call other services, they are other services, etc. All these requests can be executed in parallel. Of course, the logging system stores information from all participants in the request. But the clocks on different services can be slightly out of sync, so it is not easy to recreate the correct picture. And if we add message queues here (Azure EventHub, RabbitMQ, ...), the task becomes even more difficult.

Here I'll try to create a system that will allow us to quickly plot the sequence diagram of events during my request.

Ok, let's start.

Friday, September 23, 2022

Drag and Drop in WPF TreeView

Today I want to describe the implementation of drag and drop functionality inside WPF TreeView control. It sounds like a simple task, but took surprisingly a lot of time from me. So let's start.

Tuesday, July 12, 2022

My work with LiteDB

Recently I was looking for a storage system for my program. This is a desktop application that creates many objects and searches for text in them. So I thought: "Why don't I try something new." Instead of an SQL database, I could use some kind of document database. But I didn't want to have a separate server, I wanted this database to work with a simple file. Search of the Internet for this kind of databases for .NET applications quickly led me to LiteDB. And here I want to share my experience with this database.

Friday, June 3, 2022

Single database for multiple microservices with FluentMigrator

If you have multiple microservices, it is common to use a separate database for each of them. But recently we faced the following problem. Our price plan on database hosting provider includes only limited number of databases. We can't create new database for each microservice as it is too expensive. How can we solve this problem?

Thursday, June 2, 2022

Calling Thread.Abort and Thread.ResetAbort several times

In this short article I want to analyze a situation when we want to call Thread.Abort several times for a thread which uses Thread.ResetAbort to control cancellation process.

Monday, March 28, 2022

About trust in software systems

I recently heard about the following situation. The Ukrainian side has created some kind of video message. They claimed that the message was created on a certain date. But the Russian side stated that it was recorded in advance. So I started thinking if it was possible for ordinary people to check when the video was created.

Monday, February 28, 2022

How to use Telepresence in Windows

Recently I came across Telepresence. It allow you to quickly replace a deployment in your Kubernetes cluster with some application running on your machine. It means that all requests inside the cluster to the pods of this deployment will actually go to your developer machine. It allows you, for example, to debug your application in real environment. For other use cases please consult with the documentation.

Here I want to show how you can install and use it on your Windows machine.