I found several versions of an IIS-free Cassini webserver built by Microsoft. I'd use it but I'm unsure of which one is best, since there are many forks/builds:
UtiDev Cassini (not a direct Cassini port/fork but close enough)
Hostable Web Core
What web server do you recommend of the forks above; is Hostable Web Core the new Cassini, or do I still have a dependency on IIS with HWC?
I'd appreciate it if you would elaborate:
a quick rundown of my view currently is that:
None of these, including my code, is suitable for production purposes. The limitations and restrictions of the simpleworker usage that all share does not lend itself to mission critical (what i perceive 'production' to mean) processes. Not the least of which is the complete inability to serve WCF (does not include WebHttp bindings, IIRC) on any IP other than LoopBack. Another limitation is that they all service requests as a queue, one at a time and as of today ALL requests are processed by the runtime including static text and image files. This may change in CassiniDev (sooner than later if funding is secured). Caching is also all but non-existent in all implementations IIRC.
I have no experience with MPosseth's VB port, appears dormant.
UtiDev has some great features such as running as a service and is not strictly a Cassini fork. It is free and redistributable but has been dormant since 2008.
CassiniDev is a tool that I use a lot and the features reflect this. It supports 2.0, 3.5 and 4.0. It is built as an exe, a dll and as a 100% compatible (enhanced) drop in replacement for Visual Studio's dev server. It is suitable and easy to use by testing frameworks and continuous integration environments as well as stand alone exe and embedded in your own applications.
The latest versions of WebDev.WebServer for Visual Studio 2010 have been run through reflector to identify changes and very few were found and the intent has been implemented in CassiniDev.
Development is active and has enjoyed a bit of corporate funding to drive some of the new features such as; a virtual endpoint for sending html/javascript test results back to NUnit, MSTest etc; A browser driver that can open a browser, serve a page and close the browser; a rudimentary start of a configuration system that supports plugins, the current sole implementation is a CORS plugin that will send the headers needed to support cross-domain javascript via CORS, XDomainRequest and Flash.
The codeplex landing page is showing it's age and the documentation hasn't been updated in years but the source shows the activity and I generally have samples/tests that quick start features. I hope to get some time to write some proper docs.
Bugs get fixed and features get implemented as time allows.
From my perspective the only choice is between CassiniDev and UtiDev. Obviously I choose CassiniDev, depending on ones requirements UtiDev could be a better fit.
UtiDev is a very good product but is dormant. It has a few nice features that I will eventually steal such as running as a service and serving multiple sites on one IP.
My .02. Although it may appear that I am shamelessly plugging my own work the fact is that I use CassiniDev every day in development and testing as do 100(0?)s of others. I am glad that others find value in the work but while I do my best as time allows, I cannot guarantee response time to issues and features and don't want to create improper expectations.
UltiDev Cassini is not actually dormant. Its successor, UltiDev Web Server Pro (UWS), has been under development for more than a year and has become closer to IIS (in functionality, not in size or complexity). UltiDev Web Server Pro test builds are being released once every few weeks and are fairly stable already.
To comment on some of Sky's points:
Cheers, Vlad.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With