Composite UIs for Microservices - Data Composition

Posts in this series: A primer Composition options Client composition Server composition Data composition In the last post, we looked at composing at the server side, both through composing through widgets/components, and then for data sources for a widget themselves, using model composition to pull data from multiple sources into a single model. In model composition, a single set of inputs fans out to multiple services for data, returned [Read More]

Respawn vs SQL Server Snapshots

One of the newer features of SQL Server is the ability to snapshot a database at a point in time, and restore it. A commenter on the Respawn announcement asked if I had looked at this feature for resetting a test database to a known point. I hadn't, and this feature offers a few perks over Respawn. Respawn is an intelligent table deleter, instead of giving you an actual snapshot [Read More]

Composite UIs for Microservices - Server Composition

Posts in this series: A primer Composition options Client composition Server composition Data composition In the last post, we looked at techniques for composing on the client side. One of the issues we saw is there aren't really a lot of tools to perform composition, nor are there explicit building blocks to do so. The story is largely the same on the server side, where we don't have a lot [Read More]

Bulk Writer 1.0.1 released

A few years back, I had a somewhat new problem on hand. I needed to, on a daily basis, wipe and re-insert about 100 million rows of product data into a customer support database. The data was in the form of a single CSV file (zipped of course), and I needed to find a way to efficiently insert that data into SQL Server. Enter SQL Bulk Copy. It can, lightning [Read More]

Respawn 1.0.0 released

Respawn is a small library to help reset your database to a known state before tests. If you're like our teams and rely on integration/subcutaneous tests as your final "green" test for feature complete, keeping a consistent database state can be frustrating. Respawn solves this problem by intelligently wiping your local test database clean before each test: var checkpoint = new Checkpoint(); await checkpoint.Reset("MyConnectionStringName"); // or await checkpoint.Reset( [Read More]