VB .NET - Login com MySQL - III
No artigo de hoje vamos recordar como fazer o login em um banco de dados MySQL usando a linguagem VB .NET: criando uma camada de negócios. |
Continuando a segunda parte do artigo vamos melhorar o nosso projeto criando uma camada de negócios.
Podemos fazer isso criando uma simples classe ou incluindo um novo projeto na solução.
Vamos criar uma classe chamada BLLHelper em nosso projeto e nela definir a lógica de negócio da nossa aplicação.
Nosso objetivo será remover da interface do usuário a responsabilidade para acessar os dados.
Criando a camada de negócios: BLLHelper
Abra o projeto criado na primeira parte do artigo e inclua uma classe chamada BLLHelper com o código abaixo:
Public Class BLLHelper
Public Shared Function Login(ByVal nome, ByVal senha) As Usuario
Try
Dim sql As String = "SELECT usuario, senha, email FROM Usuarios WHERE usuario = '" & nome & "' AND senha = '" & senha & "'"
Dim tabela As New DataTable
tabela = DalHelper.GetDataTable(sql)
Return GetUsuario(tabela)
Catch ex As Exception
Throw ex
End Try
End Function
Public Shared Function GetUsuario(ByVal tabela As DataTable) As Usuario
Try
Dim _usuario As New Usuario
If tabela.Rows.Count > 0 Then
_usuario.Nome = tabela.Rows(0).Item(0)
_usuario.Senha = tabela.Rows(0).Item(1)
_usuario.Email = tabela.Rows(0).Item(2)
Return _usuario
Else
_usuario = Nothing
Return _usuario
End If
Catch ex As Exception
Throw ex
End Try
End Function
End Class
|
Nossa camada de negócios conhece detalhes de implementação da nossa aplicação e assim possui os seguintes métodos estáticos :
Precisamos então incluir projeto uma classe que representa o nosso Usuario. Crie uma nova classe chamada Usuario com o código a seguir:
Public Class Usuario
Public Property Nome As String
Public Property Senha As String
Public Property Email As String
End Class
|
E agora vamos definir o código do formulário de login:
Public Class frmLogin
Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
If Trim(txtUsuario.Text) = "" Or Trim(txtSenha.Text) = "" Then
MsgBox("Informe as suas credenciais para Login!", vbExclamation, "Dados Inválidos !")
Else
Dim usuario As Usuario = BLLHelper.Login(txtUsuario.Text, txtSenha.Text)
Try
If IsNothing(usuario) Then
MsgBox("Login Falhou!", vbCritical, "Login inválido")
txtUsuario.Text = ""
txtSenha.Text = ""
txtSenha.Focus()
Else
MsgBox("Login realizado com Sucesso", vbInformation, "Login")
Me.Hide()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End If
End Sub
|
Perceba que agora nossa camada de apresentação não precisa saber nada sobre como a conexão com o banco de dados é feita.
Usamos a nossa camada de negócio representada pela classe BLLHelper para fazer o login e agora o retorno é um objeto do tipo Usuario.
Se o objeto for igual a Nothing então o login falhou.
Executando o projeto e informando as credenciais corretas do usuário teremos o seguinte resultado:
O código melhorou ainda mais mas podemos continuar a melhorar implementando a nossa camada de negócio usando interfaces e a seguir usar a injeção da dependência. Também podemos usar stored procedures ao invés de uma consulta in-line para fazer a consulta SQL no login.
Em um próximo artigo eu volto a esse assunto.
Pegue o código do projeto aqui : login3.zip
Todavia
digo-vos a verdade, que vos convém que eu vá; porque, se eu não for, o
Consolador não virá a vós; mas, quando eu for, vo-lo enviarei.
E, quando ele vier, convencerá o mundo do pecado, e da justiça e do juízo.
Do pecado, porque não crêem em mim;
Da justiça, porque vou para meu Pai, e não me vereis mais;
João 16:7-10
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
C# - Criando uma aplicação com 3 camadas com MySQL - Macoratti
C# - Manutenção de dados com DataGridView no MySQL - Macoratti