Design Patterns

The 3-Layered App

It is a gross over simplification of software architecture to attempt to describe modern software systems in only 3 layers. However, this post is a primer where I will just talk briefly about the 3 high level layers.

Posted On Wednesday, July 31, 2019 4:47 AM | Comments (0)

The 17-Layered App

In this post, I will dive down deeper into the layers and see exactly how these could fit together. Each high-level layer is implemented by smaller focused layers, making 17 in all, at least in this example.

Posted On Tuesday, July 30, 2019 10:54 PM | Comments (0)

Notification Patterns in Rx, Part V: Connection Errors

The behaviour we want out of this pattern is when a connection error occurs we should queue up a notification to be delivered at some point in the near future. When it comes time to actually deliver the notification we check if the connection has been restored. If the connection has been restored we cancel the notification.

Posted On Monday, September 1, 2014 6:01 AM | Comments (0)

Notification Patterns in Rx, Part IV: Unexpected Errors

A feature that every serious program should have is the ability to notify when an unexpected error occurs. Every unexpected error should be reported and investigated. This is necessary in order to build quality software. In this post I’ll cover an Rx notification pattern that will report unexpected errors.

Posted On Monday, September 1, 2014 6:00 AM | Comments (0)

Notification Patterns in Rx, Part III: Lossless Notifications

As with all our examples, when we have a high volume of errors occurring we don’t want to spam people. Despite our desire to avoid spam, we also don’t want to lose any data. We want to make sure that details about each exception are sent out. Therefore each email sent may include details about several exceptions.

Posted On Sunday, August 31, 2014 6:02 AM | Comments (0)

Strongly Typed Enum Pattern

Enums are great. However, enums do have their problems. There is nothing to stop someone from assigning any other integer to an enum variable. Also, the enum is not very extendable. The Strongly Typed Enum design pattern can solve these problems.

Posted On Thursday, July 31, 2014 12:00 AM | Comments (1)

Introduction To Rowversion

SQL Server has a built-in data type that automatically marks changes to rows. This data type can be used for 2 main purposes: optimistic record locking and data queue processing.

Posted On Tuesday, January 14, 2014 11:53 PM | Comments (5)

Copyright © Timothy Klenke

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski