 VB .NET - Criando uma 
aplicação em camadas (de novo) II
  
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 = valueEnd Set End Property Public Property CursoID() As Integer Get Return _cursoid End Get Set(ByVal value As Integer) _cursoid = valueEnd Set End Property Public Property EstudanteNome() As StringGet Return _estudantenome End Get Set(ByVal value As String) _estudantenome = valueEnd Set End Property Public Property EstudanteEndereco() As StringGet Return _estudanteendereco End Get Set(ByVal value As String) _estudanteendereco = valueEnd Set End Property Public Property Telefone() As StringGet Return _telefone End Get Set(ByVal value As String) _telefone = valueEnd Set End Property Public Property Idade() As IntegerGet Return _idade End Get Set(ByVal value As Integer) _idade = valueEnd Set End Property Public Property EstaPago() As BooleanGet Return _estapago End Get Set(ByVal value As Boolean) _estapago = valueEnd Set End Property Public ReadOnly Property ListaEstudantes() As List(Of BLLEstudantes) GetReturn _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 =Nothing Dim _tmpobj As DALEstudantes = Nothing Try _tmpobj =New DALEstudantes() _idvalor = _tmpobj.ProximoEstudanteID()Catch ex As Exception Throw ex Finally _tmpobj =Nothing End Try Return _idvalor.ToString() End Function 
 | PublicFunction CriaNovoEstudante() As Boolean _retvalor =False Try _obj =New DALEstudantes()    
    _retvalor = _obj.CriaNovoEstudante(EstudanteID, CursoID, 
    EstudanteNome,     EstudanteEndereco, Telefone, Idade, 
    EstaPago) _obj =Nothing End Try Return _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 Try Return _retvalor End Function 
 | PublicFunction ExcluiEstudante(ByVal EstudanteID As String) As Boolean _retvalor =False Try _obj =New DALEstudantes() _retvalor = _obj.ExcluiEstudante(EstudanteID)Catch ex As Exception Throw ex Finally _obj =Nothing End Try Return _retvalor End Function 
 | 
| Método AtualizaEstudante() | método ExcluiEstudante(EstudanteID) | 
| PublicFunction GetEstudante(ByVal EstudanteID As String) As DataRow _dlinha =Nothing Try _obj =New DALEstudantes() _dlinha = _obj.GetEstudante(EstudanteID)Catch ex As Exception Throw ex Finally _obj =Nothing End Try Return _dlinha End Function 
 | PublicSub TodosEstudantes() _dset =Nothing Try _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 =Nothing Next 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 Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter 
Referências:
José Carlos Macoratti