Fork me on GitHub

Agatha Request/Response Service Layer

Agatha is a Request/Response Service Layer for .NET. Simply put: Agatha enables you to reduce server roundtrips, has strong caching features (both server-side and client-side) and pushes you in the direction of cleanly separated and focused code. You can find a detailed overview of what a Request/Response Service layer is on this page. Note that that series of posts was written before this was turned into an open source project, but all of the information is still valid. If you're interested in the development and usage of Agatha, join the discussion group.

More information

Agatha's Wiki pages
Hello World with Agatha
Securing your Agatha Service Layer
Integrating your IOC container with Agatha
Running an Agatha Service Layer in process without WCF
One-Way or Fire-And-Forget requests with Agatha
Enabling logging in your Agatha Service Layer
Consuming multiple Agatha services
Consuming an Agatha service from a non-Agatha-aware client
Agatha vs NServiceBus
Using Agatha's server-side caching
Using Agatha's client-side caching
Using distributed caching with Agatha
Agatha with claims-based security through WIF

Download

You can download the source code of the 1.3 version here. Or you can install it through the following nuget packages:

Be sure to install both a Agatha-Common-* and Agatha-ServiceLayer-* package where '*' is your IOC container of choice. For more information on how to configure Agatha, be sure to check out the Hello World example.

Or you can always download the latest version of the code in either zip or tar formats.

You can also clone the project with Git by running:

$ git clone git://github.com/davybrion/Agatha

Shameless plugs

"We are a dev team for a leading investment bank in England. We are using it for rrsl communication in Silverlight for a number of large scale enterprise systems. Agatha is one of the few frameworks that is an absolute joy to use. As lead dev and architect I introduced it for its simplicity and power. I like the way it guides you in the right direction and towards the right architecture without imposing any limitations. It is one of those frameworks once you implement you never need to worry about again." - Nabil Shuhaiber

"Prior to using Agatha we had a number of Services, each with multiple Operation Contracts. It was clear at this point that the future expansion of our product would only result in an increased number of these services and operations which would result in a maintenance nightmare as:

We converted to Agatha over a period of 3 days. Although we still have additional services for specific requirements (user authentication, public facing service, Silverlight binding, etc), we have found that the maintenance headaches previously mentioned have disappeared and we can now expand the capabilities of our product without fear of an explosion of services or operations. Since converting we have not uncovered any side-effects or performance issues which has made the move to Agatha a no-brainer." - Matt Swanton, First Contact SAAS

"Thanks in no small part to the Agatha library, interactions between the client code and our new domain service were more streamlined than ever. Requests and responses were standardized, concerns could be more easily separated (we especially liked when Agatha supported StructureMap, as that was our IoC container of choice), and after some simple configuration we didn't have to worry about wiring things up anymore. No messing with the configs, no updating service references, none of that." - David P Donahue