Be aware that combining a WinRT component written in a .NET language with JavaScript introduces a significant memory overhead, as you now have two managed environments (two garbage collectors) in the same process. I have a blog post that gives some details:
http://kraigbrockschmidt.com/blog/?p=497.
There's no rule against doing components in C#, but the overhead is something to be aware of. You'll want to decide whether using the APIs from .NET is worth that cost.
Kraig
Author,
Programming Windows 8 Apps with HTML, CSS, and JavaScript,
a free ebook from Microsoft Press