Thursday, June 27, 2019

Introducing Firsts for Solutions Architecture

There is a lot of talk about different firsts in the Solutions Architecture. When people say something is xyz First they mean that xyz is a first class citizen when you start the process of designing your architecture. You can only have 1 first class citizen but you can have many second class or third class.

Here are a few of examples of "firsts":
  • Code First - This means you need to start coding first in C# or VB.NET and then EF will create the database from your code
  • Model First - Best described in the article on the Model First Approach "In the Model-First approach, you create the entities, relationships, and inheritance hierarchies directly on the design surface of EDMX and then generate the database from your model."
  • Database First - Best described in this article on the Database First Approach "The Database First Approach creates the entity framework from an existing database. We use all other functionalities, such as the model/database sync and the code generation, in the same way we used them in the Model First approach"
  • Config First - This is the idea that you make your application flexible enough that you can extend it simply through configuration.  Salesforce was the first to introduce this with their No Code premise and it has led to much better solution implementations because you tweak a couple settings and a way you go. 
  • Api First - This is the more modern approach and the one that will be discussed in this series of articles. The first place to start is reading this article on Principles of API First Design as we will be talking about this in the following few blog posts.
I will be adding more "Firsts" to this blog post later but the important thing is it gives you a taste for the different "first" approaches as you may use some of their concepts as "seconds" or "thirds".