Structural Design Pattern: Adapter

Reading Time: 4 minutes The software engineering landscape is dotted with a plethora of design patterns, each tailored to address specific recurring challenges. Among these is the Adapter pattern, a versatile solution that seamlessly connects otherwise incompatible interfaces. It’s a testament to the ingenuity of software design, allowing diverse classes to collaborate and enhancing both reusability and adaptability in …

Structural Design Pattern: Proxy

Reading Time: 5 minutes In software design, efficiency and control are often paramount concerns. The Proxy Pattern emerges as a versatile solution, offering a means to manage object access and resource allocation effectively. Imagine a scenario where a resource-intensive object requires frequent access. Here, the Proxy Pattern acts as a surrogate, intercepting requests and controlling access to optimize resource …

Structural Design Pattern: Flyweight

Reading Time: 5 minutes In modern software development, optimizing resource consumption is paramount for building efficient and scalable applications. One of the key challenges developers face is managing memory usage, especially when dealing with large datasets or graphical elements in user interfaces. In this article, we’ll delve into the Flyweight design pattern, a powerful technique for minimizing memory overhead …

Structural Design Pattern: Facade

Reading Time: 4 minutes In the landscape of software engineering, taming complexity is an ongoing struggle. As systems evolve, they inevitably become larger and more convoluted, making them increasingly challenging to manage. In such scenarios, design patterns emerge as invaluable tools, providing solutions to common design dilemmas. Among these patterns, the Facade Design Pattern shines as a graceful mechanism …

Structural Design Pattern: Decorator

Reading Time: 4 minutes In the field of software engineering, having codebases that are flexible and easily expandable is crucial. As software becomes more complex, the difficulty of incorporating new features and functionalities increases, all without making the code overly complex or disrupting its existing architecture. This article delves into the Decorator Design Pattern, a robust technique for improving …

Structural Design Pattern: Composite

Reading Time: 4 minutes In software design, developers frequently encounter challenges when working with hierarchical structures or collections of objects that adhere to a common interface. Handling such structures efficiently and uniformly can be daunting. This is where the Composite pattern steps in, providing a solution that simplifies the management of complex object structures. The Need for the Composite …

XUnit testing

Strongly typed xUnit theory test data with TheoryData

Reading Time: 5 minutes TheoryData class In xUnit, test methods can be decorated with attributes like [Fact] or [Theory]. When a test method is decorated with the [Theory] attribute, it means that the method is not testing a single case but instead testing a general rule that should hold true for multiple sets of data. TheoryData is a class …

Control the RuleSet executions with FluentValidation in .NET6

Reading Time: 9 minutes FluentValidation is an open-source library for .NET that provides a fluent API for building validation rules for objects. It allows developers to express the rules for validating an object in a clear and readable way, making it easy to understand and maintain. In this article, we will explore FluentValidation and how it can be used …

How-to create Web API Project with ASP.NET Core and SQLite

Reading Time: 8 minutes Nowadays it is easy to build HTTP services using ASP.NET Core Web API framework. It is popular as it reaches browsers and mobile devices and is light-weight. To store data we will use SQLite and Entity Framework Core. Entity Framework is an open-source ORM framework for .NET applications supported by Microsoft. It enables developers to work with …