After a long while, I had to create a singleton service while I’m developing a feature for the ABP Framework. Then I decided to write an article about that: Why and how should we use the singleton pattern over a static class?

OK, I agree that creating singleton class or static class, doesn’t matter, is not a good practice. However, in practical, it can be unavoidable in some points. So, which one we should prefer? While the article title already answers this question, I will explain details of this decision in this article.

While this article uses C# as the…


Creating a modular application is hard. Building a modular User Interface is even harder. You need to separately develop module pages, components but make them integrated and working together as like a monolithic application UI.

Creating such a modular architecture requires to build a strong infrastructure. This is what we are trying to do with the open source ABP framework project.

In this article, I will focus on the Virtual File System, an important part of the modular infrastructure and will explain why we need it and how it can be developed on top of ASP.NET Core MVC.

Video presentation…

In this article, I will share my experiences and suggestions on using Dependency Injection in ASP.NET Core applications. The motivation behind these principles are;

  • Effectively designing services and their dependencies.
  • Preventing multi-threading issues.
  • Preventing memory-leaks.
  • Preventing potential bugs.

This article assumes that you are already familiar with Dependency Injection and ASP.NET Core in a basic level. If not, please read the ASP.NET Core Dependency Injection documentation first.


Constructor Injection

Constructor injection is used to declare and obtain dependencies of a service on the service construction. Example:

public class ProductService
private readonly IProductRepository _productRepository;
public ProductService(IProductRepository productRepository)
_productRepository = productRepository;

ASP.NET Boilerplate v3.4 has just been released (see change logs). In this article, I will highlight some new features and changes.

We were in NDC London 2018 Conference as a partner.

Entity History

This was one of the most wanted features for a long time and it’s finally available.

Once you configure it for your entities, it can automatically write audit logs for every property change of an entity. There are three concepts for a database change:

  • Entity Change Set: A set of changes in a single database save operation. It may contain one or more entity changes.
  • Entity Change: A change (create, update or delete) for an entity. …

It was an exciting experience for us to be a partner in NDC London 2018 Conference. We had an amazing week in London. About 700 software related attendees from all around the world met together.

NDC London is a set of talks for software developers and architects. It’s not only a conference but aims to connect people working on the same subjects.

We are proud to release ASP.NET Zero v5.0 with significant improvements and exciting new features.

For those who don’t know what is ASP.NET Zero:

ASP.NET Zero is a well-architected Visual Studio solution that comes with full source code. You can take it as the base solution for your next web & mobile application to develop your business code on top of it.

Mobile (Xamarin) Application

Most important feature was that we have included a new mobile application developed using Xamarin platform. It supports Android and IOS.

It currently has very basic functionality:

  • Login, change profile picture (using camera or photo gallery)
  • User management…

Halil İbrahim Kalkan

Software Architect & Developer. Author of and

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store