Source: https://www.halvorsen.blog/documents/programming/csharp/resources/Creating 3-tier Architecture.pdf