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 System
Imports
System.Data

A seguir vamos declarar um namespace :

Namespace BLL.Estudantes

A seguir defina o nome da classe :

Public Class BLLEstudantes

Vamos 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 = Nothing
Private
_retvalor As Boolean = False
Private
_dset As DataSet = Nothing
Private
_dlinha As DataRow = Nothing
Private
_idvalor As Object =
Nothing

Observe 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 Property

 

Public Property CursoID() As Integer

Get

Return _cursoid

End Get

Set(ByVal value As Integer)

_cursoid = value

End Set

End Property

Public Property EstudanteNome() As String

Get

Return _estudantenome

End Get

Set(ByVal value As String)

_estudantenome = value

End Set

End Property

Public Property EstudanteEndereco() As String

Get

Return _estudanteendereco

End Get

Set(ByVal value As String)

_estudanteendereco = value

End Set

End Property

Public Property Telefone() As String

Get

Return _telefone

End Get

Set(ByVal value As String)

_telefone = value

End Set

End Property

Public Property Idade() As Integer

Get

Return _idade

End Get

Set(ByVal value As Integer)

_idade = value

End Set

End Property

Public Property EstaPago() As Boolean

Get

Return _estapago

End Get

Set(ByVal value As Boolean)

_estapago = value

End Set

End Property

Public 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 = 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

 

Public Function CriaNovoEstudante() As Boolean

_retvalor = False
 

Try

  _obj = New DALEstudantes()

   _retvalor = _obj.CriaNovoEstudante(EstudanteID, CursoID, EstudanteNome,     EstudanteEndereco, Telefone, Idade, EstaPago)
 

Catch ex As Exception

   Throw ex

Finally

   _obj = Nothing

End Try

   Return _retvalor

End Function

 

Método ProximoEstudanteID()

Método CriaNovoEstudante()

Public Function AtualizaEstudante() As Boolean

_retvalor = False


Try

     _obj = New DALEstudantes()

     _retvalor = _obj.AtualizaEstudante(EstudanteID, CursoID, EstudanteNome, EstudanteEndereco, Telefone, Idade, EstaPago)
 

Catch ex As Exception

   Throw ex

Finally

   _obj = Nothing

End Try

   Return _retvalor

End Function

 

Public Function 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)

Public Function 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

 

Public Sub 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 Twitter

Referências:


José Carlos Macoratti