What is Facade Pattern?
Exposing the simplistic interface of anything complex is a Facade. For example, when you place an order for Pizza delivery, the application hides the complex process behind Pizza Delivery to your door.
Exposing the simplistic interface of anything complex is a Facade. For example, when you place an order for Pizza delivery, the application hides the complex process behind Pizza Delivery to your door.
The Adapter Pattern connects two incompatible objects by exposing an interface compatible with the Client. The object refers to a class, web service, REST API, process, or physical device depending upon your context.
Consider a C# Web Application displaying Weather Updates on its landing by utilizing the third-party REST API.
In this application, there are three participating objects in the Adapter Pattern:
It enables you to improve application performance by reading the data from the cache-store (Redis, Memory Cache) instead of the persistent store (database) or an integration service.
Template Method Pattern executes multiple same steps in the same order and allows consumers to change the behavior of the steps.
“Implement the invariant parts of an algorithm once and leave it up to subclasses to implement the behavior that can vary.” Elements of Reusable Object-Oriented Software.
Image by @isaacmsmith
Chaos Engineering is about testing & increasing your system resilience.
We test our system by intentionally causing failure in parts, such as saturating the host's CPU. During the failure, we measure the time to recovery and other metrics you would want to collect.
Image by @isaacmsmith
List of Useful Tools and Resources for .NET Performance, which I found useful.
The Performance Resources Curated List by Adam Sitnik will provide you most tools you will ever need.
Image by @helloitsammiel
A Tuple is a container to hold multiple values which provide readable syntax when used appropriately. Tuples are available from C# 7 and later versions. There are two types of Tuples:
Naturally, you might ask, what is the difference between Value Type and Reference Type?
The .NET runtime manages the memory for your application. It uses two distinct places to store data in memory, known as Stack and Heap. Any Value or Reference Type can end up either on Heap or Stack purely depending upon its usage.
Mental Model : Draw two different shapes in your head. One is fast & small, and the other is big & efficiently managed. Value Types are for small & superfast (Stack), and Reference Types for big & efficient (Heap).
I will not use Stack or Heap in rest of the post. Instead, I want you build a mental model based on two distinct memory regions.
Image by @abrizgalov
Consider developing an application that requires you to store and retrieve data and display it on UI. You will likely need two things:
Data Access in this context means making these two things (.NET & RDBMS) talk with each other. Users will interact with UI which is built using the .NET platform, which is going to learn how to talk with the database in its language (SQL).
.NET offers two different approaches to achieve data access?