Category: Programming

.NET, architecture, C#, CSharp, Programming

Wysyłanie maili z wykorzystaniem Handlebars

Niedawno musiałem zmierzyć się z budowaniem maili. Starym sposobem projektu było robienie tego w każdym miejscu, które wysyłało maila, tzn każdy projekt był właścicielem szablonu, a sam szablon był zdeployowany z kodem i wypełniany przez kod źródłowy string.Replace albo string.Format. Brzmi trochę creepy, prawda? To co z tym zrobić, żeby było uniwersalnie i bez jawnych …

.NET, AWS, C#, CSharp, Programming

AWS DynamoDB – 3 ways to query and read results in .NET

In my very first post, I showed how to use DynamoDB in .NET to receive single result (post). Looking into the evolution of API and layers of abstraction, we have much more options to query AWS DynamoDB. Therefore we have 3 ways to query and read results which I will demonstrate in this post. The …

Programming, REST, Software engineering

SOAP, REST, gRPC and GraphQL – various ways of API design

API stands for Application Programming Interface which defines the way how it is possible to communicate with the system. In this article, I put focus on web technologies and their implementation in .NET. Across many years, new design of APIs appeared in reply to new challenges, especially performance and implementation’s efficiency. Very first modern approach …

Programming, Quality, Tests, Unit tests

Unit tests: code coverage – line coverage vs branch coverage

Quite often we can meet with a statement that code coverage should be x% where usually x = 80. But what is exact meaning? Is it line coverage or branch coverage or something else? Typicaly developers are using line coverage as most of software supports it however much more meaningful is branch coverage. Let’s take …

.NET, .NET Core, ASP.NET, C#, CSharp, MVC, Programming, REST, WebAPI

HTTP Verbs in API design

HTTP Verbs are basic methods in web world. They are evolving between HTTP protocol versions but also new RFCs are published. Also they were extensions like WebDAV (with 7 methods). A full registry is maintained by IANA (here) however most of people will reply with 9 basic verbs (interesting discussion about this on stackoverflow). Why …

.NET, C#, CSharp

gRPC in .NET Core

As WCF is going to end of life with .NET 5.0 (more here), gRPC is going to replace it (as recommended alternative). So what’s that? It is bi-directional, HTTP/2 based protocol. It can be used to communicate server-server o client-server including scenarios like load-balancing, health checks, microservices communication. gRPC stands for Google RPC (Remote Procedure …

.NET, .NET Core, C#, Programming, Software engineering, Tools

Rider – my first good impression

A couple days ago I installed Rider IDE from JetBrains (on Windows machine). Installation process is easy and quick. First impression after start – what’s that?!? Completly different UI that I get used to from Visual Studio. When I started creating new project, I had a problem with choosing right option as UI is not …

.NET, C#, CSharp, Mobile, Programming, Xamarin

.NET MAUI – Xamarin.Forms successor

Today Microsoft announced .NET MAUI – a successor of Xamarin.Forms. Besides well known MVVM, .NET MAUI will use MVU (Model-Vue-Update) pattern. At first glance, the code will be much more readable (shorter) and closer to functional programming. Next milestone is single project for all types platforms. Right now, you need to have separate for iOS, …

DevOps, Programming, Quality, security, Software engineering

Few basic things to plan in your IT project

I just completed reading 2 great books: The DevOps Handbook: How to create world-class agility, reliability, & security in technology organizations and The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win. These awsome books caused that I started thinking about my past projects in terms of what we did wrong and …