Pesquisa .NET
Segundo Paulo Kraiser, escritor do site baguete.com, lá ele informa que apesar da SUN deter a marca Java, a mesma tornou a linguagem open source, deixando os usuários com livre acesso para fazerem alterações convenientes, já na plataforma .NET há algumas inciativas free, como projetos Momo e DotGNU, mas para que se possa aproveitar o máxima da plataforma será necessário adquirir o servidor Microsoft acompanhado do ambiente de desenvolvimento Visual Studio, sem isso o desenvolvimento ficará muito prejudicado sem falar que nada na Microsoft é opern source.
Se tratando em escalabilidade as duas plataformas tem balanceamento de mecanismos de carga. Existe uma grande diferença entre o J2EE e o .NET, é que o, NET suporta apenas Win32, seria necessário um número maior de máquinas, comparado ao J2EE devido as grandes limitações de processadores.
As duas tecnologias apresentam uma curva de aprendizado parecida, com a diferença de que o Java possui mais material para aprendizado na internet do que o .NET, que a sua principal fonte de conteúdo é o MSDN.
Bom, todos nós sabemos que Java e C# são linguagens robustas e ambas Orientada a Objetos, porem existem algumas pequenas diferenças entre elas que são:
Pacotes (packages) em Java um pacote representa fisicamente uma pasta, já em C# o namespace não está relacionado há uma pastas. A diferença aqui é apenas sintaticamente. (http://www.linhadecodigo.com.br/artigo/1620/java-e-csharpnet-um-breve-e-introdutorio-estudo-comparativo-de-suas-sintaxes-e-convencoes.aspx#ixzz3Bu0QKmil)
Em Java, as bibliotecas (classes) são importadas através da instrução import, que se situa abaixo da declaração do pacote ao qual a classe pertence. O C# também, obviamente, oferece este recurso, porém, de outra forma. As classes em C# são importadas através da instrução using e se encontram antes da declaração do namespace.