A minimal ASP.NET Core application

02 December, 2020

With the most recent C# 9 feature top-level statement, a simple ASP.NET Core server can be written in just one file: Of course, a file is…

Entity Component System in TypeScript

26 May, 2020

Games can be architected in different ways, but Entity Component System, also known as ECS, is one of the more popular ones. I won’t spend…

DOM is slow...

01 May, 2020

In a simple loop On my machine the average FPS for 20000 entities is around 50. If I extract and into a global variable the FPS rises to…

Typescript, Map with generic keys (part 1)

01 May, 2020

ES6 comes with built-in structure that holds key-value pairs. While great in most cases, the default implementation doesn’t work with…

Things I've learned about Tailwind

22 April, 2020

Tailwind is awesome! Tons of utility classes means that one of the two hardest problems in computer science is solved: naming. Small…

Pros and cons of using Result<T> (ASP.NET Core)

01 October, 2019

Communicating errors from the domain layer to the application layer can be done using error codes or by throwing exceptions. In typical SaaS…

VS Code on macOS and .NET Core 3.0 fix

02 September, 2019

Visual Studio Code on macOS has small issues with .NET Core 3 projects. To be more precise, Omnisharp extension has certain issues. If you…

Fun with Typescript and Higher Order Functions

06 June, 2019

Functional programming is fun and building higher order functions in regular JavaScript is straightforward. Let’s build one such function…

Don't use Last or LastOrDefault with EF Core

06 June, 2019

Entity Framework naturally uses LINQ extensions, but not all of them are translated to SQL. Some of them are executed on the client and…

Building simple Razor Page live reload functionality

12 February, 2019

Writing Razor Pages in ASP.NET Core is easy, fast and fun. To really add to the productivity we want to have hot reload - a staple of Single…

Forms in React, part 1

25 June, 2018

Building forms in React is usually considered verbose, annoying or even hard. In this series we will examine how forms are built, what are…

import 'api' not import '../../../../../../api' with create-react-app and TypeScript

08 February, 2018

Absolute imports are better than relative ones, just ask your mailman. Aptly named article Say Goodbye to ‘../../../..’ in your TypeScript…

Using render prop to render lists in React

07 December, 2017

Render props are awesome! Let’s write a flexible list renderer with them in mind. Given an example list we will render it with the…

Porting LINQ methods to Typescript

23 September, 2017

Of course Lodash is great, but coming from C# I miss LINQ naming. For example, let’s see how we can write method. First step is to extend…

Deconstructing arrays in C#7

17 September, 2017

C#7 introduces new feature - object deconstruction. Tuples have built-in support for deconstruction, but for user defined types a…

React and List renderer

17 September, 2017

Rendering a list of items in React is kinda boring. It is typically done in the following fashion: Since every component can be written as a…

C#7 and tuples

08 September, 2017

C# 7 is fun! Tuples are awesome and allow one to quickly swap variables: Not only that, let’s say you have the following class: The…

Implicit operators in C# are fun!

18 January, 2017

Data conversion is boring, that is why people use AutoMapper. However, there is one other way for converting from one type to another…

NuGet packing libraries and shipping them locally

11 January, 2017

Using NuGet packages is a lot of fun and we should definitively Nugetize all the things! But managing NuGet packages and publishing them is…

Powershell, database connection string and $

30 September, 2016

Using connection strings in Powershell can yield some strange errors if the connection string contains the very special sign . Why? Because…

Expression body methods are evil

18 September, 2016

Creating a new controller with default action in ASP.NET can be easy. Let’s take a look at some hastily written code: Opening yields blank…

React-like approach for building Xamarin.Forms applications

07 July, 2016

As a library for building HTML/JS apps, React has some unique features: JSX for mixing JS and HTML, declarative and component oriented…

Meet Clay - React inspired view library for Xamarin.Forms

01 July, 2016

React surprised the world with its elegant approach towards building UIs and, in effect, apps. Instead of separating views from view models…

Xamarin Studio 6 and iOS Certificate error

14 June, 2016

Xamarin Studio 6 is here and it broke some people’s code including ours. The error happens when using to connect to a web service using TLS…

Implementing Redux in C# (Part 1)

24 May, 2016

This is the first part in the series about porting Redux to C# and using it to build MVVM based apps. In the last post we introduced the…

MVVM, data stores and Redux

23 May, 2016

MVVM (Model-View-ViewModel) is the default pattern for most XAML based apps. It forces separating all code used for one screen into separate…

Xamarin.Forms App.xaml and default PCL template

11 March, 2016

When creating a new Xamarin.Forms blank app. the default template creates a code based class in the PCL project. Since this is just a C…