C# has closures but not when evented. That's the problem with these Language X to js projects. No language is really like JavaScript. Except CoffeeScript, of course. I'm sure you can write clean C# dom code but it won't be like js or like Silverlight. It will need new patterns.