"Sem fanatismo , sem paixões , sem preconceitos , sem puxar a sardinha pra brasa de ninguém... Afinal o nosso negócio é o cliente..."
As plataformas .NET e J2EE possuem o foco para o mercado de aplicações corporativas e para Web Services. Farei uma rápida comparação onde tentarei mostrar as vantagens e desvantagens de ambos os frameworks.
A plataforma
J2EE é centrado na linguagem Java e é multplataforma ; .NET é centrado na plataforma Windows mas você pode usar diversas linguagens (VB.NET , C# , J# , Cobol ,etc...).
Todos os componentes que são distribuídos no framework J2EE (EJB , Servlets) são escritos em Java e a JVM somente pode ser usada com Java
O framework .NET esta baseado no CLR que permite o desenvolvimento em qualquer linguagem que for suportado pelas ferramentas Microsoft.
No J2EE você esta restrito a linguagem Java ; no .NET você esta restrito a plataforma Windows.
Considere os custos de manutenção , treinamento e padronização.
A Estratégia
J2EE é basicamente uma série de padrões ; .NET é um produto da estratégia Microsoft baseado na evolução do Visual Studio 6.0.
Por trás do padrão J2EE a Sun procurou reunir as maiores empresas de software afim de adaptar a interface J2EE. Estou falando de BEA , IBM e Oracle. .NET é um esforço quase que isolado da Microsoft para atingir o mercado de Web Services compartilhados.
Compatibilidade e Legado
É muito fácil a interligação com o código legado através da nova arquitetura JCA - Java Connector Architeture. .NET também oferece uma boa integração com o legado seu Server 2000 mas possui limitações de conectividade para selecionar sistemas.
Quanto a compatibilidade , a atualização do código VB 6.0 para VB.NET , apresenta sérios obstáculos devido a introdução dos novos conceitos de orientação a objeto ao VB.NET.
Interface de desenvolvimento rápida
Tanto J2EE como .NET oferecem ferramentas RAD. Mas a plataforma .NET possui uma melhor integração e um melhor IDE do que os vários frameworks disponíveis para Java.
Portabilidade
O JRE esta disponível para qualquer plataforma - Win32 , Unix , Mainframe , o que facilita muito a portabilidade das aplicações J2EE.
Quanto a plataforma .NET existe um esforço da Microsoft e da comunidade ( leia-se projeto MONO , SharpDevolp , etc..) em oferecer meios para que as aplicações .NET rodem em outras plataforma que não o Windows.
Minha experiência é muito positiva quanto a migração do código Java do Windows para OS/400. Quase nenhuma alteração foi necessária.
Suporte a Web Services
J2EE permite a colaboração eBusiness e Web Services através do JAXP (Java API para XML Parsing). Outras API´s estão sendo desenvolvidas para os Web Services.
.NET também suporta Web Services que estão sendo aperfeiçoados nas novas versões da plataforma. (A Microsoft ainda esta atrelada ao framework BizTalk com extensões propriedades do SOAP).
Neste quesito ambas ainda estão procurando se firmar neste segmento.
Vejamos a seguir uma comparação resumida quanto as tecnologias disponíveis em cada plataforma:
Serviços e características equivalentes:
Serviço |
.NET |
J2EE |
GUI - Interface com o usuário |
WinForms |
SWING e AWT |
Web GUI - interface Web |
ASP.NET |
JSP - Java Server Pages |
Web Scripting - Script Web |
ISAPI, HttpHandler, HttpModule |
Servlet, Filter |
Server Side Business Logic Component |
Serviced Component (COM+) |
EJB Session Beans |
Server side Data component |
Serviced Component (COM+) with DB Logic |
EJB BMP Entity Beans |
Server Side Data Component |
Object Spaces |
EJB CMP Entity Beans |
Naming |
ADSI |
JNDI |
Invocação Remota |
.NET Remoting |
RMI or RMI-IIOP |
Acesso aos Dados |
ADO.NET |
JDBC |
Messaging |
MSMQ |
JMS |
Transactions |
COM+ or MTS |
JTA |
Browser Code |
ActiveX |
Applets |
Security |
COM + Security Context |
JAAS |
Protocolos Distribuídos |
DCOM |
RMI/IIOP |
Servidores Web |
IIS |
Apache, NES, IIS, etc... |
Arquitetura N-camadas
Serviço |
.NET |
J2EE |
Camada de apresentação |
ASP.NET (code behind) |
JSP (Beans e Tags) |
Camada de lógica de negócios |
.NET Enterprise Service |
EJB - Enterprise Java Beans |
Camada de acesso aos dados |
ADO.NET |
JDO/JDBC |
Principais diferenças:
Diferenças |
.NET |
J2EE |
Portabilidade |
Windows (por enquanto...) |
Várias Plataformas |
Independência da linguagem |
Várias linguagens |
Java |
Independência de fornecedor |
Microsoft |
Padrão |
Componentes |
COM + Managed Components |
EJB |
Maturidade |
1 ano |
5 anos |
IDE |
Visual Studio .NET |
Vários |
Camada de apresentação |
Web Forms |
Java Server Faces |
Escalabilidade |
Em apreciação |
Em consolidação |
Desempenho |
Otimização plataforma |
Otimização linguagem |
SOAP |
Suporta |
Em adaptação |
Preço |
Comercial |
Depende |
Quem decide é o cliente; Ou nós vamos decidir por ele?
Marlon
A JSR 241 trata de suportar a linguagem groovy.
Pode ser vista neste link:
http://www.jcp.org/en/jsr/detail?id=241
Fillpe
Muito bom! Parabéns... Olha depois que eu li esse artigo pude perceber a importancia das duas plataformas. Deixo mais claro, que tudo depende da afinidade do programador, pois as duas tem conceitos muito parecidos. O que a gente deve saber é que devemeos nos preocupar com a qualidade dos sistemas e com o resultado final, tanto para .NET ou J2EE . Um abraço!
Francielle Oliveira da luz
Bom seu comentario deixa bem claro aquilo que muitas vezes ignoramos: o mundo éh captalista, vestir a camisa java impede o profissional de ganhar dinheiro com .net, ou o inverso por fim o cliente decide o produto, nós a poesia, em que lingua vamos escreve-la vai depender da situação.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.