About this example application
I have recently created an example invoicing application in ASP.NET MVC3 in order to have a starting code base for my daily work as ASP.NET MVC3 trainer and developer.
You can make the most of this application by following the development history log and learning about every aspect of ASP.MVC3 covered here (authentication, partial rendering, code first, EF, templates, scaffolding, ajax partial rendering, t4 templates, etc)
As companies and students I trained did, hope you guys that are stepping now into ASP.NET MVC find it useful.
Feel free to fork this application in github, send feedback, or contribute to the code base by sending a pull request.
This project was started a few days ago (30th Sept 2011), so more features will be adding soon.
Full source code, screenshots and online demo
What does this example ASP.NET MVC3 application cover?
Data modeling using Code First and POCO entities.
- Use of SQL Server Compact (SQL CE) (actually you can select whatever database backend you want (SQL Server, SQL Server Express, SQL CE, etc) by editing the web.config file).
LINQ and Entity Framework.
Razor view engine.
Partial views and partial actions. Partial actions caching.
- EditorTemplates and DisplayTemplates for custom rendering common types across the application (decimal, datetime)
Creating a custom authentication provider pointing to your database "users" table (Custom Membership Provider) exact code file here
Data Annotations validations.
AJAX Partial view rendering using jQuery.
Custom T4 templates for customized scaffolding. The templates have been adapted to (Twitter Bootstrap CSS).
Unit testing using NUnit. Object mocking using Moq.
Otros: Twitter Bootstrap CSS, Google Charts.
How to follow the release history to see what has been added in each release?
Development has been done step by step.
Every release has been marked with a TAG, so you can explore the source code from the first line of code created, seeing what has been added to each release (by checking the history file) and comparing it with the source code related to that TAG, available in GitHub.
This way you would be able to follow the whole development process.
Better check the github page for this project