spidermonkey-dotnet
Spidermonkey-dotnet is a binding between the original JavaScript engine SpiderMonkey and the .Net and Mono platforms. This library will enable your application to easily run JavaScript code or allow user written JavaScript to be executed within its context. The SpiderMonkey engine also provides for the embedding of custom objects into the language, like your own JavaScript API. These custom objects can execute managed code, in effect making CLR applications scriptable with JavaScript. Updates and news about the project are currently on this site's main blog, and the project page on codeplex.com: http://www.codeplex.com/spidermonkeydotnet.
The library is available in two flavors. First, the basic binding will allow you to link in SpiderMonkey and embed objects in managed equivalents to the original SpiderMonkey API. An example on how to do an embedding this way is explained here: Embedding a C# Class in SpiderMonkey. This functionality is available free, and is licensed under the LGPL.
An extended library is currently in development, which provides functions to automatically embed your classes into the engine with little, if any, interaction with the JS API. I have called this generic object embedding, please see posts Preview of Generic Object Embedding, and Code Preview of Generic Object Embedding. Source is available for development purposes, but a commercial license will be required for production releases using this library.
Latest releases:
Basic spidermonkey-dotnet
Full spidermonkey-dotnet
These solutions contain a demo project that is a JavaScript shell. Another good example of generic object embedding is in another project available called GibberMonkey.
This project is a JavaScript scriptable IRC bot, programmable even from the chatroom. It is a marriage between spidermonkey-dotnet & the SmartIrc4Net library. SmartIrc4Net is a C# library providing an API for communicating with an IRC server, documentation for this API is here. GibberMonkey is the general testbed for generic object embedding.
GibberMonkey project page: http://www.codeplex.com/GibberMonkey