Abstract:
In this article, I try to show how async/await can be used to solve problems in situations where developers may not think about async/await as an immediate solution.
|
Abstract:
In this part of the article series, I will continue exploring the F# language, a .NET based functional-first programming language, by using the example of the Tic Tac Toe game.
|
Abstract:
F# is a.NET based functional-first programming language. In the second part of the tutorial series, I will continue exploring the F# language, by using an example of the Tic Tac Toe game.
|
Abstract:
F# is a .NET based functional-first programming language. In this article series, we will explore the F# language by using the example of the Tic Tac Toe game.
|
Abstract:
In this tutorial, I will continue talking about the most important coding practices based on my experience. In this part, I will talk about data modeling, and making state or impurities in general visible.
|
Abstract:
In Part 2 of Best Coding Practices, I talk about keeping a clear separation between units of code that model data, and units of code that model behavior. I also talk about making data objects immutable.
|
Abstract:
In this Patterns and Practices tutorial, I will talk about the most important coding practices based on my experience. The first part focuses on Automated Testing.
|
Abstract:
The Maybe Monad is a container that represents a value that may or may not exist. In this tutorial, I will go through some methods that make working with the Maybe monad easier.
|
Abstract:
In this tutorial, I will discuss function parameters in C#. I will talk about how function parameters tend to become unclear as we maintain our programs and how to fix them.
|
Abstract:
In this tutorial, I will talk about the Maybe Monad; a container that represents a value that might or might not exist.
|
Abstract:
In this tutorial, I will talk about ways to handle state in multi-threaded C# applications, including race conditions.
|
Abstract:
In this tutorial, I will discuss about global state in C# applications. I will talk about the problems of global state and discuss a solution.
|
Abstract:
In this tutorial, I am going to go through some examples of data object design in C# and discuss some issues with them.
|
Abstract:
In this tutorial, I will provide a proof of concept in C# for composing honest methods. We will see how to create honest programs out of many honest methods.
|
Abstract:
In this article, I will work on a C# game that contains impure code and work towards making the code pure. I am going to show you how to use PurityAnalyzer—an experimental Visual Studio extension I wrote—to help you write pure code in C#.
|
Abstract:
This C# tutorial describes approaches for making methods/functions more honest. A more honest method makes it easier for readers to understand what the method does by reading its signature, i.e., without reading its implementation.
|
Abstract:
This tutorial looks at a new approach to AOP called AOP via functions (in C#) as an attempt to mitigate the issues of the CQS approach.
|
Abstract:
Learn how to design multi-threading safe data objects in C# and how to “modify” immutable objects using the DataObjectHelper Visual Studio extension. Also use F# to concisely create our data objects, and use them in C# projects.
|
Abstract:
This article discusses the dataflow pattern, a variant of the producer-consumer pattern, along with examples of applying this pattern in .NET. Finally, you will also be introduced to ProceduralDataflow, a new library I created to help write clean dataflows.
|
Abstract:
This article discusses the producer-consumer pattern in .NET, some reasons why we should use it and demonstrates some examples of how to implement it in .NET.
|
Abstract:
This article discusses problems and solutions related to resource management in complex C# applications. It also discusses automatic resource management that exists in the .NET framework.
|
Abstract:
This article describes how we can use Generics in C# to make our software more resilient to data-related changes, thereby improving its maintainability.
|
Abstract:
This article discusses the treatment of data in large C# software applications. More specifically, it discusses runtime data encapsulation, behavior-only encapsulation, and treatment of state.
|
Abstract:
This article describes how to do unit and integration testing using the Composition Root as the source of Systems Under Test (SUTs).
|
Abstract:
C# examples on how we can use the Text Template Transformation Toolkit (T4) to create aspects.
|
Abstract:
Aspect Oriented Programming (AOP) in C# using SOLID principles. We will discuss challenges posed by context-independence in SOLID code bases, and provide a solution for them.
|
Abstract:
This article demonstrates how Object Composition with SOLID helps an application evolve.
|
Abstract:
Using Pure DI and the single level of abstraction per function rule to create Composition Roots that we can understand and navigate easily
|
Abstract:
This article presents a perspective of Liskov Substitution Principle (LSP) and presents an argument against some interpretation and practices of LSP that some people have/follow.
|