05 Feb 2013: Entity Framework support was added to the solution. A new project that implements the Transaction Manager and generic Repository using EF Code First is now available. The following article explains the new functionality, how to get it working using SQL CE and how to deploy the solution to Azure WebSites:  Chapter XVI - EF Implementation

15 Dec 2012: RavenDB was added to the eDirectory solution. A new persistance implementation was added to supported the RavenDB Embeedded document store; also, the tests can be executed using the InMemory mode. The following article describe what changes were made: WCF by Example - Chapter XV - RavenDB Implementation

WCF by example is a three-tier basic application designed with the purpose to provide examples for developers interested in the designed and development of rich applications using WPF, WCF and NHibernate, Entity Framework or RavenDB. (Apr 2012: a MVC project is also available)

There are many books and articles that individually cover WPF, WCF, DDD, NHibernate, EF and other critical technical aspects required for the design and development of enterprise applications. But yet, it is not easy to find a comprehensive example that covers the mentioned technologies in a way to facilitate developers in the creation of their own applications.

This project is envisaged for an application with the following requirements:

  • Business processes require a comprehensive business layer
  • A rich client or RIA (reach internet application) is required
  • Clients will connect to an application server which is responsible for the business processing and persistence of the domain entities.
  • The application architecture needs to leverage RAD and short development iterations so agile methodologies can be applied during the development.
  • The architecture needs to provide comprehensive flexibility to leverage rapid model development and frequent feedback to the business stakeholder.


The above architecture is resolved in this project by:

  • DDD is used for the design and development of the business layer
  • A rich client developed on WPF using the MVVM pattern and WCF for the communication to services in the application server
  • A MVC solution is also available (Apr 2012) that demonstrates the use of the server components in a web application project
  • Server component deployed on IIS7 using TCP/IP
  • NHibernate is used for persistence purposes but an in-memory persistence implementation is provided for RAD and testing purposes.
  • Support for RavenDB was added in Dec 2012.
  • Support for Entity Framework Code First was added in Feb 2013.
  • Dependency injection articulates a flexible architecture providing comprehensive decoupling between the application layers and components.
  • Additional configuration was added so the NHibernate implementation supports: SQL Server, SQL Server Express and SQL CE.


A series of articles can be found at Codeproject that discusses the solution architect.

Last edited Feb 5, 2013 at 9:53 PM by ealbert, version 10