Esse artigo faz parte da revista SQL Magazine edição 61. Clique aqui para ler todos os artigos desta edição

imento. No entanto, tente observar como são estruturadas essas duas áreas: nós, DBA’s, devemos manter os bancos de dados em perfeitas condições para que as aplicações feitas pelos desenvolvedores possam recuperar dados consistentes e da forma mais eficiente possível.

Claro que tudo o que foi citado, ao final, se torna um trabalho em conjunto, mas note que os desenvolvedores dependem completamente dos DBA’s para que forneçamos o complemento para as suas aplicações, porém a dependência inversa dificilmente ocorre: dificilmente nós DBA’s precisamos dos desenvolvedores.

Vamos tentar imaginar um DBA que necessita plenamente do desenvolvedor. Estranho, não é verdade? O comum são as aplicações gerenciarem os bancos de dados, e não o contrário, ou seja, o banco de dados gerenciando a aplicação.

Conseguiram imaginar? Então agora pare e conheça mais um recurso do SQL Server que está presente na versão 2005 e agora também na versão 2008. O recurso que iremos destacar é bem conhecido entre os desenvolvedores .Net por Common Language Runtime, ou simplesmente CLR, e por todos os benefícios que este recurso proporciona, o SQL Server trouxe à partir da versão 2005 uma forma integrada deste recurso agregado ao mecanismo de banco de dados. Essa fusão é conhecida por SQLCLR.

Neste artigo, iremos entender um pouco sobre este recurso e identificar quais os benefícios de se possuir em seu banco de dados um código gerenciável, ou seja, utilizar recursos que as aplicações feitas pelos desenvolvedores fornecem, porém dentro do SQL Server. Veremos também um exemplo real de como aplicar o CLR baseado numa necessidade um tanto comum hoje em dia que é a exportação de informações para um documento em formato XML para um posterior envio para um cliente, fornecedor ou uma filial (técnica conhecida por EDI) e, a partir deste artigo, poder distinguir quando aplicar mais este recurso em nosso favor.

 

Introdução ao CLR (Common Language Runtime)

Atualmente, muitas linguagens de programação utilizam os conhecidos Runtimes (ver Nota DevMan 1), incluindo Visual C++, JScript, Microsoft Visual Basic, Perl e Java. Porém, o Common Language Runtime, ou simplesmente CLR, faz parte de um ambiente específico, que é o .Net Framework.

O CLR é responsável por gerenciar a execução das aplicações desenvolvidas em .Net. Por este motivo, todo código que o CLR gerencia é chamado de código gerenciado, e todo o processo que acontece internamente ao CLR faz parte do conceito de compilação just-in-time.

O fato dele fazer parte do .Net Framework é o diferencial deste ambiente, pois por meio do CLR ele garante suporte unificado a todas as linguagens de programação que rodam neste Framework e é justamente por essa forma de utilização genérica que esse ambiente também é chamado de ambiente gerenciado.

 

Nota DevMan 1. Runtime

Runtime é a fase em que uma aplicação está ativamente executando, pode-se dizer que ela acompanha a duração da execução desta aplicação do seu começo ao fim.

 

Um ambiente runtime pode fornecer diversos serviços para os processos da aplicação enquanto a mesma está processando. O principal objetivo do runtime é obter uma "plataforma independente" que forneça recursos necessários enquanto a aplicação está em execução.

 

Além do CLR, há diversos outros ambientes runtimes, por exemplo, um programa desenvolvido em Java poderá utilizar o Java Runtime Environment para prover serviços, por assim dizer, necessários para a correta execução da aplicação.

 

O maior objetivo do CLR é prover um ambiente que facilite o trabalho do desenvolvedor .Net, por isso podemos destacar algumas particularidades que este mecanismo nos oferece, tais como gerenciar a alocação de memória e garantir a segurança da aplicação e a precisão do código. Além disso, o CLR procura reduzir a quantidade de código escrito pelo desenvolvedor e ainda assim prover a lógica de negócio e transformá-la em um componente reutilizável.

CLR + SQL Server ...

Quer ler esse conteúdo completo? Tenha acesso completo