Skip to main content

Northwind Traders relational data sample

Headshot of article author Greg Lindhorst

Yesterday at the Microsoft Business Applications Summit, I premiered a new sample solution showcasing canvas and model-driven apps built on relational data in Common Data Service.  Workshop attendees built the complete canvas app from scratch and learned how canvas apps work and how to easily work with CDS relationships and option sets.

This sample is now available for everyone to download and use.  The instructions for building the canvas app from scratch are also included in our documentation, the same articles we used in the workshop here in Atlanta.

I picked an old friend as the basis for this sample.  Back in the day, Microsoft Access launched with Northwind Traders as its main sample database to showcase the power of Access.  It quickly became the dominant sample not only for Access but for Visual Basic and other developers looking to build client/server proof of concepts and inspired the creation of Adventure Works years later.  Say the word Northwind and everyone knew exactly what you meant.

Norhtwind still ships with Access as a template today and here’s how it looks:

Northwind is still a great teaching tool because it has a very simple and relatable schema.  An Order has a Customer and an Employee, examples of Many-to-one relationships.  An Order also has Order Details, the line items of the products sold in an Order, an example of a One-to-many relationship.  I’ve transferred the Norhtwind schema as faithfully as I could, but with some updates for CDS features such as option sets and Many-to-many relationships.

Here’s how it looks as a canvas app, Northwind Orders (Canvas):

And as a model-driven app, Northwind Orders (Model-driven):

These fully built apps are included and ready to run with the sample solution file.  Create a trial environment and import the solution according to the directions in the install article.  Since solutions can’t include data, after importing the solution you will need to first run the Northwind Sample Data app to populate the entities:

To learn how the orders canvas app works, you can recreate it from scratch using the instructions in the docs.  The app is built in three parts:

You can dive right in with Part 1: Order gallery or read the overview of the entire app.