Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Anyone have experience with ServiceStack or other .Net services framework? [closed]

I'm looking for at using ServiceStack for the services part of a web application instead of rolling my own. Anyone have any experience using it? Any C#/.Net alternatives I should consider?

like image 807
Dave Avatar asked Jun 11 '10 21:06

Dave


2 Answers

I'm planning to use ServiceStack on my system, I found it very cool, very impressive in the way it implements some patterns and I like it's architecture

There are differences in the way you intend services.. However, the frameworks could be used are: (It's clear it depends on situations)

  • Agatha-rrsl which implements a rrsl pattern, it permit to use service in a ServerAndClient in the same process or a distribuited environment eg. web application which use external services (Agatha use WCF for external services)
  • OpenRasta a powerful framework which can be used to build an entire application or simply REST services
  • NServiceBus which implements a complete Service Bus architecture, and could be used in a ServerAndClient in the same process or in a distribuited way which is the best for that framework
  • MassTransit similar to NServiceBus (personally I prefer NServiceBUs)
  • SimpleServiceBus similar to NServiceBus but simpler, cool
  • RhinoServiceBus, a kind of fork on NServiceBus very very cool

It's very important to understand the difference between a service framework like Agatha vs a service bus like NServiceBus. A good point could be the great Davy Brion blog post on that argument http://davybrion.com/blog/2010/01/agatha-vs-nservicebus/

Maybe if I remember something else I will update later Hope it helps

like image 45
Hoghweed Avatar answered Nov 04 '22 08:11

Hoghweed


I'm glad to hear you are considering ServiceStack :), It's a framework that's been under development over the last few years, born out of the frustrations and friction caused by the rigidness of .NET's existing .asmx and WCF SOAP web services framework. I found none of the existing frameworks promoted a code-first conventional approach that follows Martin Fowlers best-practices Data Transfer Object Pattern which I believe is instrumental in being able to develop well-defined, less-chatty, cacheable and re-usable web services.

It's primary goals are:

  • Promoting best-practices C# development - loosely coupled, testable (endpoint/format agnostic) services.
  • Best-practices Web service development - Your web service contract is the most important interface you're likely ever to make, as such it should be code-first, strong-typed and well-defined.
  • Re-usable, Model driven architecture - Note your services inherit from a dep-free IService[of T] which can also be re-used in Message Queue services.
  • Cross-platform - Supports both Windows (.NET) / Linux/OSX (MONO)
  • Performance - Run-time reflection-free and uses only the fastest .NET components for all of its features
  • Cacheability - Caching is an important part of high-performance, scalable services as such it is sometimes important to have fine-grained control over your caching, be able to cache the most optimal result (i.e gzipped response) and have a variety of caching providers. See Northwind example.
like image 182
mythz Avatar answered Nov 04 '22 07:11

mythz