A Microsoft anunciou, em um post do time de ADO, que não vai mais desenvolver seu provider de ADO.Net para Oracle. A última versão é a que sai agora no .Net 4.0, e todas as classes estarão marcadas como obsoletas. No .Net vNext, todo o provider não vai mais existir no BCL.

A Oracle faz o próprio provider dela, o ODP.Net, e ele é gratuito e funciona bem. Em diversos pontos é melhor que o da Microsoft, em outros pior.

A Microsoft não anunciou, e pelo que vejo, nunca vai anunciar, um provider para Entity Framework para o Oracle.

O que isso tudo significa?

Na minha visão isso significa que a Microsoft aprendeu, já quando lançou o EF1, que não deve fazer o trabalho de outras empresas, incluindo aí o da concorrente Oracle. As empresas querem um provider para Oracle para o ADO.Net ou para o EF, que pressionem a Oracle para que entregue um.

Exigir da MS que faça um provider de Oracle para o ADO.Net é como exigir que ela faça um player de Flash para o IE, e não a Adobe, ou uma VM de Java para o Windows, e não a Sun (ou qualquer outra empresa que implemente as especificações do Java). No caso, ela até fazia uma JVM própria, mas parou com isso. Agora foi a vez do provider do Oracle.

O que eu acho disso tudo?

Acho mais do que certo. Primeiro porque não é do interesse de uma empresa ficar fazendo software para suportar aplicações de outras empresas. Segundo porque o time de ADO vai estar livre para investir mais no ADO. Terceiro porque libera a Microsoft de ter que ficar polindo um produto que pode ter bugs, e os bugs muitas vezes nem são seus, ou nem deviam estar sob responsabilidade dela para começar. Quarto porque a Microsoft dá claros sinais de fortalecimento ao ecossistema de parceiros quando faz esse tipo de coisa, já que algum parceiro poderá implementar o provider. E quinto, a Microsoft para de reinventar a roda, assumindo que o que há no mercado é bom o suficiente, e por isso ela não tem que ter a versão dela da tecnologia xyz.

(Esse quinto motivo é meio complicado. Muitas empresas não usam software se não for marcado a ferro com a marca Microsoft. É o caso de componentes de Mock, onde a Microsoft não possui uma alternativa. Muita empresa não usa porque a Microsoft não incentiva oficialmente – descontado o P&P, não fomenta o uso, já que não tem um produto para atender.)

 

Eu sei que algumas empresas vão sofrer, porque utilizam o provider da Microsoft. Então fica aqui a recomendação: se você usa, pare de usar já. Comece a migrar para o ODP.Net ou para outras alternativas, praticamente todas pagas (o lado bom é que algumas suportam EF). Quem começar a pensar nisso agora tem uns bons anos pela frente, já que a Microsoft ainda nem deve ter entrado em fase de concepção do .Net vNext.

Além do mais, código legado vai continuar funcionando e compilando. O único problema será quando você converter uma solução de .Net 4 ou inferior para o .Net vNext. Nesse caso, você vai ter que substituir o provider. Ainda que o ADO.Net abstraia todo o conceito de objetos concretos, eu pouquíssimas vezes vi alguém usando um DbCommand no lugar de um OracleCommand. Dá-lhe mão de obra para arrumar isso.

Aproveitando o problema que esse tipo de coisa vai gerar, deixo aqui algo para reflexão: se você sofrerá com isso, lembre-se que não teria tido problema se adotasse um ORM (se possível). Quem sabe não é a hora?


Postado na(s) categoria(s) Mapeadores O/R , .Net Framework pelo giovanni bassi em 24 de junho de 2009 às 01:20 | Tags:

Comentários


junho 24. 2009 02:12
Rafael Noronha
Interessante.

Concordo que não há porque oferecer o provider.

Sempre bom recomendar o uso de ORM's.
Afinal de contas ainda tem muita gente por aí jogando dinheiro fora com código desnecessário e "sujo".

http://rafanoronha.net/http://rafanoronha.net/


Brazil Daniel Araujo
junho 24. 2009 15:19
Daniel Araujo
Muito interessante vamos ver até quando eles vão bancar esta decisão promovendo um grau de interoperabilidade dos produtos microsoft com produtos de outros players. Atualmente 95% dos nossos clientes utilizam Oracle como SGBD. No nosso framework utilizamos um ORM (Gentle) quem é background utiliza o ADO.NET, no entanto através do pattern Factory utilizamos um modelo de implementação que encapsula o Oracle.Data.Access (ODP.NET). Funciona muito bem e possui um nível de desacoplamento considerável entre as classes de domínio do framework do Gentle.

no site


junho 26. 2009 10:48
Flávio H. de Carvalho
Giovanni,

para tudo nesta vida têm-se os prós e os contras e eu fico no mínimo preocupado com esta notícia. O não suporte do ADO a Oracle futuramente me preocupa pelo fato sempre ter baseado todas as minha aplicações nas classes de acesso a banco de dados OLEDB, que atendem a gregos e troianos. Sei que é muito mais "performático" utilizar um driver do próprio fabricante, mas havia feito minha escolha a alguns anos atrás de ter aplicações que pudessem migrar facilmente de banco pra banco sem muitas tratativas. Vejo que terei que repensá-las e lá se vai um monte de classes que eu tinha.

http://www.flaviohenriquedecarvalho.spaces.live.com/http://www.flaviohenriquedecarvalho.spaces.live.com/


junho 26. 2009 12:30
Giovanni Bassi
Flavio,
O Oledb não vai mudar... Só o nativo vai sair.

http://unplugged.giggio.net/http://unplugged.giggio.net/

Comentar


(Vai mostrar seu Gravatar)

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading



Quem é Giovanni Bassi

Giovanni Bassi Sou uma pessoa apaixonada por tecnologia e especificamente por .Net. Sou consultor independente especialista em .Net, focado em arquitetura e melhores práticas. Tenho dezenas de artigos publicados na .Net Magazine, revista da qual sou editor técnico. Ministro palestras e cursos de vez em quando, e quando dá tempo eu respiro um pouco. Mais detalhes nesta página.

Busca

Selos

MVP

MCPD

MCSD

.Net Magazine

Abaixo ao if!

Calendário

«  março 2010  »
seteququsedo
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
Ver detalhamento de posts no calendário

Blogs interessantes

    OPMLDownload OPML file

    Postagens recentes

    Comentários recentes

    Disclaimer / Aviso
    As opiniões colocadas neste blog são minhas e pessoais e não expressam necessariamente as opiniões de meus empregadores, pareceiros e amigos. Da mesma forma, os comentários feitos por leitores do blog não expressam a minha opinião.

    © Copyright 2010 .Net Unplugged
    Log in