A maior rede de estudos do Brasil

Grátis
244 pág.
Desenvolvimento Web - MVC

Pré-visualização | Página 13 de 41

um comando SQL
Exercícios de Fixação
15 Crie um projeto do tipo Console Application chamado CustomizandoCodeFirstMigrations no
Visual Studio 2012 Express for Desktop.
16 Adicione ao projeto o Entity Framework através do Manage Nuget Packages.
17 Crie uma classe para representar a entidade Pessoa.
1 namespace CustomizandoCodeFirstMigrations
2 {
3 public class Pessoa
4 {
5 public int Id { get; set; }
6 public string Nome { get; set; }
7 public string Email { get; set; }
8 public string TelefoneFixo { get; set; }
9 public string Celular { get; set; }
10 }
11 }
Código C# 4.15: Pessoa.cs
18 Crie uma classe K19Context para mapear a entidade Pessoa para o banco de dados.
1 namespace CustomizandoCodeFirstMigrations
2 {
3 public class K19Context : DbContext
4 {
5 public DbSet <Pessoa > Pessoas { get; set; }
6 }
7 }
www.facebook.com/k19treinamentos 75
CODE FIRST MIGRATIONS 76
Código C# 4.16: K19Context.cs
19 Crie uma classe de teste que persiste um objeto da classe Pessoa no banco de dados.
1 namespace CustomizandoCodeFirstMigrations
2 {
3 class Program
4 {
5 static void Main(string [] args)
6 {
7 using (var db = new K19Context ())
8 {
9 Pessoa p = new Pessoa { Nome = "K19", Email = "contato@k19.com.br",
10 Celular = "(11) 2387 -3791", TelefoneFixo = "(11) 2387 -3792" };
11 db.Pessoas.Add(p);
12 db.SaveChanges ();
13 }
14 }
15 }
16 }
Código C# 4.17: Pessoa.cs
20 Altere a classe Pessoa para tornar obrigatório a propriedade TelefoneFixo. Renomeie também a
propriedade Celular para TelefoneCelular.
1 namespace CustomizandoCodeFirstMigrations
2 {
3 public class Pessoa
4 {
5 public int Id { get; set; }
6 public string Nome { get; set; }
7 public string Email { get; set; }
8 [Required]
9 public string TelefoneFixo { get; set; }
10 public string TelefoneCelular { get; set; }
11 }
12 }
Código C# 4.18: Pessoa.cs
21 Para que as alterações sejam refletidas no banco de dados, é necessário habilitar o Code First Mi-
grations no projeto. Execute o comando Enable-Migrations através do Package Manager Console.
22 Após habilitar o Code First Migrations no projeto, crie uma Migration que efetuará as operações
de alteração no banco de dados. Execute o comando Add-Migration AlteraTelefoneFixoERenomei-
aCelularDePessoa
23 Após a execução do comando Add-Migration, verifique que o arquivo criado irá remover a
coluna Celular da tabela, ao invés de renomeá-la.
1 namespace CustomizandoCodeFirstMigrations.Migrations
76 www.k19.com.br
77 CODE FIRST MIGRATIONS
2 {
3 using System;
4 using System.Data.Entity.Migrations;
5
6 public partial class AlteraTelefoneFixoERenomeiaCelularDePessoa : DbMigration
7 {
8 public override void Up()
9 {
10 AddColumn("dbo.Pessoas", "TelefoneCelular", c => c.String ());
11 AlterColumn("dbo.Pessoas", "TelefoneFixo", c => c.String(nullable: false));
12 DropColumn("dbo.Pessoas", "Celular");
13 }
14
15 public override void Down()
16 {
17 AddColumn("dbo.Pessoas", "Celular", c => c.String ());
18 AlterColumn("dbo.Pessoas", "TelefoneFixo", c => c.String ());
19 DropColumn("dbo.Pessoas", "TelefoneCelular");
20 }
21 }
22 }
Código C# 4.19: yyyyymmdds_AlteraTelefoneFixoERenomeiaCelularDePessoa.cs
Altere o arquivo de Migration para renomear a coluna, utilizando o método Rename.
1 namespace CustomizandoCodeFirstMigrations.Migrations
2 {
3 using System;
4 using System.Data.Entity.Migrations;
5
6 public partial class AlteraTelefoneFixoERenomeiaCelularDePessoa : DbMigration
7 {
8 public override void Up()
9 {
10 RenameColumn("dbo.Pessoas", "Celular", "TelefoneCelular");
11 AlterColumn("dbo.Pessoas", "TelefoneFixo", c => c.String(nullable: false));
12 }
13
14 public override void Down()
15 {
16 RenameColumn("dbo.Pessoas", "TelefoneCelular", "Celular");
17 AlterColumn("dbo.Pessoas", "TelefoneFixo", c => c.String ());
18 }
19 }
20 }
Código C# 4.20: yyyyymmdds_AlteraTelefoneFixoERenomeiaCelularDePessoa.cs
24 Após a alteração do arquivo de Migration, execute o comando Update-Database para alterar as
colunas no banco de dados e, posteriormente, verique que as colunas foram renomeadas.
Migração para uma versão específica
O Code First Migrations permite ao desenvolvedor fazer a migração para uma versão espe-
cífica. É possível, por exemplo, desfazer as alterações e voltar para uma versão anterior através do
comando Update-Database. Basta definir o nome da versão através do parâmetro -TargetMigration:
• Update-Database -TargetMigration:{NomeDaMigrationAnterior}
www.facebook.com/k19treinamentos 77
CODE FIRST MIGRATIONS 78
É possível também voltar para o estado inicial do banco de dados, executando o comando Update-
Database -TargetMigration:$InitialDatabase.
Gerando Script SQL
O Code First Migrations executa as alterações no banco de dados através do comando Update-
Database. O comando Update-Database gera script SQL também, basta adicionar o parâmetro
-Script, que ao invés de executar o comando diretamente no banco de dados, ele irá gerar o script
SQL que poderá ser visualizado ou salvo pelo usuário através do Visual Studio.
• Update-Database -Script -TargetMigration:AddTelefoneToEditora
Através do comando Update-Database é possível definir o estado inicial e a versão final para que
o script SQL contenha todas as alterações necessárias para atualizar o banco de dados.
• Update-Database -Script -SourceMigration:$InitialDatabase -TargetMigration:AddTelefone-
ToEditora
78 www.k19.com.br
VISÃO GERAL DO ASP.NET MVC
C
A
P
Í
T
U
L
O
5
Necessidades de uma aplicação web
HTTP
Os usuários de uma aplicação web utilizam navegadores (browsers) para interagir com essa apli-
cação. A comunicação entre navegadores e uma aplicação web é realizada através de requisições e
respostas definidas pelo protocolo HTTP. Dessa forma, os desenvolvedores de aplicações web devem
estar preparados para trabalhar com o protocolo HTTP.
Acesso simultâneo
Além disso, na grande maioria dos casos, as aplicações web devem ser acessadas por diversos
usuários ao mesmo tempo. Consequentemente, os desenvolvedores web devem criar ou utilizar
algum mecanismo eficiente que permita esse tipo de acesso.
Conteúdo dinâmico
As páginas de uma aplicação web devem ser geradas dinamicamente. Por exemplo, quando um
usuário de uma aplicação de email acessa a sua caixa de entrada, ele deseja ver todos os emails
enviados até aquele momento. A página contendo a lista de emails deve ser gerada novamente toda
vez que essa página for requisitada. Consequentemente, os desenvolvedores web devem criar ou
utilizar algum mecanismo eficiente que permita que o conteúdo das páginas das aplicações web seja
gerado dinamicamente.
www.facebook.com/k19treinamentos 79
VISÃO GERAL DO ASP.NET MVC 80
Aplicação
Web
Re
qu
is
iç
ão
 H
TT
PResposta H
TTP
Re
qu
isi
çã
o H
TT
P
Resposta HTTP
Re
qu
isi
çã
o H
TT
P
Resposta HTTP
www.k19.com.br www.k19.com.br www.k19.com.br
Cursos Artigos Apostilas
Figura 5.1: Necessidades de uma aplicação web
Solução
Resolver os três problemas apresentados tomaria boa parte do tempo de desenvolvimento, além
de exigir conhecimentos técnicos extremamente específicos por parte dos desenvolvedores. Para
facilitar o desenvolvimento de aplicações web, a plataforma .NET soluciona esses problemas funda-
mentais.
A plataforma .NET oferece os seguintes recursos fundamentais para o desenvolvimento de apli-
cações web:
• Envio e recebimento de mensagens HTTP.
• Acesso simultâneo das aplicações por vários usuários de uma maneira eficiente.
• Geração dinâmica das páginas das aplicações.
ASP.NET MVC
Atualmente, o ASP.NET MVC é o framework para desenvolvimento de aplicações web na pla-
taforma .NET em maior ascensão. A documentação desse framework pode ser obtida em http:
//www.asp.net/mvc. O ASP.NET MVC é fortemente