Exemplo de Aplicação Introdução ao ASP.NET – Módulo 07 – ADO.NET

Bom dia a todos.

Segue o exemplo implementado da aula de número 07 – Acesso a Dados utilizando SqlClient. Logo estarei disponibilizando o mesmo exemplo utilizando Entity Framework 6.0.

Segue descrição:

Projeto Veiculos DB

Está solução está dividida em 6 projetos, sendo eles:

1- FFB.Modulo7.Projeto: Projeto do tipo Web Application responsável por exibir ao usuário a interface Web com os formulários de consulta, adição, edição e remoção de dados (CRUD)

2- FFB.Modulo7.Entidades: Projeto do tipo Class Library que contém as Entidades (classes de domínio) da nossa solução. As entidades seguem a metodologia POCO (Plain Old CLR Objects) permitindo assim o uso das entidades através de uma framework de ORM (Object Relation-Mapping ou Mapeamento de Objeto Relacional, por exemplo Entity Framework ou NHibernate).

3- FFB.Modulo7.DAO: Projeto do tipo Class Library que contém apenas a interface IDAO (Interface com os métodos básicos a serem implementados por todas as classes DAO). Este projeto está a parte para permitir a implementação de outra camada DAO utilizando outras tecnologias, mantendo o baixo acoplamento entre a camada Controle e a de acesso a dados e com isto permitir a troca rápida e até em tempo de execução da camada de persistência.

4- FFB.Modulo7.ADONET.DAO: Projeto do tipo Class Library que contém a implementação de persistência utilizando as classes de acesso a dados do ADO.NET (SqlClient).

5- FFB.Modulo7.ADONET.DAO.Teste: Projeto do tipo Unit Test que realiza os testes unitários para a camada de acesso a dados.

6- FFB.Modulo7.Controle: Projeto do tipo Class Library que contém as classes de controle que realizam a chamada as camadas DAO.

Segue o diagrama da estrutura básica de dependências do Projeto

Imagem

 

Configuração:

1- Baixar e instalar o SQL Server 2008 Management Studio (http://www.microsoft.com/en-us/download/details.aspx?id=7593)

2- Após a instalação do Management Studio, deve-se verificar se a máquina contém alguma instância do SQL Server, para isto, na tela inicial da aplicação, aonde se pede o nome do Servidor, clique em BROWSE FOR MORE, expanda DATABASE ENGINE para ver o nome da instância instalada. Se nenhum aparecer, proceder com a instalação abaixo:

3- Baixar e instalar o SQL Server 2008, 2012 ou 2014 Express, Developer ou Professional. Por padrão o Express é instalado junto ao Visual Studio. Segue o link ensinando como verificar qual versão você já tem instalado do SQL na sua máquina: http://support.microsoft.com/kb/321185/pt-br

4- Executar o script abaixo para criar a base de dados

USE [master]
GO
/****** Object:  Database [VeiculosDB]    Script Date: 06/22/2014 11:07:44 ******/
CREATE DATABASE [VeiculosDB]
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [VeiculosDB].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [VeiculosDB] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [VeiculosDB] SET ANSI_NULLS OFF
GO
ALTER DATABASE [VeiculosDB] SET ANSI_PADDING OFF
GO
ALTER DATABASE [VeiculosDB] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [VeiculosDB] SET ARITHABORT OFF
GO
ALTER DATABASE [VeiculosDB] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [VeiculosDB] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [VeiculosDB] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [VeiculosDB] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [VeiculosDB] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [VeiculosDB] SET CURSOR_DEFAULT  GLOBAL
GO
ALTER DATABASE [VeiculosDB] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [VeiculosDB] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [VeiculosDB] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [VeiculosDB] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [VeiculosDB] SET  ENABLE_BROKER
GO
ALTER DATABASE [VeiculosDB] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [VeiculosDB] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [VeiculosDB] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [VeiculosDB] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [VeiculosDB] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [VeiculosDB] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [VeiculosDB] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [VeiculosDB] SET  READ_WRITE
GO
ALTER DATABASE [VeiculosDB] SET RECOVERY FULL
GO
ALTER DATABASE [VeiculosDB] SET  MULTI_USER
GO
ALTER DATABASE [VeiculosDB] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [VeiculosDB] SET DB_CHAINING OFF
GO
EXEC sys.sp_db_vardecimal_storage_format N'VeiculosDB', N'ON'
GO
USE [VeiculosDB]
GO
/****** Object:  Table [dbo].[Marca]    Script Date: 06/22/2014 11:07:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Marca](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Nome] [nvarchar](max) NOT NULL,
PRIMARY KEY CLUSTERED
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Modelo]    Script Date: 06/22/2014 11:07:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Modelo](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[Nome] [nvarchar](max) NOT NULL,
	[Marca_Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Moto]    Script Date: 06/22/2014 11:07:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Moto](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[AnoFabricacao] [int] NOT NULL,
	[AnoModelo] [int] NOT NULL,
	[Chassi] [nvarchar](20) NOT NULL,
	[Cor] [nvarchar](max) NOT NULL,
	[Modelo_Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  Table [dbo].[Carro]    Script Date: 06/22/2014 11:07:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Carro](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[AnoFabricacao] [int] NOT NULL,
	[AnoModelo] [int] NOT NULL,
	[Chassi] [nvarchar](20) NOT NULL,
	[Cor] [nvarchar](max) NOT NULL,
	[QtdPortas] [int] NOT NULL,
	[Modelo_Id] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object:  ForeignKey [FK__Modelo__Marca_Id__0519C6AF]    Script Date: 06/22/2014 11:07:46 ******/
ALTER TABLE [dbo].[Modelo]  WITH CHECK ADD FOREIGN KEY([Marca_Id])
REFERENCES [dbo].[Marca] ([Id])
GO
/****** Object:  ForeignKey [FK__Moto__Modelo_Id__0EA330E9]    Script Date: 06/22/2014 11:07:46 ******/
ALTER TABLE [dbo].[Moto]  WITH CHECK ADD FOREIGN KEY([Modelo_Id])
REFERENCES [dbo].[Modelo] ([Id])
GO
/****** Object:  ForeignKey [FK__Carro__Modelo_Id__09DE7BCC]    Script Date: 06/22/2014 11:07:46 ******/
ALTER TABLE [dbo].[Carro]  WITH CHECK ADD FOREIGN KEY([Modelo_Id])
REFERENCES [dbo].[Modelo] ([Id])
GO

5- Alterar a String de Conexão no Arquivo Web.Config e também no App.Config no projeto do Teste unitário, alterando a tag Data Source = para o nome doServidor\Instância caso tenha. Por exemplo connectionString=“Data Source=NOMEMAQUINA\SqlExpress;Initial Catalog=VeiculosDB;Integrated Security=True”

O projeto foi compilado no Visual Studio 2010 utilizando a .Net Framework 4.0

Segue link para download
-Slides: Modulo7
Exemplo: https://www.dropbox.com/s/dr2yrok7kynfn3d/FFB.Modulo7.Projeto.rar 

 

Anúncios
Esse post foi publicado em ASP.NET, C#, LINQ, MasterPage, Orientação a Objeto, Sem categoria, System.Data.SqlClient, VS2010 e marcado , , , , , , . Guardar link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s