A modern three tier website
Design principles for a three tier website with clear responsibilities and well defined interfaces.
Frontend
The frontend is implemented as a Single Page Application using Angular.
The frontend communicates with the backend using REST.
Backend
The backend is implemented as a RESTful API using ASP.NET Core.
The backend is responsible for security, authentication and authorization.
The backend generates database queries via, for example, LINQ to SQL.
Database
The database exposes simple interfaces by providing views and stored procedures.
The database ensures data is consistent with the help of triggers and constraints.