Esse artigo faz parte da revista .NET Magazine edição 54. Clique aqui para ler todos os artigos desta edição

style="FONT-SIZE: 10pt; COLOR: windowtext; FONT-FAMILY: Verdana; mso-ansi-language: PT-BR; mso-bidi-font-family: Arial">Boas práticas

Aplicando Padrões de Projeto na prática

Criando uma aplicação orientada a objetos com auxílio dos padrões MVC, DAO e Singleton – Parte 1

 

Neste artigo veremos

Padrões MVC, DAO e Singleton.

Qual a finalidade

·         Demonstrar a criação de uma aplicação real com padrões de projetos.

Quais situações utilizam esses recursos?

·         Qualquer aplicação do mundo real pode se utilizar dos conceitos apresentados no artigo.

 

Resumo do DevMan

Veja como utilizar padrões de projeto na prática com uma aplicação web. Neste primeiro artigo serão abordados os projetos MVC, DAO e Singleton.

 

Alguns problemas são comuns a vários projetos de software. Para facilitar a solução desses problemas podemos utilizar Padrões de Projeto, soluções reutilizáveis para determinados tipos de problemas no desenvolvimento de aplicações, com o benefício de fornecer soluções planejadas e testadas por profissionais experientes. Este artigo apresentará uma aplicação simples de cadastro e aplicará alguns padrões de projetos para melhorar a qualidade da aplicação. Serão abordados neste artigo os padrões Singleton, DAO e MVC. Na edição seguinte teremos uma segunda parte onde serão abordados os padrões Command, Façade e Factory Method.

 

Construindo o primeiro sistema

O sistema de exemplo permitirá a inserção e consulta de contatos, contendo o nome e e-mail. Não existirá a preocupação de utilizar padrões de projeto neste primeiro exemplo, que será melhorado posteriormente.

Antes da criação do projeto, deve-se criar a tabela que utilizaremos para inserção e consulta de contatos no SQL Server 2005. O código SQL para criação da tabela Contato segue na Listagem 1.

 

Listagem 1. SQL para criação da tabela Consulta

 

CREATE TABLE [dbo].[Contato] (

          [Nome] [varchar] (50) NOT NULL ,

          [Email] [varchar] (50) NOT NULL

     ) ON [PRIMARY]

 GO

 

ALTER TABLE [dbo].[Contato] WITH NOCHECK ADD

     CONSTRAINT [PK_Contato] PRIMARY KEY  CLUSTERED

     (

          [Nome]

     ) ON [PRIMARY]

GO

 

Para seguir os exemplos apresentados nesse artigo é necessário criar um projeto do tipo Web, utilizando o template ASP.NET Web Application. O nome do projeto deverá ser PadroesVs1 e o nome da solução deverá ser PadroesDeProjeto.

Deve-se adicionar ao projeto PadroesVs1 três Web forms: IncluirContato.aspx, ConsultarContato.aspx e Status.aspx. Os códigos fonte dos formulários web Default.aspx, IncluirContato.aspx, ConsultarContato.aspx e Status.aspx seguem nas Listagens 2, 3, 4 e 5 respectivamente.

 

Listagem 2. Código do formulário web Default.aspx

 

01: <%@ Page Language="C#" AutoEventWireup="true"

02: CodeBehind="Default.aspx.cs" Inherits="PadroesVs1._Default" %>

03:

04: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

05:  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

06:

07: <html xmlns="http://www.w3.org/1999/xhtml" >

08: <head id="Head1" runat="server">

09:     <title>Contatos</title>

10: </head>

11: <body>

12:     <form id="form1" runat="server">

13:     <div>

14:         <span style="font-size: 16pt; font-family: Arial">

15:              Contatos<br /> <br />

16:         </span>

17:         <asp:HyperLink ID="HyperLink1" runat="server"

18:               NavigateUrl="~/IncluirContato.aspx">

19:                       Incluir Contato</asp:HyperLink>

20:         <br />

21:         <br />

22:         <asp:HyperLink ID="HyperLink2" runat="server"

23:               NavigateUrl="~/ConsultarContato.aspx">

24:                       Consultar Contato </asp:HyperLink>

25:     </div>

26:     </form>

27: </body>

28: </html>

 

No código da Listagem 2, entre as linhas 17 e 24, são criados dois hyperlinks. O primeiro hyperlink aponta para a página IncluirContato.aspx (linha 18), enquanto o segundo hyperlink aponta para a página ConsultarContato.aspx (linha 23).

 

Listagem 3. Código do formulário web IncluirContato.aspx

 

01: <%@ Page Language="C#" AutoEventWireup="true"

02: CodeBehind="IncluirContato.aspx.cs" Inherits="PadroesVs1.IncluirContato" %>

03:

04: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

05: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

06:

07: <html xmlns="http://www.w3.org/1999/xhtml" >

08: <head runat="server">

09:     <title>Contatos</title>

10: </head>

11: <body>

12:     <form id="form1" runat="server">

13:     <div>

14:         <span style="font-size: 16pt">Incluir Contato</span><br />

15:         <br />

16:         <asp:Panel ID="Panel1" runat="server" Height="92px"

17:                       HorizontalAlign="Right" Width="217px">

18:             Nome:&nbsp;

19:             <asp:TextBox ID="nome" runat="server" Columns="3"

20:                            Width="149px"></asp:TextBox><br />

21:             E-mail:

22:             <asp:TextBox ID="email" runat="server" Width="149px"></asp:TextBox><br />

23:             <br />

24:             <asp:Button ID="btnGravar" runat="server" Text="Gravar"

25:                 Width="77px" OnClick="btnGravar_Click" /></asp:Panel>

26:         </div>

27:     </form>

28: </body>

...

Quer ler esse conteúdo completo? Tenha acesso completo