Althmann Márcio Fábio - Desenvolvimento web com ASP.NET MVC стр 15.

Шрифт
Фон

Facilita a manutenção: o modelo disponibilizado pelos ORMs facilita e muito a manutenção da aplicação, pois a manipulação das operações se dá através de

código já conhecido (objetos e seus respectivos métodos);

Código elegante: o fato de o modelo mesclado de sentenças SQL e chamadas de métodos de objetos dar lugar a um código mais legível e semântico torna o

código fonte da aplicação mais elegante.

Para justificar as afirmações apresentadas na lista anterior, utilizaremos exemplos práticos. Imagine, por exemplo, que precisamos adicionar um novo cliente

na tabela fictícia de Clientes. Se optarmos pela utilização das classes nativas da plataforma .NET (ADO), poderíamos ter um trecho de código semelhante ao

apresentado pela listagem 2.

Listagem 4.2 - Conectando ao banco de dados e adicionado um novo cliente

via ADO:

string stringDeConexao =

"string para conexão com o banco de dados aqui";

45

4.2. Abordagens para a criação de Models

Casa do Código

SqlConnection objetoDeConexao = new SqlConnection(stringDeConexao);

SqlCommand objetoDeComando = objetoDeConexao.CreateCommand();

string sql = "INSERT INTO Clientes (NomeCompleto, Email)

values (@NomeCompleto, @Email)";

objetoDeComando.CommandText = sql;

objetoDeComando.CommandType = CommandType.Text;

objetoDeComando.Parameters.Add("@NomeCompleto", NomeCompleto.Text);

objetoDeComando.Parameters.Add("@Email", Email.Text);

objetoDeComando.ExecuteNonQuery();

O código apresentado pela listagem 2, como é possível observar, é bastante simples, entretanto, extenso e verboso. Para realizar a mesma operação utilizando um ORM para .NET, poderíamos ter um trecho de código semelhante ao apresentado

pela listagem 3.

Listagem 4.3 - Conectando ao banco de dados e adicionando um cliente atra-

vés de um ORM:

Clientes.Add();

Clientes.NomeCompleto = NomeCompleto.Text;

Clientes.Email = Email.Text;

Clientes.Save();

Tanto a listagem 2 quanto a listagem 3 apresentam códigos que executam a

mesma operação: adicionar um novo cliente ao banco de dados. Não é difícil ob-

servar a diferença exorbitante entre as abordagens. Enquanto temos muito código na primeira, temos uma redução considerável na segunda. Enquanto temos muitos

objetos em ação na primeira abordagem, temos bem poucos na segunda.

É importante observar, entretanto, que mesmo possuindo as vantagens já men-

cionadas neste capítulo, existem alguns gargalos relacionados aos ORMs e que, portanto, devem ser cuidadosamente analisados para não impactar de forma crítica durante o ciclo de vida da aplicação. O principal aspecto a ser considerado olhando-se por este prisma é a performance. Mas não se preocupe, voltaremos a discutir sobre isso quando estivermos trabalhando com o model de nossa aplicação exemplo.

Existe um grande número de ORMs disponíveis no mercado para o trabalho

dentro da plataforma .NET. Você deverá analisar cuidadosamente cada opção para escolher aquele que

melhor atende às necessidades do projeto. Evidentemente, alguns deles se destacam por serem reconhecidamente robustos, com boa documenta-

46

Casa do Código

Capítulo 4. Models: Desenhando os modelos da nossa aplicação

ção disponível e, também, por possuírem suporte. Em função disso, são amplamente utilizados em projetos mundo afora.

Para a aplicação Cadê meu médico, utilizaremos o Entity Framework (EF), um ORM distribuído gratuitamente pela Microsoft e que tem sido amplamente utilizado em projetos .NET. Na ocasião em que este livro foi escrito, a versão estável mais atual do EF era a 4.0.

4.3

O Entity Framework

EF, como o próprio nome sugere, é um framework do tipo ORM que permite tratar e manipular dados como classes e objetos de domínio. Por ser desenvolvido, mantido e disponibilizado pela Microsoft, ele se integra de forma otimizada às tecnologias disponíveis na plataforma .NET com performance, segurança e robustez. Por ser esta integração nativa, desenvolvedores podem utilizar também de forma natural dois grandes recursos da .NET framework: LINQ e expressões Lambda para recuperar e

manipular os dados necessários à aplicação.

Você pode saber mais sobre o Entity Framework através do link:

http://bit.ly/mvc-ef

Código primeiro?

Uma das vantagens proporcionadas por boa parte dos ORMs e propositalmente

não mencionada nas seção anterior é a possibilidade de escolher a forma de trabalho do ORM. Isto é, vamos nos basear primeiro no banco de dados físico ou o banco

de dados que será gerado será um reflexo de nossa estrutura de classes? Nesta seção discutiremos um pouco sobre as diferenças, vantagens e desvantagens entre estas abordagens.

O famoso code first

Imagine poder criar uma estrutura bem definida de classes (Clientes, Usuários, Fornecedores etc.) cujos atributos e métodos (Codigo, Nome, Razão Social etc.) poderão atuar em um momento posterior, como estruturas primárias (tabelas, chaves primárias, estrangeiras etc.) na criação da estrutura física de banco de dados no servidor. Legal, não?

Esta é uma das características funcionais do Entity Framework e é conhecido

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке