> For the complete documentation index, see [llms.txt](https://eleven-fifty-academy.gitbook.io/dotnet-201-elevennote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eleven-fifty-academy.gitbook.io/dotnet-201-elevennote/elevennote-parts-1-11/part-1-setup/0.0-intro.md).

# 0.0: Intro

In this module we'll give an overview of an n-tier application.

## n-tier

Here we'll be setting up the foundation for an n-tier application. In an n-tier application we attempt to establish a separation of concerns, where entity models, contracts, services layer, unit tests, and presentation will all have their separate layers. In our C# application, these layers are demarcated by assemblies and inside each assembly, our complexity for each layer will be encapsulated.

## OVERVIEW OF THE APP'S STRUCTURE

As we separate our projects into various assemblies, we'll give an analysis of each layer. Here are a few notes for starting purposes:

| **Layer**            | **Purpose**                                                                                                                                    |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| ElevenNote.Data      | This is where we setup our database using Entity Framework                                                                                     |
| ElevenNote.Contracts | Houses interfaces for method signatures used in Unit Testing and the Service layer.                                                            |
| ElevenNote.Services  | The messenger that helps the data and presentation tiers communicate. Examples of services include authentication and authorization            |
| ElevenNote.Models    | View Models represent the data that we want to show on the page. They are useful because you can pull specific properties from multiple tables |
| ElevenNote.WebMVC    | This is the MVC part of the app and uses Razor to display our information. You might also see this referred to as the presentation tier.       |
| ElevenNote.WebAPI    | Web APIs provide us with logic that allows us to pass data to other presentation tiers - i.e. mobile, Angular, etc                             |
