Keep it stupid simple (or Keep it Simple, Stupid).  
Developers should own their code, not the other way around.

To put very simply, SimpleRest is a .NET platform used to create REST services inspired by WCF Web API 0.6.0.0.  SimpleRest was designed to be extremely light weight, powerful, extensible, and very easy to use.  SimpleRest does not try to get cute or tricky with the code like other platforms tend to do but rather it employs a very simple methodology…  The KISS principle.  Simple is better.

Creating web API’s are becoming more and more common these days because of the obvious power that they can bring a business.  This means that the right technology can become very important and choosing the right one that suites your needs is something that is also very important.  Something to look for when choosing these technologies for your organization might be: Ease of use, ability to get something created quickly, maintainability, ability to support independent scaling of services, etc…  The good news is that SimpleRest was created with just these types of things in mind.  SimpleRest was created to address business needs and cater to developers writing business applications.

The newly released ASP.NET MVC4 WebApi has not impressed me much. Why are creating full featured rest services not easier? Why do non-service concerns bleed into your service platform?  Why is it so difficult to built a REST service how I want to build it? Why do I have to piggyback my REST service platform on the ASP.NET MVC platform? I believe design patterns like this suggest bad things to developers using this platform and may cause a service platform to suffer because of it...  Inspired by these problems; welcome into creation SimpleRest.
SimpleRest is an integrated REST pipeline for the .NET framework in attempts to address these very important questions and concerns.

NEW! DataAnnotation support out of the box.  Now you have the ability to decorate your service contracts with Data Annotations (System.ComponentModel.DataAnnotation) and optionally configure your service to validate all incoming http body requests against the data annotation's that you supply for your class.  This can be done within the SimpleRest.Core.Extensions library by using the ExtendedConfiguration object and setting IsDataAnnotationValidationEnabled = true on the configuration object before service registration.  See Sample Project for examples!

NEW! - Service auto documentation feature now available.  Simply set IsAutoDocumetationEnabled = true on the ExtendedConfiguration object in the extensions library and automatically have your service documented for you.  Download the Sample application and take a look at the product service class to check out how to drive it!

Key Features of SimpleRest:
 - Auto-XSD route generation.  Optionally allow for routes to be created for each of your endpoints which respond with the XSD representation of the resource you are exposing.
 -  Auto-documentation for each service you create.  Optionally allow for your services to auto-generate documentation describing in full detail what your service does.  This feature is extensible and allows for developers to easily add documentation features to your service.
 - Ease of use is one of the big advantages of SimpleRest.  With SimpleRest you can start creating services immediately.  See the sample project for examples.
 -  Custom media types allow you to create your own media type formatters for your service..  Or you can just use the JSON & Xml media type formatters out of the box.
 -  Data Annotation support allows you to attribute your service contract's and let SimpleRest validate the incoming http body for you.
 -  Extensible aspects allow the developer to completely control the request execution throughout the pipeline and plug into different stages of the execution life cycle.  Much effort was spent providing as many hooks into the request execution as possible which allow developers to extend the pipeline how they see fit.
 -  Exception handling within SimpleRest is a breaze.  All exceptions thrown during the execution of the request bubble up to an Error Handler which the developer has total control over allowing for errors to be handled however the developer see's fit.
 - Dependency Injection with SimpleRest is very simple to leverage.  During the request execution the developer can easily tap into a Service Resolver Handler which can be used to allow an IoC container to resolve dependencies needed for service creation.
 - Extremely light weight was one of the primary focuses with SimpleRest.  Because of this it comes to no surprise that ZERO non-native .NET assembilies are needed to drive the core and only TWO native .NET assembilies are used to drive the core; System.Web, System.Web.Routing.

Download SimpleRest Integrated Pipeline workflow documentation here

Download it via NuGet and try it today!
PM> Install-Package SimpleRest.Core
PM> Install-Package SimpleRest.Core.Extensions 

Last edited Aug 11, 2013 at 3:34 PM by DotNetRockStar, version 33