Software Design Patterns and Practices Tutorials

Software Design Patterns tutorials with recommendations and best practices to design and develop highly performing applications that is easy to change.

2
categories
46
tutorials
1.6 Million
readers

Writing Pure Code in C#

Authored by: Yacoub Massad , on 10/14/2018 in Category Patterns & Practices
6594 views
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#.
10180 views
Abstract: This tutorial demonstrates how to design software using the Command Query Separation (CQS) pattern. We will create a console application and will use C#, Entity Framework, Autofac and Log4Net for our example.

Writing Honest Methods in C#

Authored by: Yacoub Massad , on 7/22/2018 in Category Patterns & Practices
33331 views
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.
15090 views
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.
11264 views
Abstract: This article highlights that software development is a highly complex process with lots of smaller steps that a Software Craftsman should follow in order to build something of quality.
19472 views
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.

The Dataflow Pattern in .NET

Authored by: Yacoub Massad , on 1/18/2018 in Category Patterns & Practices
30209 views
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.
35380 views
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.
22295 views
Abstract: Flux is a new application architecture introduced by Facebook in May 2014. This article compares the MVC architecture with Flux from various perspectives.
17748 views
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.
40014 views
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.
13172 views
Abstract: Is User Experience (UX) important or is it just a buzzword? This article analyzes the usefulness of UX in an application development process.
28199 views
Abstract: The article explains how Behavior Driven Development (BDD) works and provides a real-world example of how to use it to provide meaningful tests which can act as living documentation.
23460 views
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.

Revisiting SOLID principles

Authored by: Craig Berntson , on 5/15/2017 in Category Software Gardening
57382 views
Abstract: This tutorial summarizes SOLID principles and answers some questions our viewers have asked about SOLID.
58772 views
Abstract: Effective error and exception handling in any kind of an application plays an important role in providing a pleasant experience to the user, when unexpected failures occur. This article talks about some effective error handling strategies that you can use in your projects.
17952 views
Abstract: This article describes how to do unit and integration testing using the Composition Root as the source of Systems Under Test (SUTs).
32275 views
Abstract: We will discuss Code Quality in the .Net ecosystem, with a brief look at tools included in Visual Studio and other third-party commercial tools.

Reduce Bad Code with Code Reviews

Authored by: Craig Berntson , on 3/16/2017 in Category Software Gardening
21549 views
Abstract: Do you think code reviews aren’t important? Think again. Code reviews are often recognized as the best way to improve code quality. This article will discuss the importance of code reviews, different types of code reviews, and how to conduct a code review.
40322 views
Abstract: Singleton is one of the basic software design patterns, but if not implemented correctly can introduce complications in your application. This article discusses common use cases where you should avoid the Singleton pattern.
27885 views
Abstract: Coding guidelines are just one of the many tools developers should have available in their toolshed. By using them, you will help ensure that your code is lush, green, and vibrant.
17929 views
Abstract: C# examples on how we can use the Text Template Transformation Toolkit (T4) to create aspects.
119044 views
Abstract: This article focuses on .NET Design Patterns using C# and takes a fresh view of some of the existing ones and see how we can go about using them in real world dilemmas and concerns.
88524 views
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.
17366 views
Abstract: Agility and contractual development against a fixed price are conceptually two ends of a spectrum. In this article, we will see an option for companies to be agile even when they are executing a contractual fixed bid project

Object Composition with SOLID

Authored by: Yacoub Massad , on 7/18/2016 in Category Patterns & Practices
46075 views
Abstract: This article demonstrates how Object Composition with SOLID helps an application evolve.
40350 views
Abstract: Using Pure DI and the single level of abstraction per function rule to create Composition Roots that we can understand and navigate easily
29836 views
Abstract: Using Dependency Injection and SOLID principles to ensure testable and maintainable software.
21311 views
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.
19632 views
Abstract: The Interface Segregation Principle (ISP) states that interfaces should be small and should contain only those methods or properties that are effectively required. We will explore ISP in this article.
26698 views
Abstract: Liskov Substitution Principle (LSP) is a SOLID principle that says that given a specific base class, any class that inherits from it, can be a substitute for the base class. We will explore LSP in this article.
32895 views
Abstract: The Open-Closed Principle (OCP) in SOLID states that a Software Entity should be open for extension but closed to modification. Learn about this principle in this article.
39752 views
Abstract: The Single Responsibility Principle (SRP) states that a class should do one thing and one thing only. Learn about this principle in this article.

Object Oriented Programming (C#)

Authored by: Craig Berntson , on 5/2/2015 in Category Software Gardening
33324 views
Abstract: This article talks about Object Oriented Programming (OOP), starting with the basics and with examples in C#.
61198 views
Abstract: Code refactoring isn’t code rewriting. Refactoring is the process of restructuring existing computer code without changing its external behaviour. This Software Gardening article talks about what is refactoring, why to refactor your code and the built-in refactorings in Visual Studio.
28245 views
Abstract: What is Agile Software Development? How well is Agile working for you? Where do you need to make changes? This Software Gardening article analyses Agile to see what it really means.

12 Unit Testing Myths and Practices

Authored by: Eli Lopian , on 1/27/2015 in Category Patterns & Practices
32104 views
Abstract: This article presents the most widely misunderstood concepts about unit testing today and provides relevant information about how the practice actually occurs.
25352 views
Abstract: This article talks about applying Continuous Delivery techniques to deliver working software.
69963 views
Abstract: Get started with unit testing using a simple ASP.NET MVC application. You’ll see how to setup the test and remove the database from the testing process.
40893 views
Abstract: Essential IT Admin skills that every .NET developer should have before going Live.

Software Branching Practices

Authored by: Craig Berntson , on 7/9/2014 in Category Software Gardening
28686 views
Abstract: This tutorial explains some best practices to help you improve your Software branching and merging techniques and in turn improve your code.
21358 views
Abstract: This article talks about continuous learning and why software developers must take responsibility for their skills and career. The author also shares some valuable resources to get you started.

Software Craftsmanship

Authored by: Craig Berntson , on 3/19/2014 in Category Software Gardening
29539 views
Abstract: This article talks about who is a Software craftsman, Software Craftsmanship, and what it is all about.
27597 views
Abstract: We begin our discussion of Good Project Management Techniques (Software Gardening) by discussing good soil, which in our case isn’t a software development technique at all, but is dependent on project management.
40207 views
Abstract: Comparing software development to constructing a building is wrong. This article discusses why construction is the wrong metaphor and that software is organic and changes in unpredictable ways
55020 views
Abstract: There are many best practices articles and coding guidelines for BizTalk, that are floating around the net, but they are not very conducive and pragmatic enough to the ‘IT services’ industry (especially in an offshore development model), to leverage them in their turnkey or T&M projects. This article attempts to fill those gaps.

Categories

JOIN OUR COMMUNITY

POPULAR ARTICLES

FREE .NET MAGAZINES

Free DNC .NET Magazine

Tags

JQUERY COOKBOOK

jQuery CookBook