-
Notifications
You must be signed in to change notification settings - Fork 3
CoolTowel Reference Architecture
hasith edited this page Jul 24, 2013
·
13 revisions
During past few years, we have been refering/experimenting several reference architectures for some software "Product" development projects. Needless to say that, "Product" development is vastly different to other deciplines such as bespoke or enterprise application development.
After completing few projects, we recognized the gap of a robust reference architecture for building a modern software product. As a result, CoolTowel was born!
The CoolTowel reference architecture depicts several important aspects an architect should 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/).
- Entity Framework 6 Beta
- ASP.NET MVC 5 prerelease
- Durandal 2.0 Beta
- Twitter Bootstrap
- KnockoutJS
- RequireJS
- BreezeJS
- Toastr
- and more...
- Repository and Unit of Work based Data Layer
- Generic repository base classes for CRUD operations
- EF reporitory initialization with seed data
- OData based REST API with advanced query support ($expand, $filter, etc.)
- Generic controller base classes for data operations over REST
- Server calls via a common DataService
- Browser history/routing/bookmarking
- Patterns for elegand knockout bindings
- Complex components with child components sharing the model
- User notifications with toastr.js
- Component lifecycle management
- Routing and navigation
- Dialogs, Events
- Widgets
- and more...
- Generic Integration Tests for Data Access Layer with isolated database files (repository tests)
- Generic Integration Tests for REST API with a self hosted server (controller tests)
- Multitenancy and cloud deployment support
- OAuth based security
- EF migration support
- UI improvements such as Progressbar, etc.
- Form factor responsiveness
- Web optimization support
- Localization support
- More samples (REST API with navigation properties, REST custom actions other than CRUD)