Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

davinci

Modelagem de sistema ASP.NET

Recommended Posts

Boa Tarde galera,

 

Sou novo em .net, mas ja mecho com programação há algum tempo, porém nunca criei uma aplicação do nivel que estou criando agora.

 

É o seguinte, estou criando uma aplicação utilizando Asp.net. Dividi a aplicação em camadas. Já criei a camada de acesso aos dados, porém estou com duvidas sobre a camada de negocios. Como devo organizar as minhas classes? Exemplo de caso: Tenho a classe VENDAS onde cada objeto VENDA possui um objeto do tipo VENDEDOR que indica o vendedor que realizou a venda. Se, por exemplo, eu listar todas as vendas (criarei varios objetos VENDA) os VENDEDORes se repetirão em outras vendas, entaum o objeto VENDEDOR será instanciado muitas vezes (em outros objetos VENDA) para o mesmo VENDEDOR. Bom e se no objeto VENDEDOR tiver uma propriedade que liste todas as vendas do VENDEDOR, quando eu realizar a listagem de vendas citada anteriormente os objetos VENDA (que possui um objeto VENDEDOR) carregara sua propriedade VENDEDOR que possuira o campo VENDAS que listara suas vendas, logo isso criara um loop infinito, numa chamada recursiva. Como posso modelar casos assim em que há esta situação de recursividade? Tenho algumas duvidas com relação a isso. Pode parecer até bastante idiota esta pergunta, mas gostaria de criar uma modelagem correta do sistema, e estas situações fogem dos meus conhecimentos.

Ficarei muito feliz se alguem pudesse me ajudar.

 

Até mais pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Davinci..

O que pode ser muito útil no seu caso, seriam os Namespaces.

O resto você separa em propriedades e métodos que depois vão ser acessados pela UI...

 

Segue abaixo um exemplo

 

 

CLASSE CAMARA

 

Imports System.Data

Imports System.Data.SqlClient

Imports Microsoft.VisualBasic

 

Namespace Sino.BLL

Public Class Camara

#Region "Variáveis Locais"

Public _id As Integer

Public _tipo As String

Public _titulo As String

Public _texto As String

Public _figura As String

#End Region

 

#Region "Propriedades"

Public Property Id() As Integer

Get

Return _id

End Get

Set(ByVal value As Integer)

_id = value

End Set

End Property

Public Property Tipo() As String

Get

Return _tipo

End Get

Set(ByVal value As String)

_tipo = value

End Set

End Property

Public Property Titulo() As String

Get

Return _titulo

End Get

Set(ByVal value As String)

_titulo = value

End Set

End Property

Public Property Texto() As String

Get

Return _texto

End Get

Set(ByVal value As String)

_texto = value

End Set

End Property

Public Property Figura() As String

Get

Return _figura

End Get

Set(ByVal value As String)

_figura = value

End Set

End Property

#End Region

 

#Region "Métodos"

Public Function Selecionar(ByVal Id As Integer) As SqlDataReader

Dim oConexao As New Sino.DAL.Conexao

Dim drCamara As SqlDataReader

Dim parametro As SqlParameter

Dim parametros As New Collections.Generic.List(Of SqlParameter)

 

parametro = New SqlParameter

parametro.ParameterName = "Id"

parametro.DbType = DbType.Int16

parametro.Value = Id

parametros.Add(parametro)

parametro = Nothing

Try

drCamara = oConexao.Selecionar("spCamara_selecionarPorId", parametros.ToArray)

Catch ex As Exception

Throw New System.Exception("Ocorreu uma falha ao tentar selecionar o item " & Id & "<br>Descrição do Erro: " & ex.Message.ToString)

End Try

 

If drCamara.Read Then

_id = drCamara.Item("Id")

_tipo = drCamara.Item("Tipo").ToString

_titulo = drCamara.Item("Titulo").ToString

_texto = drCamara.Item("Texto").ToString

_figura = drCamara.Item("Figura").ToString

End If

Return drCamara

oConexao = Nothing

End Function

Public Function Selecionar(ByVal Tipo As String) As SqlDataReader

Dim oConexao As New Sino.DAL.Conexao

Dim drCamara As SqlDataReader

Dim parametro As SqlParameter

Dim parametros As New Collections.Generic.List(Of SqlParameter)

 

parametro = New SqlParameter

parametro.ParameterName = "Tipo"

parametro.DbType = DbType.String

parametro.Value = Tipo

parametros.Add(parametro)

parametro = Nothing

Try

drCamara = oConexao.Selecionar("spCamara_selecionarPorTipo", parametros.ToArray)

Catch ex As Exception

Throw New System.Exception("Ocorreu uma falha ao tentar selecionar o item do tipo " & Tipo & "<br>Descrição do Erro: " & ex.Message.ToString)

End Try

 

If drCamara.Read Then

_id = drCamara.Item("Id")

_tipo = drCamara.Item("Tipo").ToString

_titulo = drCamara.Item("Titulo").ToString

_texto = drCamara.Item("Texto").ToString

_figura = drCamara.Item("Figura").ToString

End If

Return drCamara

oConexao = Nothing

End Function

#End Region

End Class

End Namespace

 

Depois para usar a classe na UI, é só instanciar

 

Imports Sino.BLL

 

Dim oCamara as new Camara

Camara.Selecionar(1)

 

e assim vai...

 

espero ter ajudado..

 

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.