Sunteți pe pagina 1din 4

12/8/2014

C# - Criando uma aplicao em 3 camadas

C# - Criando uma aplicao em 3 camadas


Criar uma aplicao usando os recursos do .NET Framework com ASP.NET ficou muito simples , no que no seja possvel
fazer isto com ASP usando COM , o problema que havia muitos problemas com registro de componentes do lado do
servidor. Com .NET isto coisa do passado.
Vou mostrar como criar uma aplicao em 3 camadas usando C# e ASP.NET. Vai ser uma aplicao bem simples pois o
objetivo mostrar como desenvolver aplicaes em 3 camadas para Web com C#.
O projeto usa trs classes na forma de DLLs que acessam a tabela Customer do banco de dados Northwind.mdb. O acesso
ser feito via provedor OLEDB.(Voc pode facilmente usar o SQL Server apenas alterando a string de conexo e o provedor
SqlClient.)
A aplicao ser composta por 3 arquivos : DAL.cs , BLL.cs e PL.cs que sero compilados para gerar as DLLs , e um arquivo
default.aspx que uma pgina ASP.NET. A pgina ir exibir os dados da tabela em um DataGrid.
Vou mostrar como criar a aplicao usando o compilador do Visual Studio .NET e o Bloco de Notas como editor de cdigo.
Para quem no tem o Visual Studio vou mostrar como usar o SharpDevelop como editor de cdigo e compilador. Para gerar a
pgina irei usar o WebMatrix .
Para testar o projeto voc poder executar o mesmo no IIS ou usar o prprio servidor do WebMatrix.
Voc j deve saber que uma aplicao em n-camadas possui no mnimo 3 camadas lgicas :
1- Camada de acesso aos dados
2- Camada da lgica de negcios
3- Camada de apresentao
As vezes a camada de dados e a camada de negcios esto presentes na mesma camada em algumas aplicaes .
A camada de dados responsvel pela conexo com a fonte de dados.
A camada de negcios responsvel por retornar , incluir , modificar e excluir os dados da camada de dados alm de repassar
os dados da camada de dados para a camada de apresentao.
A camada de apresentao apenas exibe os dados.
A camada de apresentao interage com a camada de negcios mas no com a de dados. Desta forma existe um nvel de
abstrao entre as camadas. Isto torna possvel alterar ou atualizar uma camada sem ter que interferir com a outra camada.
Para compilar cada arquivo no SharpDevelop basta usar a opo Compile do Menu.
1- A camada de dados
Abra o SharpDevelop e digite o cdigo da classe : CamadaAcessoDados , conforme abaixo. Salve a seguir o arquivo
como DAL.cs.

http://www.macoratti.net/cshp_3c1.htm

1/4

12/8/2014

C# - Criando uma aplicao em 3 camadas

No NotePad e inclua o mesmo cdigo acima salvando o arquivo com o nome de DAL.cs:
Acima estou criando uma classe chamada camadaAcessoDados que contm o mtodo retornaDataSet que ir retornar um
DataSet baseado em um comando SQL que ir receber. Estou fazendo uma conexo com o banco de dados Northwind.mdb
usando o provedor OLE DB.
Compilando o cdigo:
- Aps salvar o arquivo DAL.cs compile-o usando o compilador C# : CSC.exe
- Vou salvar o arquivo compilado na pasta c:\nCamadas , neste caso o comando a ser usado para compilar o seguinte:
C:\nCamadas> csc /target:library /out:Macoratti.DAL.dll /r:System.Data.dll DAL.cs
Estou apenas dizendo ao compilador csc que o compile o arquivo DAL.cs como uma DLL (/target:library) que faz referncia a
System.Data.dll (/r:System.Data.dll) onde o nome da DLL ser Macoratti.DAL.dll (/out:Macoratti.DAL.dll)
2- A camada de negcios
A seguir o cdigo da camada de negcios : CamadaLogicaNegocios que voc deve digitar conforme a baixo. Abra um novo
arquivo no SharpDevelop e salve-o com o nome de BLL.cs.

Se voc quiser usar o NotePad basta digitar o cdigo acima e salvar com o nome de BLL.cs.

http://www.macoratti.net/cshp_3c1.htm

2/4

12/8/2014

C# - Criando uma aplicao em 3 camadas

Para compilar o arquivo usando o compilador C# conforme a linha abaixo:


C:\nCamadas> csc /target:library /out:Macoratti.BLL.dll /r:System.Data.dll,Macoratti.CAD.dll BLL.cs
A nica diferena em relao a compilao da camada de dados que aqui eu estou referenciando a camada de dados :
Macoratti.DAL.dll
3- A camada de apresentao
Para a camada de apresentao vou usar o mtodo code-behind.
a-) abra o WebMatrix e digite o seguinte cdigo e salve o arquivo com o nome de default.aspx.

Neste cdigo defini o controle DataGrid com o nome de meuGrid na pgina ASP.NET default.aspx. Na primeira linha de
cdigo em - Codebehind="pl.cs" - eu estou sinalizando que o cdigo para este arquivo estar disponvel no arquivo PL.cs
que irei criar a seguir.
b-) Criando o arquivo da camada de apresentao : PL.cs
Digite o cdigo a seguir no SharpDeveloper ou no NotePad e salve-o como PL.cs

Perceba que inclui o namespace Macoratti.PL no cdigo.


No mtodo Page_Load eu estou fornecendo e vinculando a fonte de dados ao componente DataGrid - meuGrid - definido na
pgina ASP.NET.
Vamos compilar o arquivo PL.cs , a linha de comando a seguinte:
C:\nCamadas> csc /target:library /out:Macoratti.PL.dll /r:Macoratti.CNG.dll PL.cs
http://www.macoratti.net/cshp_3c1.htm

3/4

12/8/2014

C# - Criando uma aplicao em 3 camadas

Pronto , acabamos de compilar as DLLs , agora voc deve copi-las para a pasta bin presente na raiz do local onde compilou
os arquivos.
Vou criar um diretrio virtual para a aplicao no IIS com o nome de 3Camadas.
Abra o Navegador e digite http://localhost/3camadas/default.aspx , onde :
- 3camadas o nome do diretrio virtual
- default.aspx o arquivo a ser executado , a nossa camada de apresentao.
O resultado ser a apresentao dos registros da tabela customer do banco de dados Northwind.mdb no DataGrid na pginas
ASP.NET.
Abaixo a execuo feita no WebMatrix:

Elementar , no mesmo ???


Creio que com este artigo voc 'captou' o que quer dizer aplicao em n-Camadas. A partir disto podemos construir
aplicaes mais complexas.
Note que no exemplo eu no realizo nenhum tratamento de erro o que deve ser considerado em uma aplicao mais robusta.
E , o mais importante , percebeu que voc no precisou do Visual Studio .NET ?

Nota: Recrie o projeto acima no Visual Studio 2012 Express for web usando o mesmo cdigo. S mudei o
banco de dados e a string de conexo.
Pegue o projeto e abra no VS 2012 Express for web :
TresCamadas.zip
Eu sei , apenas ASP.NET , mas eu gosto..

Jos Carlos Macoratti

http://www.macoratti.net/cshp_3c1.htm

4/4

S-ar putea să vă placă și