Edge.js allows you to run Node.js and .NET code in one process on Windows, MacOS, and Linux.
You can call .NET functions from Node.js and Node.js functions from .NET. Edge.js takes care of marshalling data between CLR and V8. Edge.js also reconciles threading models of single threaded V8 and multi-threaded CLR. Edge.js ensures correct lifetime of objects on V8 and CLR heaps. The CLR code can be pre-compiled or specified as C#, F#, Python, or PowerShell source: Edge.js can compile CLR scripts at runtime. Edge can be extended to support other CLR languages or DSLs.



How To Be MEAN: Getting the Edge(.js)

Ted Neward. MSDN Magazine. 2016-05-01.
Welcome back, “MEANers.” In the previous installment, I added a bit of structure to the otherwise structureless environment that is JavaScript, Node and MongoDB, by adding the MongooseJS library to the software stack I’ve slowly been building. This put some “schema” around the different collections that the Node/Express middleware was receiving and storing, which is nice because it helps avoid some common human-inspired errors (such as searching for “fristName” instead of the actual field “firstName”). Best of all, MongooseJS is entirely code-side, which means that for all practical purposes, you now have the best of both worlds, at least as far as the database is concerned—“schemaless” in the database (making it far easier to refactor) and “schemaful” in the code (making it far less likely that a typo will mess things up).
But, if I can take a personal moment here, I must admit that I miss the Microsoft .NET Framework. Or, to be more specific, I miss some of the very cool things that the .NET ecosystem has available within it. Particularly, when I’m executing on the Microsoft Azure cloud, where a number of organizations are going to have some small (or very large) investment in the .NET “stack,” it seems a little out of place to be talking so much about JavaScript, if all of that .NET stuff remains out of reach. Or, at least, out of reach except for doing some kind of long-haul HTTP-style request, which seems kind of silly when you’re operating inside the same datacenter.
Fortunately, we have an edge. Or, to be more specific, Edge.js.
The Edge.js project is seriously one-of-a-kind in a lot of ways, most notably that it seeks to very directly address the “platform gap” between .NET and Node.js.  Hosted at bit.ly/1W7xJmo, Edge.js deliberately seeks to make each platform available to the other in a very code-friendly way to each.

[How To Be MEAN: Getting the Edge(.js)]