Sunday, January 1, 2012
Overview
This series will be a step-by-step approach on building a simple to use web-based contact and customer relationship management application. The goals are to employ current best practices including domain-driven design (DDD), object-relational mapping (ORM), unit testing - a component of Test-Driven Development (TDD), and the model-view-controller paradigm of ASP.NET MVC3. Additionally, as the name suggests - the finished product must be simple to use. While patterns, practices and techniques employed to build the application might be advanced the end user must not be overwhelmed. Keeping track of a circle of friends, acquaintances and associates should be simple!
There are numerous examples of using these practices and technologies around the Internet. However many are overly simplified - designed to show a particular technique - rather than a complete "real world" example. Technical books tend to stick to the Microsoft mantra of always using their latest offering or their shiny new version of some proven OSS product. For example, Steve Sanderson's Sports Store in Pro ASP.NET MVC 3 Framework and Tim McCarthy's SmartCA in .NET Domain-Drive Design with C# both deliver complete examples yet neither tackle NHibernate - a proven OSS ORM. Instead, they stick to Microsoft's out-of-the-box new kid on the block, a.k.a. Entity Framework. Don't misunderstand, I'm not saying they're bad books - I've bought both, used them to learn, and do refer back to them. However, if I see another contrived example of using Entity Framework with a few wizards to whip out some code solution in an on-stage dog-'n-pony presentation my head is going to explode!
Technologies Explored
- .NET 4.0
- Visual Studio 2010 with NuGet package support
- ASP.NET MVC 3and Razor view engine
- NHibernate 3.1 with SQLite
- Entity Framework 4.1 with SQL Server CE 4.0
- Ninject 2.2 for dependency injection
- xUnit for unit testing
- jQuery UI for user experience.
Articles
- Simple Circles - Domain Model (Part 1)Simple Circles - Domain Model (Part 1)
Tuesday, January 3, 2012
This is part of the Simple Circles series on building a simple to use web-based contact and customer relationship management application. The goal is to support variou... - Simple Circles - Persistence (Part 2)Simple Circles - Persistence (Part 2)
Tuesday, January 4, 2012
This is part of the Simple Circles series on building a simple to use web-based contact and customer relationship management application. The goal is to support variou... - Simple Circles - Fake Repository (Part 3)Simple Circles - Fake Repository (Part 3)
Tuesday, January 9, 2012
This is part of the Simple Circles series on building a simple to use web-based contact and customer relationship management application. The goal is to support variou... - Simple Circles - Add An ASP.NET MVC 3 UISimple Circles - Add An ASP.NET MVC 3 UI
Wednesday, January 11, 2012
This is part of the Simple Circles series on building a simple to use web-based contact and customer relationship management application. The goal is to support var... - Replace EF hard wiring with Repository pattern
- MVC Controller Unit Tests
- Enabling jQuery UI
- NHibernate IDbSession and implementation
- Fluent NHibernate mapping
- NHibernate Unit Testing
As this series is developed, I'll keep updating this post with new links.