Vous êtes sur la page 1sur 68

Diemesleno Souza Carvalho Innfomaster T.I.

Sobre o mini-curso Objetivos Programao para Web Linguagens dinmicas e estticas Programao em camadas MVC Desenvolvimento sistema exemplo Concluso

No um curso de algoritmo. No um curso de programao. No um curso de Orientao a Objetos. No um curso de estrutura de dados. No um curso de SQL. No um curso de design. um curso que engloba todos os tens listados acima de forma bsica e algumas coisas a mais.

No torna-lo um expert em desenvolvimento para web. sim, faz-lo compreender melhor o processo de desenvolvimento de softwares para a internet de forma gil.

Diferente da programao Desktop Extremamente complexa Extremamente dinmica Extremamente trabalhosa Extremamente prazerosa

Linguagens dinmicas
Rodam do lado do servidor (Server Side) Interagem com banco de dados C#, Java, PHP, Python, Ruby, Lua

Linguagens estticas
Rodam do lado do cliente (Client Side) Interagem com o usurio Javascript, CSS

M
Model Representa o modelo de dados dos objetos Mantm as regras de negcios dos objetos

V
View Representa a parte visual da aplicao Web, Desktop, Mobile

C
Controller Controla as aes entre o model e a view

Criar banco de dados (1) Criar tabelas no banco (2) Criar a soluo (3) Criar um projeto Web Application (4) Criar um projeto Class Library (DAO) (5) Criar um projeto Class Library (DCL)(6) Criar um arquivo dbml (7)

Conectar base de dados (8) Mapear banco no dbml (9) Configurar o web.config (10) Configurar referncias (11) Criar a classe Recursos (DCL) (12) Criar a BaseDCL.class (13) Criar a BaseDAO.class (14) Criar a classe Categoria (DCL) (15) Criar a classe CategoriaDAO (DAO) (16)

Criar a classe Produto (DCL) (17) Criar a classe ProdutoDAO (DAO) (18) Criar a master page (19) Configurar a master page (20) Criar a pgina com CRUD da Categoria (21) Criar a pgina com CRUD do Produto (22) Testar a aplicao (23) Finalizar aplicao (24) Preparar a publicao (25)

1. 2. 3. 4. 5.

Abrir o SQL Management. Em Security clicar com boto direito em Login e selecionar new login. Criar p usuario sistemadba com senha 515t3m4db4. Em Databases, clicar com boto direito em new database. Definir miniCurso para o nome.

1. 2. 3. 4. 5.

Ainda no SQL Management Clique com o boto direito no banco criado e selecione New Query. Copie o contedo do arquivo miniCurso.SQL para a query e execute. Confira se as tabelas foram criadas. Feche o SQL Management.

1. 2. 3. 4.

Abra o Visual Studio 2008. Clique em File->New->Project. Na guia Other Project Types selecione Visual Studio Solutions. D o nome de miniCursoSLN.

1. 2. 3.

Em Solution Explorer clique com o boto direito na soluo e selecione Add->New Project. Na guia Visual C# selecione Web->ASP.NET Web Application . D o nome de miniCursoAPW.

1. 2. 3.

Em Solution Explorer clique com o boto direito na soluo e selecione Add->New Project. Na guia Visual C# selecione Windows->Class Library . D o nome de miniCursoDAO.

1. 2. 3.

Em Solution Explorer clique com o boto direito na soluo e selecione Add->New Project. Na guia Visual C# selecione Windows->Class Library . D o nome de miniCursoDCL.

1.

2. 3.

Em Solution Explorer clique com o boto direito no projeto miniCursoDCL e selecione Add-> New Item. Selecione a categoria Data->LINQ to SQL CLASSES . D o nome de miniCurso.

1. 2. 3. 4. 5. 6. 7.

Em Server Explorer clique com o boto direito em Data Conections e selecione Add Conection. Em Server name coloque o nome do servidor de banco de dados nomeMaquina\SQLEXPRESS. Selecione a opo Use SQL Server Authentication. Em User name coloque sistemadba. Em Password coloque 515t3m4db4 (Save my password). Em Select or enter a database name digite miniCurso. Clique em Test Connection

1. 2. 3. 4.

Em Server Explorer expanda as tabelas do banco miniCurso da conexo criada. Selecione todas as tabelas e arraste para o arquivo miniCurso.dbml aberto. Salve o arquivo miniCurso.dbml. Clique em Build->Rebuild Solution.

1. 2.

Em Solution Explorer abrir o arquivo web.config Antes de fechar a tag </configSettings> adicione o contedo abaixo:

<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="miniCursoAPW.Properties.Settings type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> </sectionGroup>

3.

Abaixo da tag <system.web> adicionar:


<globalization culture="pt-BR" uiCulture="pt-BR" enableClientBasedCulture="true"/>

4.

Abaixo da tag </configSettings> adicione:

<connectionStrings> <add name="ConnMiniCursoDesenvolvimento" connectionString="Data Source=NomeMaquina\SQLEXPRESS;Initial Catalog=miniCurso;Persist Security Info=True;User ID=sistemadba;Password=515t3m4db4" providerName="System.Data.SqlClient"/> <add name="ConnMiniCursoHomologacao" connectionString="Data Source=NomeMaquina\SQLEXPRESS;Initial Catalog=miniCurso;Persist Security Info=True;User ID=sistemadba;Password=515tem4db4" providerName="System.Data.SqlClient"/> <add name="ConnMiniCursoProducao" connectionString="Data Source=NomeMaquina\SQLEXPRESS;Initial Catalog=miniCurso;Persist Security Info=True;User ID=sistemadba;Password=515t3m4db4" providerName="System.Data.SqlClient"/> </connectionStrings>

5. 6. 7.

Na tag <compilation debug> colocar como true Na tag <authentication mode> colocar como Forms Antes de fechar a tag <httpHandlers> adicionar:

<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>

8.

Antes de fechar a tag </configuration> adicionar:


<appSettings> <add key="AppAmbiente" value="Desenvolvimento"/> <add key="VirtualPath" value=""/> </appSettings> <system.web> <httpRuntime maxRequestLength="102400"/> </system.web>

1.

No Solution Explorer expanda o projeto miniCursoAPW e no diretrio References adicione as seguintes:


AjaxControlToolkit miniCursoDAO miniCursoDCL System.Runtime.Serialization System.ServiceModel System.Transactions

2.

Expanda agora o projeto miniCursoDAO e adicione as seguintes referncias:


miniCursoDCL System.configuration System.Data.Linq System.Transactions

3.

Expanda o projeto miniCursoDCL e adicione as seguintes referencias:


System.configuration System.Drawing System.Web

1.

No projeto miniCursoDCL crie uma nova classe com o nome Recursos. Adicione os seguintes usings:
using System.Web.UI.WebControls; using System.IO; using System.Web; using System.Configuration; using System.Web.Security;

2.

3.

Torne a classe Pblica.

4.

Crie o seguinte mtodo:

public static string RetornarStringConexao() { string AppAmbiente = ConfigurationManager.AppSettings["AppAmbiente"].ToString().ToLower(); string strConexao = string.Empty; switch (AppAmbiente) { case "producao": strConexao = ConfigurationManager.ConnectionStrings["ConnMiniCursoProducao"].ConnectionString; break; case "homologacao": strConexao = ConfigurationManager.ConnectionStrings["ConnMiniCursoHomologacao"].ConnectionString; break; default: strConexao = ConfigurationManager.ConnectionStrings["ConnMiniCursoDesenvolvimento"].ConnectionString; break; } return strConexao; }

4.

Dentro do projeto miniCursoDCL crie uma classe com o nome de BaseDCL. Adicione os seguintes usings:
using System.Runtime.Remoting.Messaging; using miniCursoDCL;

5.

6.

Altere o namespace para miniCursoBaseDCL. Altere o tipo da classe para Publica Abstrata. Crie a seguinte variavel dentro do mtodo da classe:

7.

8.

internal miniCursoDataContext sdc = (miniCursoDataContext)CallContext.GetData("miniCursoDataContext");

9.

Logo abaixo da varivel criada, crie o mtodo abaixo:

public BaseDCL() { if (sdc == null) { sdc = new miniCursoDataContext(Recursos.RetornarStringConexao()); CallContext.SetData("miniCursoDataContext", sdc); } }

1.

No projeto miniCursoDAO crie uma classe com o nome BaseDAO. Adicione os seguintes usings:
using System.Runtime.Remoting.Messaging; using miniCursoDCL;

2.

3.

Mude o namespace para miniCursoBaseDAO. Troque o tipo da classe para Pblica Abstrata. Crie a seguinte varivel dentro da classe:

4.

5.

internal miniCursoDataContext dataContext = (miniCursoDataContext)CallContext.GetData("miniCursoDataContext");

6.

Crie o seguinte mtodo logo abaixo da varivel criada anteriormente:

public BaseDAO() { if (dataContext == null) { dataContext = new miniCursoDataContext(Recursos.RetornarStringConexao()); CallContext.SetData("miniCursoDataContext", dataContext); } }

1.

Dentro do projeto miniCursoDCL crie uma classe com o nome Categoria. Adicione o seguinte using:
using miniCursoBaseDCL;

2.

3.

Mude o tipo da classe para Pblica Parcial e extenda a classe BaseDCL.

4.

Crie o seguinte mtodo dentro da classe:

public bool Validar() { try { bool flag = true; if (string.IsNullOrEmpty(this.desCategoria)) { flag = false; } return flag; } catch (Exception) { throw; } }

1.

Dentro do projeto miniCursoDAO crie uma classe com o nome CategoriaDAO. Adicione os seguintes usings
using System.ComponentModel; using miniCursoBaseDAO; using miniCursoDCL;

2.

3.

Torne a classe Pblica e extenda a classe BaseDAO Adicione logo acima do nome da classe o seguinte:
[System.ComponentModel.DataObject]

4.

5.

Dentro do projeto miniCursoDAO crie uma classe com o nome . Crie o seguinte mtodo (Select com filtro):

6.

[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Categoria> ObterListaComFiltro() { var query = (from c in dataContext.Categorias where c.flaStatus != 'E' select c); return query.ToList(); }

7.

Crie o seguinte mtodo (Select sem filtro):

[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Categoria> ObterLista() { var query = (from c in dataContext.Categorias select c); return query.ToList(); }

7.

Crie o seguinte mtodo (Select Por Cdigo):

public Categoria buscaPorChave(int idCategoria) { try { Categoria tpCategoria = dataContext.Categorias.Where(tr => tr.idCategoria = idCategoria).SingleOrDefault(); if (tpCategoria != null) { return tpCategoria; } else { return null; } } catch (Exception) { throw; } }

7.

Crie o seguinte mtodo (Insert):

[DataObjectMethod(DataObjectMethodType.Insert, false)] public void Inserir(Categoria tpCategoria) { try { if (tpCategoria.Validar()) { dataContext.Categorias.InsertOnSubmit(tpCategoria); dataContext.SubmitChanges(); } } catch { throw; } }

7.

Crie o seguinte mtodo (Update):

[DataObjectMethod(DataObjectMethodType.Update, false)] public void Alterar(Categoria tpCategoria) { try { Categoria categoria = buscaPorChave(tpCategoria.idCategoria); if (categoria != null) { categoria.desCategoria = tpCategoria.desCategoria; if (categoria.Validar()) { dataContext.SubmitChanges(); } } } catch (Exception) { throw; } }

7.

Crie o seguinte mtodo (Delete - Lgico):

public bool exclui(int idCategoria) { bool atualizou = false; try { Categoria tpCategoria = dataContext.Categorias.Where(tr => tr.idCategoria == idCategoria).SingleOrDefault(); if (tpCategoria != null) { tpCategoria.flaStatus = 'E; dataContext.SubmitChanges(); atualizou = true; } } catch (Exception) { throw; } return atualizou; }

1.

No projeto miniCursoDCL crie uma classe com o nome Produto. Adicione o seguinte using:
using miniCursoBaseDCL;

2.

3.

Modifique a classe para Pblica Parcial e extenda a classe BaseDCL.

4.

Dentro da classe, crie o seguinte mtodo:

public bool Validar() { try { bool flag = true; if (string.IsNullOrEmpty(this.desProduto)) { flag = false; } return flag; } catch (Exception) { throw; } }

1.

Dentro do projeto miniCursoDAO crie a classe ProdutoDAO. Adicione os seguintes usings:


using System.ComponentModel; using miniCursoBaseDAO; using miniCursoDCL;

2.

3.

Modifique o tipo da classe para Pblica e extenda a classe BaseDAO. Adicione a seguinte linha logo acima do nome da classe:
[System.ComponentModel.DataObject]

4.

5.

Crie o seguinte mtodo. (Select com filtro)

[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Produto> ObterListaComFiltro() { var query = (from p in dataContext.Produtos where p.flaStatus != 'E' select p); return query.ToList(); }

5.

Crie o seguinte mtodo. (Select sem filtro)

[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Produto> ObterListaComFiltro() { var query = (from p in dataContext.Produtos select p); return query.ToList(); }

5.

Crie o seguinte mtodo. (Select com join)

[DataObjectMethod(DataObjectMethodType.Select, false)] public object ObterListaModify() { var query = (from p in dataContext.Produtos join c in dataContext.Produtos on p.idProduto equals c.idProduto select new { idProduto = p.idProduto, desProduto = p.desProduto, idCategoria = p.idCategoria, desCategoria = c.desCategoria, flaStatus = p.flaStatus }); return query.ToList(); }

5.

Crie o seguinte mtodo. (Select por chave)

public Produto buscaPorChave(int idProduto) { try { Produto tpProduto = dataContext.Produtos.Where(tr => tr.idProduto == idProduto).SingleOrDefault(); if (tpProduto != null) { return tpProduto; } else { return null; } } catch (Exception) { throw; } }

5.

Crie o seguinte mtodo. (Insert)

[DataObjectMethod(DataObjectMethodType.Insert, false)] public void Inserir(Produto tpProduto) { try { if (tpProduto.Validar()) { dataContext.Produtos.InsertOnSubmit(tpProduto); dataContext.SubmitChanges(); } } catch { throw; } }

5.

Crie o seguinte mtodo. (Update)

[DataObjectMethod(DataObjectMethodType.Update, false)] public void Alterar(Produto tpProduto) { try { Produto produto = buscaPorChave(tpProduto.idProduto); if (produto != null) { produto.desProduto = tpProduto.desProduto; produto.idCategoria = tpProduto.idCategoria; if (produto.Validar()) { dataContext.SubmitChanges(); } } } catch (Exception) { throw; } }

5.

Crie o seguinte mtodo. (Delete - Lgico)

public bool exclui(int idProduto) { bool atualizou = false; try { Produto tpProduto = dataContext.Produtos.Where(tr => tr.idProduto == idProduto).SingleOrDefault(); if (tpProduto != null) { tpProduto.flaStatus = 'E'; dataContext.SubmitChanges(); atualizou = true; } } catch (Exception) { throw; } return atualizou; }

1.

No projeto miniCursoAPW clique com o boto direito e selecione Add->New Item. Na categoria Visual C# selecione Master Page e d o nome de miniCurso.

2.

1.

No projeto miniCursoAPW clique com o boto direito e selecione Add->New Folder. D o nome de css. Crie um novo diretrio e chame de images. Copie o arquivo style.css de dentro do diretrio css em Arquivos Auxiliares para o diretrio css do projeto criado. Copie as imagens do diretrio images dentro de Arquivos Auxiliares para o diretrio images do projeto criado.

2.

3.

4.

5.

6.

Na pgina miniCurso.Master apague o contedo da segunda linha para baixo. Copie o contedo do arquivo miniCurso.Master.txt do diretrio Arquivos Auxiliares para logo abaixo da primeira linha da pgina miniCurso.Master. No arquivo miniCurso.Master.cs adicione os seguintes usings:
using System.Data; using AjaxControlToolkit; using System.Configuration; using System.Drawing; using System.Web.UI.HtmlControls;

7.

8.

9.

Copie o mtodo do arquivo miniCurso.Master.cs.txt que est dentro do diretrio Arquivos Auxiliares para o arquivo miniCurso.Master.cs do projeto logo abaixo do mtodo Page_Load.

1.

Clique com o boto direito no projeto miniCursoAPW, selecione Add->New Item. Dentro da categoria Visual C# selecione Web Content Form, d o nome de cadCategoria e selecione a miniCurso.Master como Master Page.

2.

3.

Na pgina cadCategoria.aspx dentro do Content2 adicione o cdigo abaixo:

* Ver em cadCategoria_Content2.aspx.txt

4.

Na pgina cadCategoria.aspx dentro do Content3 adicione o cdigo abaixo:

* Ver em cadCategoria_Content3.aspx.txt
5.

Na pgina cadCategoria.aspx.cs adicionar os seguintes usings:


using miniCursoDCL; using miniCursoDAO;

6.

Instancie os seguintes objetos:


Categoria categoria = new Categoria(); CategoriaDAO categoriaDAO = new CategoriaDAO();

7.

Ainda na pgina cadCategoria.aspx.cs criar o mtodo Cadastrar.


Ver arquivo cadCategoria_Cadastrar.aspx.cs.txt

8.

Criar o mtodo Atualizar.


Ver arquivo cadCategoria_Atualizar.aspx.cs.txt

9.

Criar o mtodo Editar.


Ver arquivo cadCategoria_Editar.aspx.cs.txt

10.

Criar o mtodo Excluir


Ver arquivo cadCategoria_Excluir.aspx.cs.txt

11.

Criar o mtodo limparCampos.


Ver arquivo cadCategoria_LimparCampos.aspx.cs.txt

12.

Na pgina cadCategoria.aspx adicione referncia aos mtodos da Master Page:


<%@ MasterType VirtualPath="~/miniCurso.Master" %>

1.

No projeto miniCursoAPW clicar com o boto direito e selecionar Add->New Item. Na categoria Visual C# selecione Web Content Form, d o nome de cadProduto e selecione a miniCurso.Master como Master Page.

2.

3.

Na pgina cadProduto.aspx dentro do Content2 adicione o cdigo abaixo:

* Ver em cadProduto_Content2.aspx.txt

4.

Na pgina cadProduto.aspx dentro do Content3 adicione o cdigo abaixo:

* Ver em cadProduto_Content3.aspx.txt
5.

Na pgina cadProduto.aspx.cs adicionar os seguintes usings:


using miniCursoDCL; using miniCursoDAO;

6.

Instancie os seguintes objetos:


Produto produto = new Produto(); ProdutoDAO produtoDAO = new ProdutoDAO();

7.

Ainda na pgina cadProduto.aspx.cs criar o mtodo Cadastrar.


Ver arquivo cadProduto_Cadastrar.aspx.cs.txt

8.

Criar o mtodo Atualizar.


Ver arquivo cadProduto_Atualizar.aspx.cs.txt

9.

Criar o mtodo Editar.


Ver arquivo cadProduto_Editar.aspx.cs.txt

10.

Criar o mtodo Excluir


Ver arquivo cadProduto_Excluir.aspx.cs.txt

11.

Criar o mtodo limparCampos.


Ver arquivo cadProduto_LimparCampos.aspx.cs.txt

12.

Na pgina cadProduto.aspx adicione referncia para os mtodos da Master Page:


<%@ MasterType VirtualPath="~/miniCurso.Master" %>

Criar a classe DCL para Cliente Criar a classe DAO para Cliente Criar o CRUD para o Cliente Criar a classe DCL para Contato Criar a classe DAO para Contato Criar o CRUD para o Contato Testar

As empresas vem procurando formas de desenvolver softwares cada vez mais rpido. Por outro lado, os desenvolvedores devem fazer softwares realmente funcionais, que ao final realmente atendam os objetivos do seu cliente.

Diemesleno Souza Carvalho www.diemesleno.com.br diemesleno@gmail.com (67) 9225-7484 Campo Grande Mato Grosso do Sul Brasil

Vous aimerez peut-être aussi