Software Design and Development Conference 2017

01 February 2017 General

SDDConf 2017

This year I’ll be speaking at the first conference I ever attended: London’s Software Design & Development Conference (SDDConf). This is a big first for me, as whilst I’m comfortable talking to user groups or companies in house, this will be the first paid-for conference I talk at.

I attended this conference back in 2015 and it opened a lot of doors for me, both in terms of...

Read more

Consuming External OAuth Services using IdentityModel

15 November 2016 OAuth

IdentityModel

Recently as part of my audition process to become a Pluralsight author I created a 10 minute video on 'Consuming External OAuth Services using IdentityModel'. I’m pretty pleased with how it turned out, and luckily so were Pluralsight, so I thought I would share it for all to see.

In the video, I talk about why OAuth exists, what a basic OAuth request looks like and how we can use the IdentityModel library to help us simplify the process in .NET.

Read more

Entity Framework Core In Memory Testing

29 September 2016 Entity Framework

When writing tests you don’t always want to use a physical database, instead opting for an in-memory solution. Whatever your reasons for doing this, with the release of Entity Framework Core we now have a couple of different options recommended by the EF team for when we are testing using in-memory databases.

These two choices for in-memory database providers depend on whether or not you’re using the Microsoft.EntityFrameworkCore.Relational package and if you need the full behaviour of a relational database during testing.

If this doesn’t apply to you, you can use the Entity Framework Core In-Memory Database Provider (Microsoft.EntityFrameworkCore.InMemory). If you do need this behavior, you can use the SQLite Database Provider (Microsoft.EntityFrameworkCore.Sqlite) using the SQLite in-memory mode.

Read more

Getting Started with IdentityServer 4

22 September 2016 Identity Server Last Updated: 23 April 2017

Identity Server 4 is the newest iteration of IdentityServer, the popular OpenID Connect and OAuth Framework for .NET, updated and redesigned for ASP.NET Core and .NET Core. In this article we are take a quick look at why IdentityServer 4 exists, and then dive right in and create ourselves a working implementation from zero to hero.

  • IdentityServer 3 vs IdentityServer 4
  • Implementing IdentityServer4 on ASP.NET Core and .NET Core
  • OAuth Functionality
  • User Interface
  • OpenID Connect
  • Entity Framework Core
  • ASP.NET Core Identity

IdentityServer 3 vs IdentityServer 4

IdentityServer

A popular phrase going at the moment is 'conceptually compatible' but this rings true for Identity Server 4. The concepts are the same, it is still an OpenID Connect provider built to spec, however most of its internals and extensibility points have changed. When we integrate a client application with IdentityServer, we are not integrating to an implementation. Instead we are integrating using the OpenID Connect or OAuth specifications. This means...

Read more

Getting Started with the Azure DocumentDB .NET SDK

06 July 2016 Azure

DocumentDB Logo
Azure DocumentDB is the Platform-as-a-Service NoSQL document database available on Microsoft's cloud platform Azure. Similar to other popular document databases such as MongoDB and RavenDB, DocumentDB allows for the simple storage of entities as JSON with no enforced schema, but with the added benefit of being Platform-as-a-Service. This means that it is completely managed by Azure, with no need to manage the underlying resources and also the ability to use Azure’s impressive scalability at will. DocumentDB is hosted entirely on SSDs and is very fast, with Azure reporting a 1-2ms call completion when working within the same Azure region.

DocumentDB also has the ability to manage transactions, choose consistency levels, to use complex querying with SQL like syntax, and to use server side features, created using JavaScript, in the form of stored procedures, triggers and user defined functions.By default all documents are indexed, however this can be turned off with only document Id’s being indexed.

Read more