Desenvolvimento Multicamadas em Csharp (C#(csharp)) - Parte 1 - Exemplo prático
Esse artigo é o primeiro de uma série, as quais apresentam um exemplo prático e simples abordando o desenvolvimento em multicamadas em C#. Cenário: Desenvolvimento de um Sistema de Controle de Apólices de Seguros. Estes artigos atendem a solicitação de vários leitores que pediram um exemplo do desenvolvimento em C# ao terem acompanhado a série anterior do desenvolvimento de uma aplicação para disk-pizza feita em VB.NET. No último artigo será postado o código completo.
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} st1\:*{behavior:url(#ieooui) }
Desenvolvendo uma aplicação Multicamadas para Windows em C#
Parte 1) Camada de Dados.
Introdução
Estrura em três camadas:

<!--[endif]-->
Camada de Dados:
Camada Intermediária:
Camada de Apresentação:
Cenário
Sistema de Controle de Apólices de Seguros de Veículos
Diagrama de Entidade Relacionamento

Objetivo do primeiro artigo:
Mão na Massa
USE
SEGUROSSET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbCliente]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbCliente]([idCli] [int]
NOT NULL,[nomeCli] [nvarchar]
(50) NOT NULL,[enderecoCli] [nvarchar]
(50) NULL,[foneCli] [nvarchar]
(20) NULL,[faxCli] [nvarchar]
(20) NULL,[obsCli] [nvarchar]
(max) NULL, CONSTRAINT [PK_tbCliente] PRIMARY KEY CLUSTERED(
[idCli]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbDano]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbDano]([idDano] [int]
NOT NULL,[descDano] [nvarchar]
(50) NULL, CONSTRAINT [PK_tbDano] PRIMARY KEY CLUSTERED(
[idDano]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbTipo]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbTipo]([idTipo] [int]
NOT NULL,[descTipo] [nvarchar]
(30) NULL, CONSTRAINT [PK_tbTipo] PRIMARY KEY CLUSTERED(
[idTipo]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbModelo]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbModelo]([idModelo] [int]
NOT NULL,[descModelo] [nvarchar]
(50) NOT NULL,[descMarca] [nvarchar]
(50) NOT NULL, CONSTRAINT [PK_tbModelo] PRIMARY KEY CLUSTERED(
[idModelo]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbApolice]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbApolice]([idApolice] [nvarchar]
(8) NOT NULL,[idCli] [int]
NOT NULL,[kmVeiApolice] [int]
NOT NULL,[numApolice] [int]
NOT NULL,[dataApolice] [datetime]
NULL,[dataValApolice] [datetime]
NULL,[valorApolice] [float]
NULL,[idModelo] [int]
NULL,[sinistroApolice] [bit]
NULL,[idSinistro] [int]
NULL, CONSTRAINT [PK_tbVeiculoSegurado] PRIMARY KEY CLUSTERED(
[idApolice]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbParcela]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbParcela]([nroParc] [int]
NOT NULL,[idApolice] [nvarchar]
(8) NOT NULL,[dataVenParcela] [datetime]
NOT NULL,[valParcela] [float]
NOT NULL,[quitadaParcela] [bit]
NULL,[quitadaData] [datetime]
NULL, CONSTRAINT [PK_tbParcela] PRIMARY KEY CLUSTERED(
[nroParc]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
SET
ANSI_NULLS ONGO
SET
QUOTED_IDENTIFIER ONGO
IF
NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbSinistro]') AND type in (N'U'))BEGIN
CREATE
TABLE [dbo].[tbSinistro]([idSinistro] [int]
NOT NULL,[dataSinistro] [datetime]
NOT NULL,[descSinistro] [nvarchar]
(50) NOT NULL,[idTipo] [int]
NOT NULL,[idDano] [int]
NOT NULL, CONSTRAINT [PK_tbSinistro] PRIMARY KEY CLUSTERED(
[idSinistro]
ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])
ON [PRIMARY]END
GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbApolice_tbCliente]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbApolice]'))ALTER
TABLE [dbo].[tbApolice] WITH CHECK ADD CONSTRAINT [FK_tbApolice_tbCliente] FOREIGN KEY([idCli])REFERENCES
[dbo].[tbCliente] ([idCli])GO
ALTER
TABLE [dbo].[tbApolice] CHECK CONSTRAINT [FK_tbApolice_tbCliente]GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbApolice_tbModelo]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbApolice]'))ALTER
TABLE [dbo].[tbApolice] WITH CHECK ADD CONSTRAINT [FK_tbApolice_tbModelo] FOREIGN KEY([idModelo])REFERENCES
[dbo].[tbModelo] ([idModelo])GO
ALTER
TABLE [dbo].[tbApolice] CHECK CONSTRAINT [FK_tbApolice_tbModelo]GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbApolice_tbSinistro]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbApolice]'))ALTER
TABLE [dbo].[tbApolice] WITH NOCHECK ADD CONSTRAINT [FK_tbApolice_tbSinistro] FOREIGN KEY([idSinistro])REFERENCES
[dbo].[tbSinistro] ([idSinistro])GO
ALTER
TABLE [dbo].[tbApolice] NOCHECK CONSTRAINT [FK_tbApolice_tbSinistro]GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbParcela_tbApolice]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbParcela]'))ALTER
TABLE [dbo].[tbParcela] WITH CHECK ADD CONSTRAINT [FK_tbParcela_tbApolice] FOREIGN KEY([idApolice])REFERENCES
[dbo].[tbApolice] ([idApolice])GO
ALTER
TABLE [dbo].[tbParcela] CHECK CONSTRAINT [FK_tbParcela_tbApolice]GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbSinistro_tbDano]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbSinistro]'))ALTER
TABLE [dbo].[tbSinistro] WITH CHECK ADD CONSTRAINT [FK_tbSinistro_tbDano] FOREIGN KEY([idDano])REFERENCES
[dbo].[tbDano] ([idDano])GO
ALTER
TABLE [dbo].[tbSinistro] CHECK CONSTRAINT [FK_tbSinistro_tbDano]GO
IF
NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_tbSinistro_tbTipo]') AND parent_object_id = OBJECT_ID(N'[dbo].[tbSinistro]'))ALTER
TABLE [dbo].[tbSinistro] WITH CHECK ADD CONSTRAINT [FK_tbSinistro_tbTipo] FOREIGN KEY([idTipo])REFERENCES
[dbo].[tbTipo] ([idTipo])GO
ALTER
TABLE [dbo].[tbSinistro] CHECK CONSTRAINT [FK_tbSinistro_tbTipo]




Conclusão
Nota do Autor:
Referências Bibliográficas:

8 COMENTÁRIOS




Especialista em Administração de Sistemas de Informação pela Universidade Federal de Lavras-MG (UFLA).
Licenciado pleno em informática pela Universidade Metodista de Piracicaba (UNIMEP).
Graduado em Tecnologia em Processamento de Dados pela Unipinhal.
...
Space do autor


16
0
