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] (
[
[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:
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>
...