java-c#
Case-sensitive Java é compilada para um bytecode que é execultado por uma máquina virtual. Fortemente tipada: isso ajudará evitar erros por manipulação imprópria de tipos, atribuições incorretas etc. compilado para IL "Intermediate Language". Java ultiliza conceitos orientados a objetos. Gera código gerenciado: assim como o ambiente .NET é gerenciado, assim também é a linguagem C#.
A programação é feita, não para o S.O., mas para a plataforma .net portabilidade - Independencia de plataforma. Tudo é um objeto: System. Object é a classe base de todo o sistema de tipos de C#.
Extensa biblioteca de classes, organizada por espaço de nome Recursos de rede - possui vasta biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP. Suporte a código legado: o C# pode interagir com código legado de objetos COM e DLLs escritas em uma linguagem não -gerenciada.
.net oferece segurança baseada em código. Windows oferece segurança baseada em roles Segurança - Pode executar programas via rede com restrições de execução. Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo de desenvolver código não-gerenciado, chamado ”unsafe”.
.net oferece segurança baseada em código. a segurança baseada em código permite determinarmos que o programa não deve executar determinadas operações, como por exemplo, ler ou gravar variáveis de ambiente, alterar o registro do Windows, etc. Carga dinamica de Códigos - porgramas em java são formados por uma coleção de classes armazenadas independentemente e que podem ser carregadas no momento da ultilização. Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente gerenciado, o que significa que todo o gerenciamento de memória é feito pelo runtime via o GC (Garbage Collector), e não diretamente pelo programador, reduzindo as chances de cometer erros comuns a linguagens de programação onde o gerenciamento da memória é feito diretamente pelo programador.