Perdon por la demora, pero ahora seguiremos con este tutorial en su 3ra. parte.
Dare un resumen, aqui haremos que las 3 capas se comuniquen via una entidad definida. Esta entidad es la que “viajara” a traves de nuestras distintas capas llevando o trayendo informacion.
Para esta tercera parte, esta comunacion sera una simulacion a una consulta en una base de datos. La comunicacion “real” sera para que en la proxima entrega, solo cambiaremos el codigo de esta funcion sin tocar el resto del proyecto.
Agregaremos a nuestra capa de Datos una nueva clase que denominaremos BaseDatos.cls
Luego, crearemos una funcion denominada daConsultaCliente. El “da” lo agrego por el ingles DataAccess y es para mantener una correlacion con la capa de negocios que veremos mas adelante.
Antes de continuar, una FE DE ERRATAS: en la entrega anterior, les hice hacer una referencia a la libreria System.Data.SqlClient en la Capa de Datos. Como por defecto ya esta la referencia System.Data, esto provoca problemas de ambiguedad. Como muestra la figura a continuacion:
Asi que la referencia System.Data.SqlClient (indicada de la 2da. Parte) eliminenla con el boton derecho (Remove Reference)
Ahora entrego el codigo de la funcion daConsultaCliente.
Codigo VB.NET
Imports System.Data.SqlClient
Imports CapaEntidadesPublic Class BaseDatos
Public Function daConsultaCliente(ByVal NroCta As Integer) As CapaEntidades.cliente
Dim miCliente As New CapaEntidades.clientemiCliente.nro_cuenta = 1
miCliente.rut = 999
miCliente.dv = “k”
miCliente.nombre_cliente = “juan”
miCliente.apellido_cliente = “perez”Return miCliente
End Function
End Class
Aqui se hacen los IMPORTS a las librerias de SQLCLIENT y de la CAPAENTIDADES. La funcion devuelve un objeto del tipo “cliente” que es nuestra ENTIDAD.
Luego, le asigno valores a discrecion para este ejemplo. Y finalmente retorno mi variable de tipo “cliente”.
Ahora nos vamos a la Capa de Negocios donde agregaremos una nueva clase que se llamara ReglasNegocio.cls
Luego crearemos una funcion que ejecute daConsultaCliente en la Capa de Datos. Esta se llamara blConsultaCliente. El “bl” es por BussinessLogic , ¿ya?
Esta funcion, recibira el parametro enviado por la Capa Cliente (la pagina web en este caso) y solicitara la consulta a la Capa de Datos recibiendo un objeto del tipo “cliente”. El cual sera devuelto a la Capa Cliente.
Codigo VB.NET
Imports CapaEntidades
Imports CapaDatosPublic Class ReglasNegocio
Public Function blConsultaCliente(ByVal NroCta As Integer) As CapaEntidades.cliente
Dim miCliente As New CapaEntidades.cliente
Dim miBase As New BaseDatosmiCliente = miBase.daConsultaCliente(NroCta)
Return miCliente
End FunctionEnd Class
Finalmente, en nuestra pagina web haremos un llamado a la Capa de Negocios para que traiga los datos solicitados.
Para esto, programaremos el evento Page_Load, para hacer de manera simple.
Crearemos una objeto del tipo Capa de Negocios para poder solicitar los datos. Una vez hecha la solicitud, recibiremos un objeto del tipo “cliente” que es nuestra entidad, la cual sera desplegada en pantalla.
Codigo VB.NET
Imports CapaEntidades
Imports CapaNegociosPartial Class _Default
Inherits System.Web.UI.PageProtected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim RegNeg As New ReglasNegocio
Dim miCliente As New clientemiCliente = RegNeg.blConsultaCliente(1)
Response.Write(“rut :” & miCliente.rut & “-” & miCliente.dv & “
“)
Response.Write(“nombre :” & miCliente.nombre_cliente & “
“)
Response.Write(“apellido :” & miCliente.apellido_cliente & “
“)End Sub
End Class
Si se preguntan por el numero 1 que indico a la funcion, por el momento es solo para completar codigo (mas adelante lo ocuparemos como corresponde). Finalmente, el resultado debe ser el siguiente:
Bueno, eso seria la (tan esperada) 3ra Parte, es una simulacion pero sirve para entender como se usan las Entidades en las 3 Capas.
En la 4ta. entrega, veremos como modificar la capa de datos para que haga una consulta a una base de datos SQL Server.
Links:
ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (1ra. parte)
ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (2da. parte)
ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (4ta. parte)
TYDW.-
Archivado en: ASP .NET, Tutoriales Etiquetado: | ASP .NET, Capas, DAL, Entidades, Tier








Cuando cargue el proyecto que tenia guardado de las entragas anteriores no se cargo nada. Es decir cargue el archivo 3Capas.sln que esta en la carpeta 3capas y abre pero no aparecen las demas carpetas, asi debe pasar o tengo que hacer todo lo anterior para cargar el proyecto?
es extraño eso que te ocurrio
pero si no te cargan los proyectos, los puedes agregar a mano.
revisa el proyecto y me avisas como te fue.
atte.
Cuando lo guarde otra vez me guardo un proyecto con nombre Web3Capas.sln, ese si abre todo completo pero me lo guardo en la ruta: \Mis documentos\Visual Studio 2005\Projects\Web3Capas.
Si es ese el nombre del proyecto que debe cargarlo todo?
Puxa esta bacan pero me sale un erro al executar
dice:
nose puede iniciar la depuracioon en el servidor web.
el servidor no admite la depuracion de aplicaciones del servidor ATL O ASP.NET.
q debo hacer
[...] ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (3ra. parte) [...]
[...] ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (3ra. parte) [...]
esta intersante aunque es un ejemplo uy pobre pero bueno ya he hcho capas en windows form algo complejas asi que las pasare a asp net solo que no sabia como armas las capas pero muy bien gracias
Hola, que buen material, espero que tu valioso tiempo te de la oportunidad de darnos la 4ta parte pronto
un saludo
desde Mexico
que tal me parece muyinteresate, por que fechas nos podrias dar la 4ta parte ?
felicidades y gracias
primero que todo muchas gracias… muy buena explicacion, Espero pronto sea la 4ta entrega y si es en C# seria monumental
. muchas gracias.
Perfecto..!!!
Para cuando la siguiente entrega..???
Hola Sr, estoy siguiendo tu tutorial y la verdad que estas en 10 puntos, estoy impaciente por los nuevos capitulos
Gracias por tu tiempo
Por casualidad tienes algun tutorial o manual de Csharp con Visual Estudio(2005) ya que estoy recien en el tema de Csharp y no entiendo mucho, aunque tengo mas que claro que este lenguaje es copia de Java, lo cual lo encuentro que tiene una ensalada de parametros, funciones etc, y necesito entenderlo pero no solamente como concepto, sino a modo de utilizacion de aplicaciones (visual with Csharp)
Se le agradeceria bastante su ayuda
ESTOY EMBALADO SIGUIENDO EL TUTORIAL
QUE ADEMAS ESTA MU WENO
AUN ESPERANDO LA 4A ENTREGA
SALUDOS
Hola, revisando tu post, observo que desde la vista estas haciendo referencia a la capa de entidades, lo cual no esta bien… te recomendaria que implementes un abstract factory… y de esta forma se trabaja con 3 capas bien separadas unas de otras…
que tal cuando la 4ta parte???
Y la 4ta parte me urge mucha
Saludos, muchas gracias por el ejemplo publicado, es de mucha ayuda, para cuando estará la cuarta entrega???
Hola, excelente el tutorial, segui todos los pasos pero al compilar y correr la aplicacion me arroja el siguiente error:
Unable to start debugging on the web server. The web server is not configured correctly. see help for common configuration errors…
Saludos TDWY:
En tu ejemplo usas la entidad “cliente”
namespace CapaEntidades
{
public class cliente
{
nro_cuenta
rut
dv
nombre_cliente
apellido_cliente
}
}
probablemente tenga esa forma claro con los modificares respectivos, su tipo de dato y sus contructores…
Voy formulando el escenario para luego hacer plantear mi duda; quiero listar un conjuto de clientes, pero solo los campos:
nro_cuenta
nombre_cliente
apellido_cliente
La primera opcion seria usar la entidad cliente con todos sus campos y conseguir el conjunto de datos, como solo se desea motrar 3 campos pues en la UI filtramos en el GridView o en destino que se imprimen los datos.
La segunda opcion; es sololamente conseguir los datos de esos 3 campos, para lo cual tendriamos que prescindir de la entidad original y contruir una entidad reducida. Esto por simple logica de que no requiero mas que 3 campos de la entidad original y lo segundo podria ser por temas de performance.
El caso es que si se considera la primera opcion, en casos donde hay mas tablas relacionadas las entidades estan relacionas con otras y para mostrar un par de datos tendriamos que traer todo el paquete.
En el caso de la segunda opcion es tomarse el trabajo de construir versiones reducidas (algunas veces quitando la relacion con otras entidades) y ademas construir sus DAL y BLL de cada version.
Que solucion tomarian? y si tienen otras opciones cuales serian?. Gracias por leer y mas aun si pueden comentar algo al respecto.
P.D.: estoy enterado de herramientas como el ADO.Net Entity framework, en que puedes armar consultas con la misma entidad, lo que no se es como funciona internamente. Es decir internamente trae todos los datos y solo me enseña los que quiero mostrar?.
Saludos.
[...] ASP NET: Como crear una Aplicacion de 3 Capas con Entidades (3ra. parte) [...]
Cuando voy al code behind del Default.aspx y hago
Imports CapaNegocios me dice que no contiene ningún miembro publico o que no se encuentra.
Y en la capa Negocios, en la clase ReglasNegocio dice bien clarito: Public Class ReglasNegocio.
Actualice, grabe los cambios, pero no sé que puede pasar. Revisé las referencias de la 2da parte donde especificaste las dependencias y no veo donde puede estar el problema.
Tendrás idea por qué no puedo ver desde la pagina la CapaNegocios?
Muy bueno lo que te mandaste aca.
Saludos y gracias!
Ya solucioné el problema, fui a las propiedades de la CapaNegocios, resulta que al principio la había guardado con el nombre por defecto y se ve que al renombrar no se habían cambiado todas las propiedades.
Gracias igualmente!!
Saludos!
Hola estoy siguiendo los pasos pa’ crear la Solucion 3 capas ASP:NET, pero me quedado atascado(trabado) en el momento de crear el esquema XSDClientes.xsd. Lo creo, pero no logro meter los elementos, pq no puedo ver hallar Vista Esquema, donde estaria la barra de herramientas Esquema, para agregar los elementos a el esquema de forma visual, no se si me he hecho entender. Yo estoy utilizando VStudio 2008.
Un saludo desde España.
Hola
En el VS 2008 no viene el Diseñador de Esquemas XSD como venia en el 2005. MI consejo es que veas el codigo generado por la compilacion de la entidad y lo uses “a mano”. Ya que finalmente la idea es usar ese codigo generado. Revisalo y replicalo en tu proyecto, dejo el codigo generado:
Public Class Clientes
‘Campos de la entidad
Private nro_cuentaField As Integer
Private rutField As Integer
Private dvField As String
Private nombre_clienteField As String
Private apellido_clienteField As String
‘Propiedades de la entidad
Public Property nro_cuenta() As Integer
Get
Return nro_cuentaField
End Get
Set(ByVal value As Integer)
nro_cuentaField = value
End Set
End Property
Public Property rut() As String
Get
Return rutField
End Get
Set(ByVal value As String)
rutField = value
End Set
End Property
Public Property dv() As String
Get
Return dvField
End Get
Set(ByVal value As String)
dvField = value
End Set
End Property
Public Property nombre_cliente() As String
Get
Return nombre_clienteField
End Get
Set(ByVal value As String
nombre_clienteField = value
End Set
End Property
Public Property apellido_cliente() As String
Get
Return apellido_clienteField
End Get
Set(ByVal value As String
apellido_clienteField = value
End Set
End Property
End Class
Gracias por la aclaracion, pense que mi instalacion de VStudio 2008 tenia problema. Salu2