Rovani in C♯

Vigil.Data Solution and Initial Projects

After several false starts, the convention for how to organize a solution seems to have come together. This also includes how to change the default project settings, and how to keep everything tidy...

Recurring Gifts — Part 1: Database Schema

There are many posts out there for how to configure a database schema to handle scheduling events. The part that I found difficult to find was an algorithm for calculating future dates for each type...

False Errors Are Better Than Silent Failures

In terms of reaction to a request for work, there are several responses. In order from most desirable to least desirable: Successful action with a message of success. Failed action with a message of...

Data Layers, and Finding Ways to Reduce Repetition

This should be a footnote, but I have always wanted an excuse to use the stencils from the Visio Work Flow Diagram. They just seem like a fun way to represent something. What does it take, if...

Returning To an Old Project

This old code? Sure, I think I can make a quick tweak to it. Let me take a look. Thus, the yak shaving begins. The code compiles just fine, the tests all pass, and I can just edit a couple of lines...

Establishing KnockoutJs Design Patterns

Now that I have been tinkering with Knockout for about a year, I have finally settled on a host of design patterns that I feel strike a nice balance between rigid consistency and flexible...