Service Stack Overview view architecture overview

ServiceStack is a high-performance Open source .NET web services framework that simplifies the development of XML, JSON and SOAP Web Services.

Developed in the modern era, it has first-class support for IOC, testing and convention-based development enabling you to to develop your webservices entirely using pure, clean POCO DataContract's that are decoupled from the endpoint that it is hosted on.

These same DTO's can later be shared with any .NET client application eliminating the need for any generated code.

Creating a web service is done by adding a new Request and Response DataContract and the Service to handle them. With no other configuration required, they are immediately discoverable and callable via the following supported endpoints:

Services can run on both Mono and the .NET Framework and be hosted in either a ASP.NET Web Application, Windows Service or Console application.

If you want to know more about Service Stack, check out the following links:

Download the latest release

Service Stack is merged into a single ServiceStack.dll assembly that's an easy drop-in into any .NET project. Download ServiceStack.Examples.zip

Running on high performance parts

Included in ServiceStack are a number of other libraries that are useful in developing high-performance scalable web services.
These sub-components are included in ServiceStack.dll but are also available to download seperately.
TypeSerializer
The fastest and most compact text serializer for .NET
3.5x quicker and 2.6x smaller than the .NET XML DataContractSerializer
5.3x quicker and 1.3x smaller than the .NET JSON DataContractSerializer
view the benchmarks
TypeSerializer's main goals are:
  • Fast
  • Compact
  • Human readable and writeable, self-describing text format
  • Resilient to schema changes
  • Non-invasive and configuration-free
Redis
Redis is arguably the best key-value store to come from the NoSQL movement. Similar to memcached but the dataset is not volatile. Values can either be strings lists, sets, or ordered sets.

ServiceStack.Redis is fast, rich opensource C# Redis client:
  • Native support for persisting POCO objects
  • Has both low-level raw bytes and high-level typed access
  • Expose Redis server-side lists & sets as IList<> ICollection<>
  • Rich API support
  • Comprehensive regression and test suite
OrmLite
A fast, convention-based, configuration-free POCO ORM providing lightweight extension methods on top of IDbCommand and IDbConnection classes. It uses standard Data Annotation attributes simplifying the effort required to access an RDBMS.

OrmLite is focused on it's core objectives:
  • Performance - with support for indexes, text blobs, etc.
  • Simplicity - with minimal, convention-based attribute configuration
  • Expressive power and flexibility - with access to IDbCommand and raw SQL
  • Portable - supports multiple dbs running on both .NET and Mono platforms.
Caching
As caching is an essential technology in the development of high-performance web services, Service Stack has a number of different caching options available that each share the same common client interface for the following cache providers:

  • Memcached - The tried and tested most widely used cache provider
  • Redis - The hottest and fastest new kid on the block
  • In Memory Cache - Useful for single host web services and unit tests
  • FileAndCacheTextManager - A two-tiered cache provider that has a backup filesystem cache