ServiceStack is an Open Source .NET and Mono Framework that provides a strong alternative to WCF, MVC and Web API for building Web Services and Applications. The project recently announced that they crossed 100 contributors milestone. We take this opportunity to dig further.
ServiceStack is a combination of multiple things –
- A Web-app framework with a high-performance Razor Engine
- A Message-based Web Services Framework that supports various formats such as HTML, XML, JSON, SOAP and more
- A built-in IOC container
- Several built-in libraries such as a Text serializer, a Redis Client, an ORM and caching providers
- Has self-hosting option along with ASP.NET and Mono hosting
The framework can be installed fully or piecemeal through various Nuget packages.
To learn more and start experimenting with the framework, you can have a look at the wiki or the list of community resources.
Community comments
I agree that message based designs are best for SOA in the long run
by Faisal Waris,
Re: I agree that message based designs are best for SOA in the long run
by Faisal Waris,
Re: I agree that message based designs are best for SOA in the long run
by Roopesh Shenoy,
Re: I agree that message based designs are best for SOA in the long run
by Faisal Waris,
I agree that message based designs are best for SOA in the long run
by Faisal Waris,
Your message is awaiting moderation. Thank you for participating in the discussion.
Note in both WCF (.Net) and JAX-WS (Java) you easily do message based SOAP clients and services (and use late binding if needed).
Automatic code gen is not all bad. Many times that is the fastest and least error prone option. But it should be optional.
I think some enveloping or wrappering is needed, especially for asynchronous messages and strong security. We have found WS-Addressing to be very handy for routing via the ESB.
Re: I agree that message based designs are best for SOA in the long run
by Faisal Waris,
Your message is awaiting moderation. Thank you for participating in the discussion.
There is a relatively new binary XML standard from W3C called Efficient XML Interchange (EXI). See: www.w3.org/TR/2011/REC-exi-20110310/
I just happen to be looking at an ISO spec for electric-vehicle-to-charging-station communication, that stipulates EXI encoding for some parts of the exchange.
XML Schema can be used to describe message formats (and is essential to achieve high compression). However any XML document may be serialized as EXI included signed/encrypted documents, as is the case for the ISO spec.
Re: I agree that message based designs are best for SOA in the long run
by Roopesh Shenoy,
Your message is awaiting moderation. Thank you for participating in the discussion.
Thanks for sharing that, Faisal! Googling brought up only one .NET implementation for EXL, which seems to have been released in 2007 (before the standard was even adopted) -
www.agiledelta.com/product_efx.html
Are you aware of any other implementations? Did you get a chance to work on this and form an opinion yet?
Re: I agree that message based designs are best for SOA in the long run
by Faisal Waris,
Your message is awaiting moderation. Thank you for participating in the discussion.
Looks like there is only one available for .Net. There are other, open source C and java implementations.
The working group home page lists some implementations (www.w3.org/XML/EXI/):
•Efficient XML (AgileDelta, Inc.)
•EXIficient (Open source project initiated by Siemens AG)
•EXIP ‒ Open source project led by EISLAB, Luleå University of Technology
•OpenEXI ‒ Open source project led by Fujitsu
A test suite (and other implementation helpers) are available so additional implementations can be done with high confidence.
I think for embedded systems 'C' will be the most likely language of choice.
I have just started looking into EXI.