*** We're still at a very early stage with both development and documentation.
Please bear with us as we complete this work.
We're targeting a mid-September 2012 time for release of the first beta ***

Almost all line-of-business applications perform data access and a lot of that data access is normal CRUD operations on single data sources. If you're using a tiered architecture, then you need to go through a business/service layer to perform these CRUD operations and in most frameworks, this means having to create a service operation for each CRUD operation per data entity.

Technologies such as OData allow us to simplify this process by providing a single point of access - a URL - to perform CRUD operations across the entire data source. However, OData is currently restricted to RESTful services over HTTP.

The CRUD Services framework aims to provide a single generic service definition that can perform CRUD operations on any type of data entity.
In addition, it will provide wrappers to various back-end data access technologies (such as Entity Framework, NHibernate and Linq-To-SQL) and distributed application frameworks (such as WCF and ASP.NET Web API), thereby becoming an "OData for everything else".

How it works

CRUD Services defines a single weakly-typed interface that defines all the methods for performing CRUD operations.

    public interface ICrudService
    {
        string Search(SearchCriteria criteria);
        string Find(string entityName, int id);
        string Add(string entityName, string items);
        int Update(string items);
        int Delete(string items);
        int DeleteIds(string name, IEnumerable<int> itemIds);
        string SaveChanges(string items);
    }

Any data entities that pass through this interface are serialized and sent as strings. This ensures that this one interface can be used for CRUD operations on any data entity.
Currently, the serialization is only in JSON, but this will be made configurable in future versions.

The framework provides strongly-typed wrappers on both client and server side, which present a clean API surface to developers and also perform utility tasks like serialization, serialization, basic validation, etc.

Communication framework implementations

The framework provides strongly-typed wrappers for the server-side and client-side implementations in WCF and ASP.NET Web API.

Back-end implementations

The framework also provides strongly-typed wrappers for back-end data access frameworks, including Entity Framework, NHibernate and Linq-to-SQL.

Last edited Aug 12, 2012 at 6:57 AM by jeevanjj, version 10