Non proprio...ti metto un piccolo esempio, l'applicazione è una rubrica...
BUSINESS:
Generica classe con i suoi attributi, come potrebbe essere un Utente con i suoi attributi Nome Cognome, Età eccecc
Codice PHP:
Public Class Persona
Private pId As Integer
Private pCogome As String
Private pNome As String
Private pIndirizzo As String
Private pTelefono As String
Private pSesso As String
Public Property Id() As Integer
Get
Return pId
End Get
Set(ByVal Value As Integer)
pId = Value
End Set
End Property
Public Property Cognome() As String
Get
Return pCogome
End Get
Set(ByVal Value As String)
pCogome = Value
End Set
End Property
Classe che ricollega la Business con l'integrazione, io la chiamo MANAGER di solito
Codice PHP:
Public Class PersonaManager
'dialoga con integrazione, l'ultimo punto di contatto
Private pDao As PersonaDAOSQL
Public Property DAO() As PersonaDAOSQL
Get
If IsNothing(pDaO) Then
pDaO = New PersonaDAOSQL
End If
Return pDao
End Get
Set(ByVal Value As PersonaDAOSQL)
pDao = Value
End Set
End Property
Public Sub salvaPersona(ByVal p As Persona)
DAO.addPersona(p)
End Sub
Public Sub eliminaPersona(ByVal p As Persona)
DAO.delPersona(p)
End Sub
.................
INTEGRAZIONE(accesso al database e varie operazioni su di esso)
Codice PHP:
Imports System.Data
Imports System.Data.SqlClient
Public Class PersonaDAOSQL
'classe per implementare i metodi dell'interfaccia
Implements IPersonaDAO
'faccio una property per la connesione, in questo modo da una sola stringa posso sempre modificare ogni connessione
Private pConn As SqlConnection
Public Property Conn() As SqlConnection
Get
If IsNothing(pConn) Then
Dim sqlConnectionString As String
sqlConnectionString = "Server=localhost;Database=provanet;user id= rubricanet;password=rubricanet;"
pConn = New SqlConnection(sqlConnectionString)
End If
Return pConn
End Get
Set(ByVal Value As SqlConnection)
pConn = Value
End Set
End Property
Public Sub addPersona(ByVal p As Persona) Implements IPersonaDAO.addPersona
Conn.Open()
Dim sql As String = "insert into rubrica values (@Cognome, @Nome, @indirizzo, @telefono, @sesso)"
Dim cmd As New SqlCommand(sql, Conn)
Try
cmd.Parameters.Add("@Cognome", p.Cognome)
cmd.Parameters.Add("@Nome", p.Nome)
cmd.Parameters.Add("@indirizzo", p.Indirizzo)
cmd.Parameters.Add("@telefono", p.Telefono)
cmd.Parameters.Add("@sesso", p.Sesso)
cmd.ExecuteNonQuery() 'metodo che spara il comando sql
Catch ex As Exception
Debug.WriteLine(ex.Message)
Finally
Conn.Close()
End Try
End Sub
...............seguono le altre procedure.....................
PRESENTAZIONE: in questo strato creando un oggetto manager potrò accedere direttamente all'integrazione, quindi allo strato più vicino al database.
Codice PHP:
.............................
Private pManager As PersonaManager
Public Property Manager() As PersonaManager
Get
If IsNothing(pManager) Then
pManager = New PersonaManager
End If
Return pManager
End Get
Set(ByVal Value As PersonaManager)
pManager = Value
End Set
End Property
........................................
Private Sub mnuElimina_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuElimina.Click
Dim p As Persona = getPersonaSelezionata(lstViewRubrica.SelectedItems(0)) 'gli devo passare il primo ed unico elemento selezionabile della lista
Dim ok As Integer = MessageBox.Show("Sei sicuro di voler eliminare il contatto " & Environment.NewLine & p.Cognome & " " & p.Nome & " ?", "Rubrica TT", MessageBoxButtons.YesNo)
If ok = MsgBoxResult.Yes Then
Manager.eliminaPersona(p)
aggiornaGriglia()
End If
End Sub
Spero di non aver confuso troppo le cose...