I just returned from SQLBits 2016 and had a fantastic time. They really put on a great conference, with brilliant speakers on a variety of SQL topics (and increasingly NoSQL/Big Data). Throw in good catering and an amazing , all for a very reasonable price and you have a conference I really can't recommend enough! The talk that excited me most this year was...
Entry Point Logging allows you to track all your API calls and the calls they make from a single place In the first part of this series I gave a brief overview of Serilog and Seq and what differentiates them from logging you may have done in the past. One of the most useful aspects of structured logging is the...
Add structure to your log entries and bring your logs up to date It used to be that logging was a bit of an after thought where a few statements such as 'Connecting to the database' or 'Invalid user login' were written to a text file that was rarely looked at. Well things have moved on a fair bit since then. Part 1...
Standardise your basic user data and add it to your ClaimsPrincipal for easy access! Recently I was working on a web api 2.0 project that used a bearer token for authentication and passed a UserId in the claims for the generated ClaimsPrincipal. Each controller in the project was accessing the User property from the ApiController base class to get the UserId...
Fluent Builders are extremely useful. Once you start using them there is no going back! In my first article I outlined fluent builders - what they look like and how to put them together. This time I will go a little deeper to show you just how versatile they can be. Method Naming You can be as flexible as you like in...
When creating tests (for TDD or BDD), use fluent builders No, I don't mean the kind that come around and drink all your coffee / tea. When you are testing your code you often have to initialise various classes beforehand. There are several ways to do this. Consider this simple api that takes in a 'Booking' object and returns the...
With Visual Studio 2015 comes C# 6.0. The team at Microsoft put a whole lot of effort into the Roslyn compiler this time around and the language features are primarily syntactic sugar, but they are still extremely welcome. The Null-Conditional Operator Here is a small piece of code that I inherited recently. It has a very simple task, get the client's...