Chameleon is a set of libraries and interfaces to give developers working on lean line-of-business applications a head-start. Chameleon is not a framework, but it does create a façade around some existing frameworks, allowing them to be exchanged with one
another and introducing the capability of unit testing interactions with those interfaces.
Heavily inspired by the Repository pattern, Chameleon provides a simplified interface for both the Linq-to-SQL DataContext and Entity Framework DbContext, allowing either to be used in a code-first or model-first capacity, while also providing an in-memory
context that can be used for unit-testing interactions without connecting to a database.
The IDepository interface consists of only a small number of methods and treats IQueryable<T> as a first-class object. Framework-specific concepts like EntitySets are not yet supported directly, but most relationships can be represented independent
of framework using dependency injection.