APLICACAO EM 3 CAMADAS WEB

ANINHA 25/03/2011 23:36:48
#369219
Boa Noite,

Por favor, alguém pode me indicar um bom tutorial ou um exemplo de uma aplicação em 3 camadas vb.net web Poo...
ANINHA 26/03/2011 07:29:09
#369230
Bom dia, o que eu preciso é algo como isso http://devbrasil.net/profiles/blogs/aplicacoes-em-n-camadas-com ,mas só encontro material em C# e tem que ser em VB.Net.

Essas aulas me ajudaram http://www.tecnoclasta.com/2008/04/01/curso-gratuito-de-programacao-aspnet-com-video-aulas/, mas precisava saber como faço para interagir com o banco por linha de código e como ligo uma label e um text ao banco...

RODRIGOFERRO 26/03/2011 11:29:01
#369246
Bom o primeiro link so esta ensinando como gerar o banco/classe a partir do Model, e só esta em C# porque a Solution esta em C#, se criar ela em vb.net ele ira gerar em vb.NET.

Assistir videos é muito bom, mas eu ainda recomendo seguir o tutorial do Macoratti, ele ensina a como voce mesmo diz: [Ô]interagir com o banco por linha de código e como ligo uma label e um text ao banco...[Ô]

TECLA 26/03/2011 11:35:04
#369248
Se você tiver o fonte em C#, poste aqui pra gente ir transcrevendo em VB.NET.
ANINHA 26/03/2011 13:01:38
#369257
Não tenho certeza se é isso...



Obs. Os arquivos serão adicionados em App_Code.


Coloque o código abaixo para as respectivas classes:

DAL.CS
 
using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

// Referencia para conectar ao Access

using System.Data.OleDb;



/// <summary>

/// Está é a classe que irá acessar o banco e retorna a instrução

/// </summary>



namespace Web.DAL

{

public class CamadaAcessoDados

{

//String de conexão para banco de dados em Access.

// Adicione o banco de dados em c: emp

private string connectionString = [Ô]Provider=Microsoft.JET.OLEDB.4.0; data source=c: empBancoDeDados.mdb[Ô];



public DataSet RetornaDataSet(string Sql)

{

// Informa a conexção

OleDbConnection conn = new OleDbConnection(connectionString);

// Informa conexão com instrução SQL vinda da BLL

OleDbDataAdapter adp = new OleDbDataAdapter(Sql, conn);

// Instancia data set

DataSet ds = new DataSet();

// Preenche data Set

adp.Fill(ds);

// Fecha conexão

conn.Close();

// retorna o Data SET

return ds;

}



public void Inserir(string Sql)

{

// Informa a conexção

OleDbConnection conn = new OleDbConnection(connectionString);

// Abre a conexão

conn.Open();

// Informa conexão com instrução SQL vinda da BLL

OleDbCommand cmd = new OleDbCommand(Sql, conn);

// Executa ação

cmd.ExecuteNonQuery();

// Fecha conexção

conn.Close();

}

}

}

BLL.cs

using System;

using System.Data;

using System.Configuration;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

// Adicione a DAL

using Web.DAL;



/// <summary>

/// Summary description for BLL

/// </summary>

///



namespace Web.BLL

{

public class CamadaLogicaNegocio

{

// Exemplo de retorno de informação Data Set



#region DataSet's



public DataSet ObtemUsuarios()

{

// Istancia a Camada de Dados

CamadaAcessoDados dal = new CamadaAcessoDados();

// Instrução SQL

return dal.RetornaDataSet([Ô] SELECT TOP 1 NomeUsuario FROM tblusuarios [Ô]);

}



#endregion



// Exemplo de Adicionar informação



#region Insert's



public void InserirUsuario(string usuario)

{

CamadaAcessoDados dal = new CamadaAcessoDados();

dal.Inserir([Ô]INSERT INTO tblusuarios [Ô] +

[Ô](NomeUsuario)VALUES([Ô][Ô]

+ usuario + [Ô][Ô])[Ô]);

}



#endregion

}

}




  
Neste ponto já temos nossa Camada Lógica preenchida e nossa Camada de Acesso a Dados, segue abaixo as informações de nossa Default.aspx e Default.aspx.cs para entender como funciona o exemplo.

Default.aspx

<%@ Page Language=[Ô]C#[Ô] AutoEventWireup=[Ô]true[Ô] CodeFile=[Ô]Default.aspx.cs[Ô] Inherits=[Ô]_Default[Ô] %>



<!DOCTYPE html PUBLIC [Ô]-//W3C//DTD XHTML 1.0 Transitional//EN[Ô] [Ô]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[Ô]>



<html xmlns=[Ô]http://www.w3.org/1999/xhtml[Ô]>

<head runat=[Ô]server[Ô]>

<title>Untitled Page</title>

</head>

<body>

<form id=[Ô]form1[Ô] runat=[Ô]server[Ô]>

<div>

<asp:Panel ID=[Ô]Panel1[Ô] runat=[Ô]server[Ô] Width=[Ô]600px[Ô] Height=[Ô]500px[Ô]>

<asp:Label ID=[Ô]Label1[Ô] runat=[Ô]server[Ô] Text=[Ô]3 Camadas com Acesso a Dados[Ô]

Font-Bold=[Ô]True[Ô] Font-Names=[Ô]Batang[Ô] ForeColor=[Ô]#0000CC[Ô]></asp:Label>

<br />

<br />

<br />

<asp:TextBox ID=[Ô]txtUsuario[Ô] runat=[Ô]server[Ô]></asp:TextBox>

<asp:Button ID=[Ô]btnRetornar[Ô] runat=[Ô]server[Ô] onclick=[Ô]btnRetornar_Click[Ô]

Text=[Ô]Retorne o primeiro Usuario[Ô] />

 <asp:Button ID=[Ô]btnAdicionar[Ô] runat=[Ô]server[Ô] onclick=[Ô]btnAdicionar_Click[Ô]

Text=[Ô]Adicionar Usuario[Ô] />

<br />

<br />

<asp:Label ID=[Ô]lblLog[Ô] runat=[Ô]server[Ô] Font-Bold=[Ô]True[Ô] Font-Italic=[Ô]True[Ô]

Text=[Ô]Sem Log no Momento[Ô]></asp:Label>

</asp:Panel>

</div>

</form>

</body>

</html>





Default.aspx.cs



using System;

using System.Configuration;

using System.Data;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

// Referenciar a Camada Logica -> BLL

using Web.BLL;



public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{



}

protected void btnRetornar_Click(object sender, EventArgs e)

{

//Instanciar Camada Logica -> BLL

CamadaLogicaNegocio cln = new CamadaLogicaNegocio();

//Instanciar Data Set

DataSet ds = new DataSet();

// Receber o retorno e preencher data Set

ds = cln.ObtemUsuarios();

// Apenas adicionar a informação do banco de dados no textbox

txtUsuario.Text = ds.Tables[0].Rows[0][[Ô]NomeUsuario[Ô]].ToString();



}

protected void btnAdicionar_Click(object sender, EventArgs e)

{

if (txtUsuario.Text != [Ô][Ô])

{

//Instanciar Camada Logica -> BLL

CamadaLogicaNegocio cln = new CamadaLogicaNegocio();

cln.InserirUsuario(txtUsuario.Text.ToString());

lblLog.Text = [Ô]Usuario Adicionado[Ô];

}

else

{

lblLog.Text = [Ô]Adicione um nome de Usuário[Ô];

}

}

}



Exemplos, retorno de informação do banco de dados e inclusão da informação.



C# - ASP .NET - 3.5 - VS 2008

Só mais um detalhe, estou usando SQLServer2008.



TECLA 26/03/2011 14:08:16
#369262
Poderia postar o projeto no tópico ou é confidencial?
ANINHA 26/03/2011 14:21:19
#369268
Não sei se quer o projeto ou o fonte, mas estou começando e só fiz isso até agora e tenho que apresentar segunda-feira...

  Public Class Cliente

[ô][ô][ô] <summary>
[ô][ô][ô] CAMPOS PRIVADOS DA CLASSE
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>


Private nome_cli As String
Private endereco As String
Private telefone As String
Private email As String
Private obs As String

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA NOME CLINTE
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property NOMEC() As String
Get
Return nome_cli

End Get

Set(ByVal value As String)
If value <> nome_cli Then

nome_cli = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA ENDERECO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property ENDERC() As String
Get
Return endereco


End Get

Set(ByVal value As String)
If value <> endereco Then



endereco = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA TELEFONE
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property TELEF() As String
Get
Return telefone

End Get

Set(ByVal value As String)
If value <> telefone Then

telefone = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA EMAIL
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property EMAI() As String
Get
Return email


End Get

Set(ByVal value As String)
If value <> email Then


email = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA OBSERVAÇÃO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property OBSC() As String
Get
Return obs

End Get

Set(ByVal value As String)
If value <> obs Then

obs = value
End If
End Set
End Property







End Class


  
Public Class Conta
[ô][ô][ô] <summary>
[ô][ô][ô] CAMPOS PRIVADOS DA CLASSE
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>


Private nome As String
Private descricao As String
Private forma_pag As String
Private valortotal As String
Private condicao As String
Private num_par As String
Private data_atual As String
Private data_venc As String
Private relacao As String

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA NOME
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property NOM() As String
Get
Return nome
End Get

Set(ByVal value As String)
If value <> nome Then
nome = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA DESCRICAO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property DESCRIC() As String
Get
Return descricao

End Get

Set(ByVal value As String)
If value <> descricao Then

descricao = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA CONDICAO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property CONDC() As String
Get
Return condicao
End Get

Set(ByVal value As String)
If value <> condicao Then
condicao = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA DATA_ATUAL
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property DATAAT() As String
Get
Return data_atual

End Get

Set(ByVal value As String)
If value <> data_atual Then

data_atual = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA DATA_VENC
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property DATAV() As String
Get
Return data_venc
End Get

Set(ByVal value As String)
If value <> data_venc Then
data_venc = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA FORMA_PAGAMENTO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property FORMAPAG() As String
Get
Return forma_pag

End Get

Set(ByVal value As String)
If value <> forma_pag Then
forma_pag = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA VALORTOTAL
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property VALOT() As String
Get
Return valortotal


End Get

Set(ByVal value As String)
If value <> valortotal Then

valortotal = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA RELACAO
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property RELAC() As String
Get
Return relacao

End Get

Set(ByVal value As String)
If value <> relacao Then

relacao = value
End If
End Set
End Property

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA NUMEROPARCELAS
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property NUMPARC() As String
Get
Return num_par

End Get

Set(ByVal value As String)
If value <> num_par Then

num_par = value
End If
End Set
End Property


End Class


  
Public Class Fornecedor
[ô][ô][ô] <summary>
[ô][ô][ô] CAMPOS PRIVADOS DA CLASSE
[ô][ô][ô] </summary>
[ô][ô][ô] <remarks></remarks>


Private nome_for As String
Private endereco_for As String
Private telefone_for As String
Private email_for As String
Private obs_for As String

[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]

[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA NOME FORNECEDOR
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property NOMEF() As String
Get
Return nome_for

End Get

Set(ByVal value As String)
If value <> nome_for Then

nome_for = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA ENDERECO FORNECEDOR
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property ENDFOR() As String
Get
Return endereco_for


End Get

Set(ByVal value As String)
If value <> endereco_for Then

endereco_for = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA TELEFONE FORNECEDOR
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
Public Property TELEFOR() As String
Get
Return telefone_for

End Get

Set(ByVal value As String)
If value <> telefone_for Then

telefone_for = value
End If
End Set
End Property
[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA EMAIL FORNECEDOR
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property EMAILFOR() As String
Get
Return email_for


End Get

Set(ByVal value As String)
If value <> email_for Then


email_for = value
End If
End Set
End Property


[ô][ô][ô] <summary>
[ô][ô][ô] PROPRIEDADE PUBLICA OBSERVAÇÃO FORNECEDOR
[ô][ô][ô] </summary>
[ô][ô][ô] <value></value>
[ô][ô][ô] <returns></returns>
[ô][ô][ô] <remarks></remarks>
[ô][ô][ô]
Public Property OBSF() As String
Get
Return obs_for

End Get

Set(ByVal value As String)
If value <> obs_for Then

obs_for = value
End If
End Set
End Property




End Class
JWCELYO 26/03/2011 14:27:13
#369269
Resposta escolhida
Aninha essas classes que você crio são apenas as DTO como conhecida no .NET ou Entity como no Java
e o resto? DAL e BLL

Exemplos básicos que já publiquei aqui.

ARQUITETURA EM 3 CAMADAS
SISTEMA DE MENSAGENS - WORK FLOW
ANINHA 26/03/2011 15:00:42
#369273
Obrigada, com certeza vai ajudar...
Tópico encerrado , respostas não são mais permitidas