Académique Documents
Professionnel Documents
Culture Documents
br/criando-crud-com-asp-net-web-forms-4-5/
A Microsoft lanou recentemente o novo Framework Web Forms 4.5, que herdou muitas features do
asp.net MVC. Vou falar sobre2novas funcionalidades do mesmo.
Vou criar uma aplicao bem simples para mostrar as novas funcionalidades.
Vou usar Visual Studio 2013 e Entity Framework 6. Voc pode usar o visual studio 2012 e o EF anterior ao
6.
O Code First desenvolver sem ter que abrir um designer ou denir um arquivo de mapeamento XML
Abordagem de conveno sobre congurao que permite a persistncia de banco de dados sem
congurar nada explicitamente
Opcionalmente substituir a persistncia baseada em conveno e usar uma API de cdigo uente para
personalizar completamente o mapeamento persistncia.
Ele mapea nossas classes e transforma em tabelas do nosso banco de dados. Faz isso de forma
automtica.
Primeiro, crie um novo projeto do tipo Web Forms com framework 4.5.
Dentro do projeto crie uma pasta chamada Model. Dentro dela, crie uma nova classe chamada
ClienteModel conforme a imagem a seguir:
Anotaes:
Key Identica o id da nossa classe. Esse ser o id da tabela. Pois nossa classe representa uma tabela
do banco.
EmailAddress Ele valida o campo para receber um email vlido
DataType(DataType.Date) Formatao do campo data.
Depois de ter criado a classe cliente, vamos criar o DbContext dentro da pasta Model. Crie uma nova
pasta chamada ExemploDbContext. Dentro da pasta crie uma nova classe chamada DbContextExemplo.
A classe tem que herdar deDbContext. Ele vai gerar o nosso banco de dados de forma automtica.
Dentro da classe temos um construtor chamando a classe base de conexo. Esse nome exemplo, o
nome que dei ao nosso banco, o nome da connection string que ca no webCong.
O DbSet uma representao de tipo de coleo genrica de um conjunto de tipos de entidade. Por
exemplo, voc pode ter um DbSet <Cliente> chamada Clientes que uma propriedade de uma classe de
contexto. Manipulamos nosso objeto por meio dele.
Voc pode criar outra classe. Por exemplo, a classe endereo. Depois adicionar ela na classe
DbContext: DbSet<Endereco> Endereos.
Dentro da pasta Model, crie uma classe chamada ClienteCrud. Voc poderia criar uma interface com os
mtodos, mas vou criar somente aclasse. Crie a mesma conforme a imagem abaixo:
Perceba que estou usando o Entry do Entity Framework. Ele obtm oobjeto para a entidade dada
fornecendo acesso a informaes sobre a entidade e a capacidade de executar aes na entidade.
Podemos manipular o estado da entidade. Ento em um nico mtodo, realizo o insert e o update.
Temos tambm o mtodo Delete que bem simples. O EntityState um Enum criado pelo EF. Podemos
observar a facilidade que usar Entity Framework.
Vamos agora modicar aDefault.aspx. Adicione um formview na pgina como mostra a imagem abaixo:
Depois, vamos adicionar um gridView. Congure o mesmo como mostra a imagem abaixo:
A verso 4.5 traz uma nova funcionalidade para os controles. Eles agora so fortemente tipados.
Perceba que no formView temos o itemType e dentro dele passo a classe ClienteModel. Estou
associando o meu objeto a ele.
Dentro do nosso formView temos umValidationSummary para validar os campos que esto usando
data annotation.
Voc pode usar essas variveis fortemente tipadas nas expresses de ligao de dados e obter todos os
benefcios da experincia de desenvolvimento do Visual Studio.
Na propriedadeInsertMethod, foi criado o mtodo para adicionar um novo cliente. Dentro dele temos o
mtodo TryUpdateModel. No esquea de colocar ele, se no vai dar error de validao. Faa conforme
mostra a imagem abaixo no code behind da pagina:
Nosso GridView tambm ser fortemente tipado. Na imagem acima no colocamos nada no page load
para carregar o grid. No mais necessrio. Crie um gridview com 2 link buttons como mostra a
imagem abaixo:
Perceba que ele tambm tem a propriedadeItemType para torna-lo fortemente tipado. Para carregar o
gridview, no usamos mais o DataSource. Temos que criar um mtodo para carregar o mesmo. Na
imagem acima, coloquei a propriedadeSelectMethod=CarregarGrid.
Eu criei esse mtodo na minha classe ClienteCrud e chamei ele na default.aspx.cs. Verique a imagem
abaixo na classe ClienteCrud.
Quando rodar o projeto, o Entity Framework vai gerar o banco de forma automtica.
Nosso projeto rodando. Verique se o seu projeto est igual ao da imagem abaixo:
Vamos voltar ao nosso gridView e colocar um comando
chamadoOnRowCommand:OnRowCommand=gridDados_RowCommand. Este evento ocorre quando
um boto clicado em um controle gridView.
1 <asp:LinkButtonID="LinkButton1"runat="server"CausesValidation="False"
CommandName="Excluir"OnClientClick="returnconfirm('Desejaexcluir?')"
CommandArgument='<%#:Item.Id%>'Text="Excluir"></asp:LinkButton>
Adicionei um simples conrm do javascript. Se clicar em sim, ele vai excluir se no, ele cancela. Muito
simples.
Podemos ver na imagem acima que dentro do mtodo RowCommand do gridView, vamos acessar o
linkbutton dentro dele por meio doGridViewCommandEventArgs. Fiz um switch se o evento for
e.CommandName, que l na grid est como Excluir e Editar, ele faz determinada ao.
Oe.CommandArgument vai pegar o id de cada linha associada ao commandName.
Volte ao html. Vamos usar oAjaxControlToolkit para facilitar nossa vida. Mas voc pode usar jquery
dialog.
Quando clicar em editar, vai abrir uma modal para alterar os dados.
Criei um panel e dentro dele coloquei outro como cabealho. Tambm os controles, textbox e button
para adicionar ou cancelar.
1 <styletype="text/css">
2 .modalPopup{
3 background:#FFFFFF;
4 }
5 </style>
Volte ao code behind da pagina e adicione o mtodo:CarregarModale depois chame ele dentro do
RowCommand do gridView:
Volte a pagina html e adicione um mtodo onclick no button salvar que est dentro do panel:
1 <asp:ButtonID="btnSalvar"runat="server"Text="Salvar"
OnClick="btnSalvar_Click"/>
Terminamos nosso pequeno projeto. Fiz bem simples para melhor entendimento. Mas voc pode
melhora-lo conforme sua necessidade.
Alterando:
Dados alterados:
Faa download do projeto: Criando CRUD com Asp.Net Web Forms 4.5
Related Posts:
1. Enviando anexo em e-mail com ASP.NET
2. Dica Converter um DataSet em XML
3. Como Programar com ASP.NET e C# Editora Novatec
4. Como Melhorar a Performance de WebSites .NET Editora Novatec
ASP.NET, C#, Visual Studio ASP.NET, ASP.NET MVC, Code First, CRUD, Data Annotations, Entity Framework, Entity
Framework 6, Visual Studio 2012, Visual Studio 2013, WebForm
Anterior Prximo
Introduo ao Hacking e aos Testes de Invaso Como saber se um aplicativo .NET 32 ou 64 bits
Editora Novatec
Denilson disse:
21 de maro de 2014 s 14:44
Responder
Felipe disse:
22 de maro de 2014 s 22:53
Tambm tive problemas para executar o exemplo. Seria muito interessante ter acesso ao fonte.
Responder
blz. Vou postar o fonte amanh. Mas qual tipo de problema vocs esto tendo ?
Responder
https://github.com/binhoph/Exemplo
Responder
Marcos disse:
31 de maro de 2014 s 17:28
Boa tarde, utilizei esse tutorial para criar uma aplicaao web para a faculdade, porem o meu banco no
esta sendo criado. Como resolver? Fiz igual esta acima e o banco nao cria
Responder
Responder
junior disse:
1 de abril de 2014 s 20:54
Responder
Esteves disse:
10 de abril de 2014 s 17:43
Fico no aguardo.
Obrigado!
Responder
Responder
Chama esse mtodo no page load da pagina e coloca o texbox como parmetro.
Responder
Pedro disse:
1 de julho de 2014 s 12:51
No seria melhor usar um CRUD separado por 4 Camadas? Viso, Entidades, DAL, Controller? E um
CRUD um pouco mais completo tambm, utilizando mais entidades com associaes entre eles. Melhor
ensinar da forma correta. Abs.
Responder
Ol Pedro, a ideia do Paulo Henrique transmitir conhecimento bsico sobre o CRUD com ASP.NET
WebForms 4.5 e no fazer um abordagem aprofundada e to pouco as melhores prticas.
Se voc estiver disposto a colaborar, bem vindo. Basta entrar em contato. Poder publicar artigos
com essa abordagem.
Ficaremos imensamente grato com sua colaborao com a comunidade e com o C# Brasil.
Responder
Comentrio
Nome *
E-mail *
Site
Publicar comentrio
Copyright 2017 Raphael Cardoso. Todos os direitos reservados. | Catch ResponsiveporCatch Themes