This code is a Code Makiwara. It demonstrates a combination of technologies and patterns applied to a specific problem domain. You are free to fork this repository and create your own Makiwara.
This problem domain for this Makiwara is a TODO list application. This problem domain has the following concepts.
- Tasks; simple items with a name and a description.
- Users; people to which tasks can be assigned.
- Tags; strings which allow us to group tasks together.
- States; the state that a task is in.
This Makiwara makes use of the following formal, or informal patterns.
- Domain Driven Design; this sample uses domain driven design to model its objects.
- Repository Pattern; this sample uses the repository pattern to manage persistence.
- Model-View-Controller Pattern; this sample uses the MVC pattern to manage interactions with the domain model from the UI.
- Model-View-ViewModel Pattern; this sample uses MVVM to shield the domain model from UI implementation concerns.
This Makiware makes use of the following technologies.
- ASP.NET MVC 4.0; the ASP.NET MVC framework provides the building blocks for building this Makiwara.
- Entity Framework 5.0; Entity Framework provides the ORM capability for this Makiwara.
- Twitter Bootstrap 2.2.2; provides the client UI layout grid and basic elements for this Makiwara.
- Knockout; provides a way of binding data from JSON objects to the UI elements.
- SQL Server LocalDB; where we store the task data when the application runs.
If you want to work with this Makiwara, here is what you need to do.
- Clone the repository down to a machine with Visual Studio 2012.
- Open the Todo.sln file inside Visual Studio 2012.
- Hit F5 to run the application. We use LocalDB so no configuration is necesary.
- Use the application and set breakpoints.
This Makiwara was created by Mitch Denny. It was based on the the Code Makiwara.