.NET Core sample app for renting digital movies
.NetFlicks is a .NET Core sample app for renting digital movies and viewing details such as cast and crew. It contains custom-built data tables for efficient paging, searching, sorting and editing of thousands of items. Its main focus is to showcase best practices for multitier system architecture, database design and intuitive, mobile-friendly UI. This project has been a great learning experience for me and I hope it can help other developers looking for a solid template to build on.
The database for this solution uses Entity Framework and ASP.NET Identity. I chose not to use Identity Roles, instead allowing all users to see both the Client and Administrator UI at once for simplicity. The database, called DotNetFlicksDb, is automatically seeded with data for 40 movies, provided by TMDB.
This solution is divided into four layers based on IDesign methodology:
Layer | Description | Able to Call | Model |
---|---|---|---|
Clients | An entry-point to the system, such as an MVC site or REST API | Managers | ViewModel |
Managers | Manages the workflow of a call chain, handles business logic | Engines, Accessors | DTO |
Engines | Encapsulates algorithms and business logic (optional layer) | Accessors | DTO |
Accessors | Accesses data from resources like databases and APIs | None | Entity |
IDesign is a closed architecture that focuses on encapsulating volatility, minimizing coupling and separation of concerns. The official IDesign documentation is sparse, so I’d recommend reading Software architecture and project design, a mechanized approach for a quick intro to the method.
Here’s my implementation of IDesign for this solution:
ASP.NET and web development
workload during installation)admin@dotnetflicks.com
, password: p@ssWORD471
) or create your own account to start using the site(localdb)\MSSQLLocalDB
and the Databases
folder to find DotNetFlicksDb
(exists only after you first run the project)/elm
to the base URLIndividual Components
tabCloud, database and server
sectionSQL Server 2016 Express LocalDB
is checked and click Modify