ASP.NET - APLICACION 3 CAPAS AYUDA URGENTE

 
Vista:
sin imagen de perfil

APLICACION 3 CAPAS AYUDA URGENTE

Publicado por Edgar (26 intervenciones) el 17/01/2008 00:37:58
Amigos del Foro necesito su ayuda urgente,desde ya muchas gracias por su valiosa ayuda.
Hasta el momento estoy realizando un proyecto contable con ASP.NET , con lenguaje Visual.net 2005 y base de datos SQL 2000.
Para este proyecto me cree una clase en donde tengo declarado las propiedades, conexion, llamada a los enventos de insetar, borra, actualizar, etc. Yo creía que estaba realizando ya 3 capas pero me di cuenta que no es asi pues en cada web form en los respectivos botones realizaba los respectivos insert, update y delete como lo prodran ver en le codigo que pongo a continuacion.....
POR FAVOR NECESITO ME INDIQUEN COMO HAGO QUE MAS ME FALTA PARA QUE SEA 3 CAPAS .... ES URGENTE PUES DE ESTO DEPENDE MI PROYECTO

CODIGO CLASE dbopciones.vb

Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Data
Imports System.Data.Sql
Imports System.Data.SqlClient
Imports System.Data.SqlTypes

Namespace Contabilidad.data ' Nombre del Namespace como vamos a instancias nuestras paginas aspx
Public Class dbOpciones 'Creacion de la Clase dbOperaciones
Sub New()
End Sub
'Atributos de nuestra clase
Private _Database As String
Private _Delete_command As SqlCommand
Private _Insert_command As SqlCommand
Private _Password As String
Private _Select_Command As SqlCommand
Private _Server As String
Private _Update_command As SqlCommand
Private _UserId As String
Public [Error] As String
Public Property Database() As String ' Propiedades de la Clase para acceder desde las paginas aspx
Get
Return _Database
End Get
Set(ByVal value As String)
_Database = value
End Set
End Property
Public Property Delete_Command() As SqlCommand
Get
Return _Delete_command
End Get
Set(ByVal value As SqlCommand)
_Delete_command = value
End Set
End Property
Public Property Insert_Command() As SqlCommand
Get
Return _Insert_command
End Get
Set(ByVal value As SqlCommand)
_Insert_command = value
End Set
End Property
Public Property Password() As String
Get
Return _Password
End Get
Set(ByVal value As String)
_Password = value
End Set
End Property
Public Property Select_Command() As SqlCommand
Get
Return _Select_Command
End Get
Set(ByVal value As SqlCommand)
_Select_Command = value
End Set
End Property
Public Property Server() As String
Get
Return _Server
End Get
Set(ByVal value As String)
_Server = value
End Set
End Property
Public Property Update_command() As SqlCommand
Get
Return _Update_command
End Get
Set(ByVal value As SqlCommand)
_Update_command = value
End Set
End Property
Public Property UserId() As String
Get
Return _UserId
End Get
Set(ByVal value As String)
_UserId = value
End Set
End Property
'Metodos de nuestra calse
Public Function GetStringConection() As SqlConnection
Return New SqlConnection("Data Source =..SQLEXPRESS;AttachDbFilename=C:MODCONTABILIDADApp_DataBase.mdf;Integrated Security=True;User Instance=True")
End Function
'Métodos que interactúan directamente con la base de datos
'BUSQUEDA Y SELECCION (SELECT)
Public Function SelectFields() As DataTable
Dim strCon As String = Me.GetStringConection.ConnectionString
Dim ds As New DataSet
Dim oCon As New SqlConnection(strCon)
Dim da As New SqlDataAdapter(Me.Select_Command.CommandText, oCon)
Try
oCon.Open()
da.Fill(ds)
Catch ex As Exception
Me.Error = ex.ToString
Finally
oCon.Open()
End Try
Return ds.Tables.Item(0)
End Function
'INSERTAR (INSERT)
Public Function InsertFields() As Boolean
Dim success As Boolean
Dim oCon As New SqlConnection(Me.GetStringConection.ConnectionString)
Dim myCommand As New SqlCommand(Me.Insert_Command.CommandText, Me.GetStringConection)
Try
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
success = True
Catch ex As Exception
Me.Error = ex.ToString
success = False
Finally
oCon.close()
End Try
Return success
End Function
'ELIMINAR (DELETE)
Public Function DeleteFields() As Boolean
Dim success As Boolean
Dim oCon As New SqlConnection(Me.GetStringConection.ConnectionString)
Dim myCommand As New SqlCommand(Me.Delete_Command.CommandText, Me.GetStringConection)
Try
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
success = True
Catch ex As Exception
Me.Error = ex.ToString
success = False
Finally
oCon.Close()
End Try
Return success
End Function
'ACTUALIZAR (UPDATE)
Public Function UpdateFields() As Boolean
Dim success As Boolean
Dim oCon As New SqlConnection(Me.GetStringConection.ConnectionString)
Dim myCommand As New SqlCommand(Me.Update_command.CommandText, Me.GetStringConection)
Try
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
success = True
Catch ex As Exception
Me.Error = ex.ToString
success = False
Finally
oCon.close()
End Try
Return success
End Function
End Class
End Namespace

CODIGO DE UNO DEL BOTON INSERTAR EN UN WEB FORM

Partial Class Secuencial
Inherits System.Web.UI.Page
Dim oCon As New Contabilidad.data.dbOpciones
Private Sub Secuenciales()
oCon.Server = "DESARROLLO"
oCon.Database = "BASE"
oCon.UserId = "sa"
oCon.Password = "sa"
End Sub

Protected Sub cmdInsertar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdInsertar.Click
Me.Secuenciales()
Dim _insert As New System.Data.SqlClient.SqlCommand("INSERT INTO CONTB_SECUENCIAL(SECUENCIAL_INGRESO,SECUENCIAL_EGRESO, SECUENCIAL_DIARIO, SECUENCIAL_ASIENTO, SECUENCIAL_RETEN_FUENTE, SECUENCIAL_RETEN_IVA) VALUES('" + Me.txtIngreso.Text + "','" + Me.txtEgreso.Text + "','" + Me.txtDiario.Text + "','" + Me.txtAsiento.Text + "','" + Me.txtFuente.Text + "','" + Me.txtIva.Text + ")")
oCon.Insert_Command = _insert
Dim status As Boolean = oCon.InsertFields()
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:APLICACION 3 CAPAS AYUDA URGENTE

Publicado por Javier Santamaria (312 intervenciones) el 17/01/2008 12:51:12
Hola,

Vamos a ver, hasta donde tengo entendido una aplicacion en tres capas es aquella en donde se puede dividir la parte de presentacion (navegador del pc local del cliente), la parte de logica de negocios (el servidor de aplicaciones) y la parte de datos (el servidor de base de datos). Por tanto, desde mi punto de vista una aplicacion en tres capas es aquella donde estas tres funciones estan diferenciadas y a mi modo de ver esto ya esta conseguido en la arquitectura .NET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:APLICACION 3 CAPAS AYUDA URGENTE

Publicado por Khristian (335 intervenciones) el 24/01/2008 20:09:58
Tres capas....

Debes cumplir las capas de: Presentación, Negocio y datos.

Por ejemplo:

Capa de Presentación:
Tus paginas ASPX solo deben preocuparse de la interfaz. Eso aplica un patrón controlador.

Capa de Negocios:
Clases intermedias que se dedican a la logica del negocio, solo a eso. eso aplica patrón experto.

Capa de Datos:
Clases dedicadas al manejo de base de datos. Aun cuando lo ideal en esta capa es que delegues esta responsabilidad al SGBD, a través de procedimientos almacenados etc. Pero con clases de acceso a datos ya estaria bien.
Usar una clase de acceso a datos aplicaría un patrón de fabricación pura.

ejemplo:
Dices que programabas en la misma pagina los insert, etc.

Bueno una solución seria: (supongamos una pagina para guardar un mensaje al administrador)

Por razones lógicas, lo explico al revés.

Capa de datos:
Creamos una clase (Si puedes crear procedimientos almacenados mejor)
- Esta clase debe implementar métodos de abrir y cerrar la conexión
- Debe implementar los métodos de manejo de datos (Insert, Update, etc.)
Crear un Método: guardarRegistro
La idea es que le pases los datos de nombre de Tabla, y Valores a guardar.
Esta clase la instancias en la clase de negocio.
La clase se podría llamar SQL

Capa de Negocios:
Creas una clase que se dedique a la lógica del objetivo de proceso, esto es, guardar un mensaje.
Creas un método: guardar
Porque guardar y no guardarMensaje...??? Para aplicar el patrón de polimorfismo.
En el método guardar pones todo lo que necesites para validar o formatear el mensaje, de manera que una vez listo, instancias la clase de datos (SQL), y llamas al método guardarRegistro, esto es SQL.guardarRegistro, pasando lo necesario.
A la clase le puedes llamar Mensaje.
Así el método seria Mensaje.crear()

Capa de presentacion:
Es tu pagina ASPX. (Recuerda que es una clase)
En el evento del botón guardar, instancias la clase Mensaje, llamas al método crear, y asi se ejecutan los diferentes mensajes entre las clases.
Seria asi: Mensaje.Crear

Con esto logras independencia entre Presentación, Negocio, y datos.

Yo por ejemplo cree una clase SQL con todo lo necesario, y ahora ni la reviso... solo la uso, y la instancio desde mis clases de negocio, o desde mis paginas ASPX (Cuando una acción no es lo suficientemente complicada para tener que crear una clase de negocio).

espero que hayas entendido.

resumen

| Pagina ASPX | -> | Clase Mensaje | -> | Clase SQL |

=

Presentación -> Negocio -> Datos

=

Mensaje.Crear -> SQL.guardarRegistro -> se logra el objetivo, y cada clase es especialista solo en lo suyo.


Saludos...

Christian

http://khristian-rodriguez.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:APLICACION 3 CAPAS AYUDA URGENTE

Publicado por gato (1 intervención) el 14/03/2008 20:09:00
toda esa basura esta pesima
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:APLICACION 3 CAPAS AYUDA URGENTE

Publicado por Mari (1 intervención) el 09/07/2009 21:01:35
alguien me puede ayudar con el metodo buscar en tres capas
no me muestra los datos en el datagrid estoy con sqlserver y vB.net
por favor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar