Sunday, January 1, 2012

Simple Circles–Introduction

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 mustn't 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. That is, true persistence ignorance beyond the theory that its possible. 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 a solution I’ll scream. Smile
This application will be built with NET 4.0 using the following tools and technologies:
  1. Visual Studio 2010 with NuGet package support
  2. ASP.NET MVC 3 and Razor view engine
  3. Persistence layer will be:
    1. NHibernate 3.1 with SQLite
    2. Entity Framework 4.1 with SQL Server CE 4.0
  4. Ninject 2.2 for dependency injection
  5. xUnit for unit testing
  6. jQuery UI for user experience.
Here are links to the posts for this project:
  1. Domain Model
  2. Persistence
  3. Fake Repository
    1. Scaffold People CRUD
    2. Replace EF hard wiring with Repository pattern
  5. MVC Controller Unit Tests
  6. Enabling jQuery UI
  7. NHibernate Repository
    1. IDbSession and implementation
    2. Fluent NHibernate mapping
    3. NHibernate Unit Testing
As this series is developed, I’ll keep updating this post with new links.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.