Skip to content

CoolTowel Reference Architecture

hasith edited this page Jul 24, 2013 · 13 revisions

History

During last few years, we have been refering/experimenting several reference architectures for software "Product" development projects. Needless to say that "Product" development is vastly different to other deciplines such as bespoke application development or enterprise applications development.

After few projects, we recognized the gap of a robust reference architecture for a modern software product development. As a result, CoolTowel was born!

The CoolTowel architecture depicts several important aspects an architect may consider in creating a stable arhitecture for his/her next generation Product suite.

Note: The name 'CoolTowel' is inspired by John Papa's excellent work with the HotTowel template (http://www.johnpapa.net/hottowel/).

What is this based upon?

The future of modern technology stack

  • Entity Framework 6 Beta
  • ASP.NET MVC 5 prerelease
  • Durandal 2.0 Beta

Industrial standard tools

  • Twitter Bootstrap
  • KnockoutJS
  • RequireJS
  • BreezeJS
  • Toastr
  • and some more

What do you get with it?

Data Access Layer

  • Repository and Unit of Work based Data Layer
  • Generic repository base classes for entities
  • EF reporitory initialization with seed data

REST API Layer

  • OData based REST API with advanced query support ($expand, $filter, etc.)
  • Generic controller base classes for CRUD operations over REST API

HTML5/JS based Client Frontend

Sample application demonstrating complete technilogy stack integration

  • Server calls via a common DataService
  • Browser history/routing/bookmarking
  • Patterns for elegand knockout bindings
  • Complex components having child components sharing the same model
  • User notifications with toastr.js

Durandal 2.0 Beta framework for

  • Component lifecycle management
  • Routing and navigation
  • Dialogs, Events
  • Widgets, and more

Tests

  • Generic Integration Tests for Data Access Layer (repository tests)
  • Generic Integration Tests for REST API (controller tests)

What's comming up?

  • Multitenancy and cloud deployment support
  • OAuth based security
  • EF migration support
  • Progressbar
  • Form factor responsiveness
  • Web optimization support
  • Localization support
  • More samples (REST API with navigation properties, REST custom actions other than CRUD)
Clone this wiki locally