Yes, since the get-go .NET has targeted a VM called the CLR (the common language runtime). The biggest difference between the JVM and the CLR (initially) was that Microsoft designed the CLR to be mutli-language, whereas the JVM was written "just for java".