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.
- HWC requires IIS7
- Original is a museum piece
- Dmitry retired from the Cassini business after a few of us forked so don't look for updates there. His code is a good place to start if you choose to start yet another cassini fork for some odd reason.
- Cassini++ is Dmitry's code with a few enhancements, primarily the ability to use an external IP but has had no activity since before I started CassiniDev 2 years ago.
- zippy1981 initially forked Dmitry to solve a content type issue after I was a bit lazy in implementing it. No activity since 04-2010
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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…