VB .NET - Criando uma aplicação em camadas (de novo) II
Continuando o artigo VB .NET - Criando uma aplicação em camadas (de novo) vou definir o conteúdo da classe BLLEstudante e as classes da camada de acesso a dados.
A classe BLLEstudantes deve refletir o nosso modelo de entidades e portanto deverá possuir propriedades que serão mapeadas para os campos da tabela Estudantes. Com isso em mente vamos declarar no início do arquivo BLLEstudante.vb os imports usados:
Imports
SystemA seguir vamos declarar um namespace :
Namespace
BLL.EstudantesA seguir defina o nome da classe :
Public
Class BLLEstudantesVamos definir as propriedades da classe que representam a entidade Estudante:
Private
_estudanteid As String Private _cursoid As Integer Private _estudantenome As String Private _estudanteendereco As String Private _telefone As String Private _idade As Integer Private _estapago As Boolean Private _listaestudantes As List(Of BLLEstudantes)
A seguir vamos declara as variáveis de suporte devem ser visíveis na classe:
Private _obj As DALEstudantes = NothingObserve que temos um objeto definido como sendo do tipo DALEstudantes que ainda não foi criada e que deverá dar suporte ao acesso aos dados dos estudantes.
Vamos então
definir as propriedades conforme abaixo:
Public
Property EstudanteID()
As
String
Get
Return
_estudanteid
End
Get
Set(ByVal
value As
String)
_estudanteid = value End Set End PropertyPublic Property CursoID() As Integer Get Return _cursoid End Get Set(ByVal value As Integer) _cursoid = value End Set End PropertyPublic Property EstudanteNome() As String Get Return _estudantenome End Get Set(ByVal value As String)_estudantenome = value End Set End PropertyPublic Property EstudanteEndereco() As String Get Return _estudanteendereco End Get Set(ByVal value As String)_estudanteendereco = value End Set End PropertyPublic Property Telefone() As String Get Return _telefone End Get Set(ByVal value As String)_telefone = value End Set End PropertyPublic Property Idade() As Integer Get Return _idade End Get Set(ByVal value As Integer)_idade = value End Set End PropertyPublic Property EstaPago() As Boolean Get Return _estapago End Get Set(ByVal value As Boolean)_estapago = value End Set End PropertyPublic ReadOnly Property ListaEstudantes() As List(Of BLLEstudantes) Get Return _listaestudantes End Get End Property |
Vou definir também os seguintes métodos na classe BLLEstudante.vb:
O código de cada uma dos métodos esta descrito a seguir:
Public
Function
ProximoEstudanteID() As
String
_idvalor = NothingDim _tmpobj As DALEstudantes = Nothing Try _tmpobj = New DALEstudantes()_idvalor = _tmpobj.ProximoEstudanteID() Catch ex As ExceptionThrow ex Finally _tmpobj = Nothing End TryReturn _idvalor.ToString() End Function
|
Public Function CriaNovoEstudante() As Boolean_retvalor = FalseTry _obj = New DALEstudantes()
_retvalor = _obj.CriaNovoEstudante(EstudanteID, CursoID,
EstudanteNome, EstudanteEndereco, Telefone, Idade,
EstaPago) _obj = Nothing End TryReturn _retvalor End Function
|
Método ProximoEstudanteID() |
Método CriaNovoEstudante() |
Public
Function
AtualizaEstudante() As
Boolean
_retvalor = False
_obj = New DALEstudantes()
_retvalor = _obj.AtualizaEstudante(EstudanteID, CursoID,
EstudanteNome, EstudanteEndereco, Telefone, Idade, EstaPago) _obj = Nothing End TryReturn _retvalor End Function
|
Public Function ExcluiEstudante(ByVal EstudanteID As String) As Boolean_retvalor = FalseTry _obj = New DALEstudantes()_retvalor = _obj.ExcluiEstudante(EstudanteID) Catch ex As ExceptionThrow ex Finally _obj = Nothing End TryReturn _retvalor End Function
|
Método AtualizaEstudante() |
método ExcluiEstudante(EstudanteID) |
Public Function GetEstudante(ByVal EstudanteID As String) As DataRow_dlinha = NothingTry _obj = New DALEstudantes()_dlinha = _obj.GetEstudante(EstudanteID) Catch ex As Exception Throw ex Finally_obj = Nothing End TryReturn _dlinha End Function
|
Public Sub TodosEstudantes()_dset = NothingTry _obj = New DALEstudantes()_dset = _obj.TodosEstudantes() Dim objs As BLLEstudantes = Nothing _listaestudantes = New List(Of BLLEstudantes)For index As Integer = 0 To _dset.Tables(0).Rows.Count - 1 objs = New BLLEstudantes()objs.EstudanteID = _dset.Tables(0).Rows(index)(0).ToString() objs.EstudanteNome = _dset.Tables(0).Rows(index)(1).ToString() objs.Telefone = _dset.Tables(0).Rows(index)(2).ToString() _listaestudantes.Add(objs) objs = NothingNext Catch ex As Exception Throw ex Finally _obj = Nothing End Try End Sub
|
Método GetEstudante() | Método TodosEstudantes() |
Em todos os métodos estamos criando uma instância da classe DALEstudantes() para em seguida usar o método pertinente da classe para executar a operação desejada. Observe que os métodos usados na classe DALEstudantes possuem o mesmo nome do método definido na classe BLLEstudante. Não precisaria ser definido desta forma, fiz assim para tornar mais fácil o entendimento.
Lembre-se que estamos definindo a camada onde esta o código que obtém os dados retornados pela DAL e os repassa ao cliente de uma forma mais intuitiva , efetuando a validação lógica conforme as regras do negócio e verificando se os dados estão no formato adequado.
Definindo as classes da camada de acesso a dados - DAL
Vamos agora definir a nossa camada de acesso aos dados DAL que é a camada onde reside o código que trata da obtenção, tratamento e retorno dos dados salvos na camada de armazenamento de dados.
Já criamos a camada com o nome de DataAccessLayer, vamos definir nesta camada as seguintes classes:
Selecione o projeto DataAccessLayere no menu Project selecione Add New Item ;
Na janela Add New Item selecione o template Class e informe o nome DALCurso.vb
Repita o procedimento e crie agora a classe DALEstudante.vb
Ao final deveremos ver na janela Solution Explorer as duas classes criadas conforme a figura abaixo:
Falta criar o arquivo app.config.
Selecione o projeto DataAccessLayere no menu Project selecione Add New Item ;
Selecione o template XML File e defina o nome app.config. A seguir defina o seguinte conteúdo para este arquivo:
<? xml version="1.0" encoding="utf-8" ?>< configuration>< configSections></ configSections>< connectionStrings>< add name="DataAccessLayer.My.MySettings.DataConnection" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database\Matricula.mdb;Persist Security Info=True" providerName="System.Data.OleDb" /></ connectionStrings>< system.diagnostics>< sources><!-- This section defines the logging configuration for My.Application.Log -->< source name="DefaultSource" switchName="DefaultSwitch">< listeners>< add name="FileLog"/><!-- Uncomment the below section to write to the Application Event Log --><!-- <add name="EventLog"/>--></ listeners></ source></ sources>< switches>< add name="DefaultSwitch" value="Information" /></ switches>< sharedListeners>< add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/><!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log --><!-- <add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> --></ sharedListeners></ system.diagnostics></ configuration>
|
Na verdade o conteúdo do arquivo pode variar mas a definição da string de conexão tem que estar presente neste arquivo conforme abaixo:
< connectionStrings>< add name="DataAccessLayer.My.MySettings.DataConnection" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database\Matricula.mdb;Persist Security Info=True" providerName="System.Data.OleDb" /></ connectionStrings> |
Iremos agora definir o conteúdo das classes DALCurso e DALEstudantes.
Veja a continuação deste artigo em : VB .NET - Criando uma aplicação em camadas (de novo) III
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
José Carlos Macoratti