Atenção: esse artigo tem uma palestra complementar. Clique e assista!

Artigo no estilo: Curso
Do que trata o artigo

Neste artigo vamos criar uma aplicação completa de microblog utilizando ASP.NET. Este artigo será dividido em 3 etapas. Nesta segunda etapa, vamos criar base de dados e as entidades com o Entity Framework. Além disso, veremos como criar um repositório com os principais métodos. Por fim, será criada a interface com o usuário, utilizando os controles do ASP.NET.


Para que serve

O objetivo desta série de artigos é abordar todas as etapas de um projeto Web, desde a criação do layout, montagem do HTML, criação da base de dados, estruturação da camada de acesso a dados, integração dos objetos com a camada de apresentação e finalmente a criação de serviços REST para expor informações desejadas.

Em que situação o tema é útil

Saber todas as etapas de um projeto Web é essencial para qualquer programador. Desde a montagem do HTML a partir de uma imagem criada por um designer até a publicação no servidor de produção, existem muitas atividades que um bom desenvolvedor deve conhecer. Atrás de um exemplo prático veremos diversas boas práticas que podem lhe ajudar e muito a desenvolver produtos com mais qualidade.

Resumo do DevMan

Neste artigo vamos construir um microblog do início ao fim. Desde os conceitos mais básicos, passando pelo layout, montagem do HTML, banco de dados, camada de acesso a dados, integração com telas de apresentação, utilização de AJAX e até mesmo a criação de um serviço REST. É fundamental para qualquer profissional de TI conhecer as principais etapas de um projeto web. Nestes três artigos, veremos em detalhes como criar as principais partes que englobam o projeto, desde o “papel em branco” até a publicação da aplicação pronta em produção.

Na primeira parte deste artigo começamos com uma análise de alguns cenários típicos de projeto. Em seguida, iniciamos a parte prática com a criação do layout em um editor de imagem, construímos o nosso HTML baseado nesse layout e validamos sua construção no W3C. Por fim, criamos a base da nossa plataforma AJAX. Nesta segunda etapa criaremos a base de dados, as entidades e classes que serão acessadas pelo ASP.NET. Na terceira e última parte construiremos o serviço REST.

Entity Framework

O Entity Framework é uma ferramenta de ORM (Mapeamento Objeto/Relacional) similar ao NHibernate, que por sua vez é irmão do Hibernate da plataforma Java. Sua principal função é criar entidades conceituais (Entity Data Model – EDM) a partir de uma fonte de dados.

O conceito central no EDM são as entidades, que são instâncias de tipos de entidades estruturadas com uma chave, como por exemplo, Carro, Pessoa, Produto, Empresa. Cada entidade chave é formada a partir de um subconjunto de propriedades de uma entidade tipo, como CarroID, PessoaID, ProdutoID e EmpresaID, sendo assim possível identificar de forma única as instâncias de entidades e permitir que elas participem de relacionamentos ou executem operações como atualizar ou apagar. O EDM também possui suporte à LINQ, sendo possível fazer consultas utilizando esta nova e flexível tecnologia. Mais adiante no artigo veremos como criar instruções LINQ com o EDM.

Base de dados

O mais comum quando utilizamos o Entity Framework é pensar em utilizar o SQL Server como servidor de banco de dados e você, como desenvolvedor .NET, acredito que provavelmente já tenha experiência com essa plataforma. Entretanto, para mostrar a flexibilidade do Entity Framework, quero utilizar outra base de dados, não relacionada com a Microsoft. Optei em escolher o MySQL como base de dados. Se preferir utilizar outra compatível com o Entity Framework fique à vontade. Você verá que as tabelas são bem simples e podem ser replicadas em praticamente qualquer base de dados, necessitando de apenas poucos ajustes. Para simplificar não vou criar nenhum relacionamento, embora o Entity Framework tenha um bom suporte para relacionamentos. Em projetos do “mundo real” é fortemente recomendável que você crie suas bases de dados utilizando o conceito de relacionamentos.

A Tabela 1 ilustra os campos da tabela de cadastro “tblcadastro”. Esta tabela armazenará os dados de usuários do DevTwit. A tabela “tblfollow” (Tabela 2) registra quais usuários são seguidos por quem. A Tabela 3 ilustra os dados da tblpost. Para saber qual usuário postou a mensagem é utilizado o campo CadastroID. A mensagem é salva no seu campo, bem como a data. Se a mensagem for uma resposta a outra, o ID da mensagem original é salvo no campo PostID. Por fim, a Tabela 4 salva se a mensagem (post) é favorita para um usuário. Caso positivo o ID do post e do usuário são salvos na tabela “tblpostfavorito”.

Para configurar a base de dados MySQL na sua máquina basta acessar o link disponível ao final do artigo e efetuar o download da última versão. A que estou utilizando é a versão 5.1. A instalação é muito simples, após o download basta executar o arquivo e seguir com o wizard, a não ser que você queira efetuar alguma configuração especial. Geralmente o primeiro acesso é criado com o usuário “root” e senha vazia. É altamente recomendado alterar este acesso. Na Listagem 1 está disponível o código de criação das tabelas mostradas anteriormente.

Costumo utilizar dois utilitários com o MySQL, o MySQL GUI Tools, que inclui três ferramentas: Administrator, Query Browser e Migration Toolkit e também o SQLyog. Este último possui uma versão grátis e outra paga. É preciso instalar também o MySQL .Net Connector, cujo link também está disponível na seção de links ao final do artigo. Recomenda-se instalar a última versão disponível.

Campo

Tipo

ID

int(11)

PK

Nome

varchar(255)

Email

varchar(255)

Senha

varchar(50)

Tabela 1. Campos da tabela de tblcadastro

Campo

Tipo

CadastroID

int(11)

PK

Seguindo_CadastroID

int(11)

PK

Tabela 2. Campos da tabela tblfollow

Campo

Tipo

ID

int(11)

PK

CadastroID

int(11)

Data

datetime

Mensagem

varchar(140)

PostID

int(11)

Tabela 3. Campos da tabela tblpost

Campo

Tipo

CadastroID

int(11)

PK

PostID

int(11)

PK

Tabela 4. Campos da tabela tblpostfavorito

Listagem 1. Script de criação da base dados


      1 CREATE TABLE `tblcadastro` (
      2    `ID` int(11) NOT NULL AUTO_INCREMENT,
      3    `Nome` varchar(255) NOT NULL,
      4    `Email` varchar(255) NOT NULL,
      5    `Senha` varchar(50) NOT NULL,
      6    PRIMARY KEY (`ID`)
      7  ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
      8 
      9 CREATE TABLE `tblfollow` (
     10    `CadastroID` int(11) NOT NULL DEFAULT '0',
     11    `Seguindo_CadastroID` int(11) NOT NULL DEFAULT '0',
     12    PRIMARY KEY (`CadastroID`,`Seguindo_CadastroID`),
     13    KEY `FK_seguindo_cadastro_follow` (`Seguindo_CadastroID`)
     14  ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     15 
     16 CREATE TABLE `tblpost` (
     17    `ID` int(11) NOT NULL AUTO_INCREMENT,
     18    `CadastroID` int(11) NOT NULL,
     19    `Data` datetime NOT NULL,
     20    `Mensagem` varchar(140) NOT NULL,
     21    `PostID` int(11) NOT NULL,
     22    PRIMARY KEY (`ID`),
     23    KEY `FK_tblpost` (`CadastroID`)
     24  ) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=latin1;
     25 
     26 CREATE TABLE `tblpostfavorito` (
     27    `CadastroID` int(11) NOT NULL DEFAULT '0',
     28    `PostID` int(11) NOT NULL DEFAULT '0',
     29    PRIMARY KEY (`CadastroID`,`PostID`),
     30    KEY `FK_post` (`PostID`)
     31  ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ... 

Quer ler esse conteúdo completo? Tenha acesso completo