Criando um site para Controle de Projetos com ASP.NET 2.0 – Parte I

Veja nesse artigo como construir uma aplicação que faz controle de projetos utilizando as principais funcionalidades do ASP.NET 2.0.

Clique aqui para ler este artigo em pdf

 

Clique aqui para ler todos os artigos desta edição

 

Criando um site para Controle de Projetos com ASP.NET 2.0 – Parte I

 

Que tal explorarmos algumas funcionalidades do ASP.NET 2.0 desenvolvendo uma aplicação real? Interessante, não é? Quando o assunto é ASP.NET, ouvimos falar de controles de Login, DataSets, Profiles, Ajax, e mais uma porção de coisas separadamente, mas raramente vemos todas essas funcionalidades em um único exemplo. É isso que faremos neste artigo.

De uma forma bem prática e objetiva iremos construir uma aplicação que faz controle de projetos utilizando as principais funcionalidades do ASP.NET 2.0. Vamos fazer uma aplicação de controle de projetos, pois é um tipo de aplicativo muito comum em nosso dia-a-dia de uma equipe de desenvolvedores, ou você nunca teve que preencher uma planilha de despesas?

 

Database

Toda aplicação começa com a modelagem de uma base de dados. Neste artigo utilizaremos o SQL Server 2005, mas você também pode utilizar a versão 2000 ou a Express. Não vamos entrar nos detalhes da estrutura das tabelas desse sistema.

Vou propor um diagrama, que você pode conferir na Figura 1, e construiremos nossa aplicação em cima dessas tabelas. Obviamente que esse é um tipo de aplicação que pode sofrer variações entre uma empresa e outra, portanto sinta-se a vontade em alterar essa estrutura, ou até criar a sua própria estrutura de tabelas.

 

Figura 1. Diagrama do banco VMProjetos

 

Veja que nosso database foi criado com o nome VMProjetos, e nele temos quatro tabelas:

·Clientes: Cadastraremos os clientes do sistema. Veja que a chave primária nesse caso é o CNPJ do cliente;

·Projetos: É a principal tabela da aplicação, onde abriremos novos projetos. Veja que a chave primária é o proId, que foi declarado como inteiro e definido como identity;

·Projeto_Apontamentos: É a tabela onde os recursos envolvidos no projeto deverão apontar as horas consumidas durante o projeto. Veja que a chave primária dessa tabela é o ID do Projeto junto com o ID do Apontamento. O ID do apontamento (apoId) também foi definido como inteiro e identity;

·Projeto_Despesas: Nessa tabela os recursos irão lançar as despesas ocorridas durante o projeto. Assim com nos apontamentos, a chave primária dessa tabela é o ID do Projeto juntamente com o ID da Despesa. O ID da despesa (desIs) foi definido como inteiro e identity.

Você pode conferir o script completo para a criação das tabelas na Listagem 1.

 

Listagem 1. Script para a criação das tabelas no banco WPProjetos

USE [WMProjetos]

GO

/****** Table [dbo].[Clientes] ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Clientes](

[cliCNPJ] [varchar](18) COLLATE Latin1_General_CI_AS NOT NULL,

[cliNome] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[cliEndereco] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[cliCidade] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[cliUF] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[cliCEP] [varchar](9) COLLATE Latin1_General_CI_AS NOT NULL,

[cliFone] [varchar](15) COLLATE Latin1_General_CI_AS NOT NULL,

CONSTRAINT [PK_Clientes] PRIMARY KEY CLUSTERED

(

[cliCNPJ] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Table [dbo].[Projeto_Apontamentos] ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Projeto_Apontamentos](

[proId] [int] NOT NULL,

[apoId] [int] IDENTITY(1,1) NOT NULL,

[apoRecurso] [nvarchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[apoCustoHora] [decimal](8, 2) NOT NULL,

[apoDataHoraIni] [datetime] NOT NULL,

[apoDataHoraFim] [datetime] NOT NULL,

[apoHoras] [int] NOT NULL,

[apoTotalCusto] [decimal](12, 2) NOT NULL,

[apoDescricao] [varchar](500) COLLATE Latin1_General_CI_AS NOT NULL,

CONSTRAINT [PK_Projeto_Apontamentos_1] PRIMARY KEY CLUSTERED

(

[proId] ASC,

[apoId] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Table [dbo].[Projeto_Despesas] ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Projeto_Despesas](

[proId] [int] NOT NULL,

[desId] [int] IDENTITY(1,1) NOT NULL,

[desRecurso] [nvarchar](256) COLLATE Latin1_General_CI_AS NOT NULL,

[desData] [datetime] NOT NULL,

[desValor] [decimal](12, 2) NOT NULL,

[desNroNF] [varchar](20) COLLATE Latin1_General_CI_AS NOT NULL,

CONSTRAINT [PK_Projeto_Despesas] PRIMARY KEY CLUSTERED

(

[proId] ASC,

[desId] ASC

)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]

) ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

/****** Table [dbo].[Projetos] ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[Projetos](

[proId] [int] IDENTITY(1,1) NOT NULL,

[cliCNPJ] [varchar](18) COLLATE Latin1_General_CI_AS NOT NULL,

[proNome] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,

[proGerente] [nvarchar](256) COLLATE Latin1_General_CI_AS NOT NULL,

"
[...] continue lendo...

Artigos relacionados