Académique Documents
Professionnel Documents
Culture Documents
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.
4.
<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:
8.
1.
2.
3.
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.
4.
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.
9.
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.
6.
1.
Dentro do projeto miniCursoDCL crie uma classe com o nome Categoria. Adicione o seguinte using:
using miniCursoBaseDCL;
2.
3.
4.
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.
[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Categoria> ObterLista() { var query = (from c in dataContext.Categorias select c); return query.ToList(); }
7.
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.
[DataObjectMethod(DataObjectMethodType.Insert, false)] public void Inserir(Categoria tpCategoria) { try { if (tpCategoria.Validar()) { dataContext.Categorias.InsertOnSubmit(tpCategoria); dataContext.SubmitChanges(); } } catch { throw; } }
7.
[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.
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.
4.
public bool Validar() { try { bool flag = true; if (string.IsNullOrEmpty(this.desProduto)) { flag = false; } return flag; } catch (Exception) { throw; } }
1.
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.
[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.
[DataObjectMethod(DataObjectMethodType.Select, false)] public List<Produto> ObterListaComFiltro() { var query = (from p in dataContext.Produtos select p); return query.ToList(); }
5.
[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.
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.
[DataObjectMethod(DataObjectMethodType.Insert, false)] public void Inserir(Produto tpProduto) { try { if (tpProduto.Validar()) { dataContext.Produtos.InsertOnSubmit(tpProduto); dataContext.SubmitChanges(); } } catch { throw; } }
5.
[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.
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.
* Ver em cadCategoria_Content2.aspx.txt
4.
* Ver em cadCategoria_Content3.aspx.txt
5.
6.
7.
8.
9.
10.
11.
12.
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.
* Ver em cadProduto_Content2.aspx.txt
4.
* Ver em cadProduto_Content3.aspx.txt
5.
6.
7.
8.
9.
10.
11.
12.
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