The difference is that Microsoft created .Net and the patents covering it together, so they're fairly narrow patents and it'd be a hell of a lot harder to find relevant prior art to use against them. (The same's true of OOXML, incidentally; Microsoft even tried to get a patent covering both it and ODF but the examiner narrowed it to just OOXML based on a huge amount of prior art dating back to SGML in the 80s.)