F# Web Services on any platform in and out of a web server
servicestack.net
servicestack.net
For those interested I used F# on OSX/Mono for this post. Since F# is quite terse, I prefer to use a POTE (Plain Old Text Editor) to develop with it on OSX. You can configure Sublime Text to work with F# with these instructions (inc REPL in comments): http://onorioc.wordpress.com/2012/01/26/configuring-sublime-...
ServiceStack runs on .NET and Mono, even our http://www.servicestack.net website (inc. all live demos) have always run on Linux/Nginx + Mono/FastCGI for years.
We've got a wiki page on how you can run a self-hosted ServiceStack as a Linux daemon here: https://github.com/ServiceStack/ServiceStack/wiki/Run-Servic.... Also includes instructions on how to configure and run it behind a Apache + Nginx reverse proxy.
You can also run ServiceStack inside an ASP.NET host which you can host in Apache (with mod_proxy) or in Nginx (with Mono/FastCGI) - some configuration on both of these configurations is here: https://groups.google.com/forum/#!msg/servicestack/04GQLsQ6Y...
If it helps here are the Nginx Mono/FastCgi server conf files for servicestack.net: https://groups.google.com/forum/#!msg/servicestack/kzfS88Rld...
I bow in your general direction. F# is terse, but most mortals rely on goodies like intellisense and red-squigglies in some IDE. Getting over the hump of writing non-trivial F# that builds correctly is, well, non-trivial.
Whilst developing in F# I'm mostly using the F# interpreter (fsi) to test and run snippets of code, once I'm happy with the code, I then just paste it into the main code-base.
I've got some good links to help you get started with F# in the "Getting Started with F#" section, at the end of this earlier blog post: http://www.servicestack.net/mythz_blog/?p=765
I personally know many other IT consultants (professionally) that continue to deploy instances of it for their clients. We've collected a number of testimonials that we'll publish after we re-design our website.
There have been over 100,000 total downloads in this past year alone, and I've had a number of chance run-ins with dev teams using it (even in my home town!), which I write a bit about it here:
http://www.servicestack.net/100k-downloads/#feedback
The above page also provides links where you can see the feedback we've received on Twitter and in the mailing list.
ServiceStack was created 4 years ago as an OSS-run project, to use as an alternative to WCF - and we've been using ever since for all web service development. It's currently led by the core team who have received contributions from over 90 external contributors and is in the top 10 most popular OSS .NET projects on GitHub: https://github.com/languages/C%23/most_watched
Later this year we plan to offer a 'Long Term Supported' release that we'll provide commercial support options on.
It has been around for 4+ years, has been actively developed since inception, has never taken any funding and is a fairly popular OSS .NET project with a strong and active community.
In that same time frame we've seen multiple generations of Web Service Frameworks in .NET (Mostly from Microsoft), where many of which are now deprecated: .asmx, CSF, WCF, WCF/REST, WSE, WCF DataServices, RIA, MVC (escaping complexity of earlier options) and now WebApi.
We still think they continue to promote the wrong approach to web/remote services, as there are more natural benefits of SOA-inspired message-based designs: https://github.com/ServiceStack/ServiceStack/wiki/Advantages...
ServiceStack's original IService<T> interface has remained unchanged for all its lifetime and we believe its solid design insulates it from re-writes and allows it to evolve naturally to adopt new features. It's simple and flexible core allows it for any plugin to extend and enhance its core functionality: https://github.com/ServiceStack/ServiceStack/wiki/Architectu...
A number of the plugins we maintain ourselves can be seen at: https://github.com/ServiceStack/ServiceStack/wiki/Plugins
OSS software is itself immortal, even if the commercial company behind it collapses - the source will always be open. i.e. it can't be killed by competition, you will always be able to take a fork of an OSS project fix bugs and enhance it as much as you wish or simply contribute to someone else's fork.
Only Found it when reading that StackOverflow uses it: http://blog.stackoverflow.com/2012/02/stack-exchange-open-so...
http://msdn.microsoft.com/en-us/library/hh370982.aspx
New features include:
Type Providers - OData (Open Data) Services - Database Connections such as SQL - Database Schema - Data specified by the Entity Data Model format - Web services in the WSDL format.
Query Expressions
Auto-implemented properties
Parameter Help
Enhanced IntelliSense
Create applications that run against the following versions of the .NET Framework: 2.0, 3.0, 3.5, 4, and 4.5