Está en la página 1de 11

RISI 7(2), 2010 (57-67)

Revista de Investigacin de Sistemas e Informtica


Facultad de Ingeniera de Sistemas e Informtica ISSN 1815-0268 (versin impresa)
Universidad Nacional Mayor de San Marcos ISSN 1816-3823 (versin electrnica)

Programacin en N capas
N layers Programming

Santiago Domingo Moquillaza Henrquez, Hugo Vega Huerta,


Luis Guerra Grados

Facultad de Ingeniera de Sistemas e Informtica


Universidad Nacional Mayor de San Marcos

smoquillaza@yahoo.com, hugovegahuerta@hotmail.com,
pdelacruzv@unsmsm.edu.pe, gluisg38@hotmail.com

Resumen
Los paradigmas en el desarrollo de programas han venido evolucionando a travs de los aos y
actualmente contamos con una de las tcnicas que brinda mayor facilidad a los programadores,
nos referimos a la Programacin Orientada a Objetos en N capas, ya que permite dividir el trabajo
en varias capas modulares.
Actualmente, la ms utilizada en cuanto a este estilo es la programacin en tres capas que se
divide en: 1) Capa de presentacin, la cual interacta con el usuario; 2) La capa de negocios,
donde se establecen las reglas del negocio que deben cumplirse y; 3) La capa de datos en la cual
se define la conexin con el servidor y la base de datos, es en esta capa en donde se invoca a los
procedimientos almacenados o comandos SQL, a fin de que se realicen las operaciones correspon-
dientes en la base de datos; sin embargo, si es conveniente podemos dividir la estructura del cdigo
fuente en ms capas.
Palabras clave: Programacin en n capas, capa de datos, capa de negocios, capa de presen-
tacin.

Abstract
The paradigms in software development have evolved through the years and now we have one
technique that provides developers easier, we refer to Object Oriented Programming in N layers,
this technic permit divide the work into several modular layers.
Actually the most useful about this style, is the 3 layer programation that divide in: 1) The presenta-
tion layer which interacs with the user; 2) The business layer sets the rules of bussiness and; 3) The
data layer which sets the connection with the server and the database, this layer invokes to the store
procedures or sql command to realize the corresponding operations in the database; However, if it
is convenient, we can divide the structure of the source code in more layers.
Keywords: N layer Programation, data layer, business layer, presentation layer.
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 2, Julio - Diciembre 2010

1. INTRODUCCIN En adicin a lo citado, podemos decir que actualmente


la programacin por capas es un estilo de programa-
La realizacin de Sistemas de Informacin se ha veni-
cin en la que el objetivo principal es separar la lgica
do desarrollando en base a tcnicas de programacin,
de negocios de la lgica de diseo, un ejemplo bsico
principalmente; la programacin estructurada, luego
de esto es separar la capa de datos de la capa de ne-
en combinacin utilizando la programacin por even-
gocios y sta a su vez de la capa de presentacin al
tos, actualmente se pudiera decir que se ha llegado a
usuario.
una madurez con la potencialidad de la programacin
orientada a objetos por la ventaja en la reutilizacin de El diseo que actualmente ms se utiliza es el diseo
cdigo. En adicin a ellas, se cuenta actualmente con en tres capas; sin embargo, la programacin puede
la programacin en n capas que hace uso de la progra- desglosarse en ms capas, tal cual se presenta en el
macin orientada a objetos; la cual consiste en separar ejemplo que veremos ms adelante.
el cdigo fuente segn el rol, responsabilidad y funcio-
nalidad; por ende el desarrollo es ms rpido, y resulta 2.2. Tipos de capas
ms fcil el darle mantenimiento al Sistema. 2.2.1. Capa de presentacin
En este artculo detallamos la programacin en N ca- Es la responsable de la presentacin visual de la apli-
pas; y se presenta un ejemplo en Visual Basic .Net, cacin. La capa de presentacin enviar mensajes a
para que sirva de referencia y la explicacin sea ms los objetos de esta capa de negocios o intermedia, la
didctica. cual o bien responder entonces directamente o man-
tendr un dilogo con la capa de la base de datos, la
2. FUNDAMENTACIN TERICA cual proporcionar los datos que se mandaran como
respuesta a la capa de presentacin [3].
2.1. Programacin en N capas
Podemos decir que es la que se presenta al usuario,
El estilo arquitectural en n capas se basa en una distri- llamada tambin formulario o interfaz de presentacin,
bucin jerrquica de los roles y las responsabilidades esta captura los datos del usuario en el formulario e
para proporcionar una divisin efectiva de los proble- invoca a la capa de negocio, trasmitindole los reque-
mas a resolver. Los roles indican el tipo y la forma de la rimientos del usuario, ya sea de almacenaje, edicin,
interaccin con otras capas y las responsabilidades la o de recuperacin de la informacin para la consulta
funcionalidad que implementan [1]. respectiva.
Cuanto ms se aumenta el proceso operativo de la
2.2.2. Capa de negocio
empresa, las necesidades de proceso crecen hasta
desbordar las mquinas. Es por ello que se separa la Es la responsable del procesamiento que tiene lugar en
estructura de un programa en varias capas [2]. la aplicacin. Por ejemplo, en una aplicacin bancaria
el cdigo de la capa de presentacin se relacionara
simplemente con la monitorizacin de sucesos y con el
envo de datos a la capa de procesamiento. Esta capa
Capa de
Presentacin
Capa de
Negocios
intermedia contendra los objetos que se corresponden
con las entidades de la aplicacin. Esta capa interme-
dia es la que conlleva capacidad de mantenimiento y
de reutilizacin.

Clientes Servidor de Negociacin Contendr objetos definidos por clases reutilizables


Capa de datos que se pueden utilizar una y otra vez en otras apli-
caciones. Estos objetos se suelen llamar objetos de
negocios y son los que contienen la gama normal de
constructores, mtodos para establecer y obtener va-
riables, mtodos que llevan a cabo clculos y mtodos,
Servidor de Base de Datos
normalmente privados, en comunicacin con la capa de
Figura N. 1. Modelo tpico de tres capas. la base de datos [3].

58
RISI 7(1), 57 - 67 (2010) Programacin en N capas

Es en esta capa donde se reciben los requerimientos fsica de componentes y funcionalidad en servidores
del usuario y se envan las respuestas tras el proceso, a separados. Teniendo en cuenta topologa de redes y
requerimiento de la capa de presentacin. Se denomi- localizaciones remotas [1].
na capa de negocio o lgica del negocio, es aqu donde
Las arquitecturas de N niveles facilitan la presencia de
se establecen todas las reglas que deben cumplirse.
sistemas distribuidos en los que se pueden dividir los
En realidad se puede tratar de varias funciones, por
servicios y aumentar la escalabilidad y mantenimiento
ejemplo, puede controlar la integridad referencial, otro
de los mismos [4].
que se encargue de la interfaz, tal como abrir y cerrar
ciertos formularios o funcionalidades que tengan que 2.3. Entorno terico de programacin orientado
ver con la seguridad, mens, etc., tiene los mtodos a objetos en Visual Basic .Net para la aplicacin
que sern llamados desde las distintas partes de la in- ejemplo
terfaz o para acceder a la capa de datos, tal como se
apreciar en el ejemplo. 2.3.1. Programacin orientada a objetos
Esta capa interacta con la capa de presentacin para Segn Grady Booch, es un mtodo de implementacin
recibir las solicitudes y presentar los resultados, y con en el que los programas se organizan como coleccio-
la capa de datos, para solicitar al manejador de base de nes cooperativas de objetos, cada uno de los cuales re-
datos que realice una operacin de almacenamiento, presenta una instancia de alguna clase y cuyas clases
edicin, eliminacin, consulta de datos u otra. son todas miembros de una jerarqua de clases unidas
mediante relaciones de herencia [5].
2.2.3. Capa de datos
Los programas orientados a objetos constan de objetos
Esta capa se encarga de acceder a los datos, se debe que se comunican entre s a travs de mensajes [6].
usar la capa de datos para almacenar y recuperar toda
la informacin de sincronizacin del Sistema [1]. 2.3.2. Clase
Es aqu donde se implementa las conexiones al servi- Conjunto de objetos que comparten caractersticas
dor y la base de datos propiamente dicha, se invoca esenciales comunes tales como propiedades, mtodos,
a los procedimientos almacenados los cuales reciben se pueden agrupar en una clase respectiva. En visual
solicitudes de almacenamiento o recuperacin de infor- basic se debe:
macin desde la capa de negocio. Utilizar la palabra clave class antes del nombre de
Todas estas capas pueden residir en un nico ordena- la clase.
dor (no debera ser lo usual), pero es lo ms frecuente. Insertar los miembros de la clase entre el nombre de
En sistemas complejos se llega a tener varios ordena- la clase y la instruccin End Class.
dores sobre los cuales reside la capa de datos, y otra
serie de ordenadores sobre los cuales reside la base Ejemplo:
de datos.
Public Class FrmPresentaCliente
Se recomienda que si el crecimiento de las necesidades
o complejidad aumenta se debe separar en dos o ms -----Instrucciones
ordenadores, los cuales recibirn las peticiones del or-
End Class
denador en que resida la capa de negocio. Esta reco-
mendacin es vlida para la capa de negocios.

2.2.4. Capas y Niveles 2.3.3 Mtodos


Es importante distinguir los conceptos de Capas Los mtodos (operaciones o servicios) describen, el
(Layers) y Niveles (Tiers). Las capas se ocupan de comportamiento asociado a un objeto, representan
la divisin lgica de componentes y funcionalidad y no las acciones que pueden realizarse por un objeto. La
tienen en cuenta la localizacin fsica de componentes ejecucin de un mtodo puede conducir a cambiar el
en diferentes servidores o en diferentes lugares. Por estado del objeto o dato local del objeto [5].
el contrario, los Niveles se ocupan de la distribucin

59
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 2, Julio - Diciembre 2010

Ejemplo declaracin de mtodos Inherits clase-base


Las operaciones que realiza las clases se pueden de- Body
clarar como pblicos o privados. Por ejemplo, para una
End Class
clase empleado se declara el mtodo publico Calculo-
deSalario de la siguiente manera: Ejemplo
Public Sub CalculodeSalario(ByVal fldtInicio As Class Persona
Date, _
Public Function Edad(). ....
ByVal fliDias As Integer)
End Function
en este mtodo calculamos el periodo
End Class
de vacaciones del empleado,
End Sub
Class Empleado
Ejemplo Declaracin de propiedades y mtodos Set
Inherits Persona
y Get en .Net
End Class
Las propiedades o atributos con los cuales va a trabajar
la clase por intermedio de los mtodos se declaran: En este caso, la clase Empleado hereda los mtodos
y atributos definidos en la clase base (Persona). La
Public Class Empleado
sentencia inherits en Visual Basic .Net indica que se
variables de propiedad hereda de una clase.
Private msNombre As String 2.3.5 Sobrecarga
procedimientos de propiedad La sobrecarga, es una propiedad que describe una ca-
Public Property Nombre() As String racterstica adecuada que utiliza el mismo nombre de
operacin para representar operaciones similares que
Get se comportan de manera diferente cuando se aplican
Return msNombre a clases diferentes. Por consiguiente, los nombres de
las operaciones se pueden sobrecargar, esto es, las
End Get operaciones se definen en clases diferentes y pueden
Set(ByVal Value As String) tener nombres idnticos, aunque su cdigo programa-
do puede diferir [5].
msNombre = Value
2.3.6 Crear un objeto en .Net instanciando la clase
End Set
de una capa
End Property
Un objeto instancia a una capa, luego por medio de
2.3.4. Herencia este objeto accede a la capa respectiva retornando el
mtodo o propiedades, segn lo invocado, por ejemplo:
La herencia es un mecanismo por medio del cual una
clase puede heredar las propiedades de otra. Asimis- Private ObjetoDatos As CapaDatos.ClaseDatos
mo, permite que se construya una jerarqua de clases Propiedades
que se extiende desde lo ms general a lo ms espe-
cfico [7]. Metodos
En otras palabras, una clase derivada hereda propieda- Sub New()
des y mtodos de la clase base; permitiendo que la cla- ObjetoDatos = New CapaDatos.ClaseDatos
se derivada reutilice la funcionalidad de la clase base.
End Sub
Class identifiers

60
RISI 7(1), 57 - 67 (2010) Programacin en N capas

2.3.7. Mtodos SqlHelper


Los mtodos SqlHelper proporcionan un conjunto de
facilidades, que permiten ejecutar varios tipos de co-
mandos diversos con la base de datos SQL Server,
ayudando a reducir cdigo, la forma de invocarlo es:
Microsoft.ApplicationBlocks.Data, donde microsoft.
AplicationBlocks.Data.dll es un ensamblado que se
debe tener copiado para que pueda ser referenciada
por la aplicacin [8].

2.3.8. Procedimientos almacenados


La interaccin con la base de datos es mediante los
procedimientos almacenados. Los procedimientos al- Figura N. 3. Formulario de presentacin en ejecucin con los datos
ingresados.
macenados son un conjunto de instrucciones SQL que
trabajan como una unidad y que se ejecutan utilizando 3.1. Capa de negocios
solo el nombre que le hemos asignado. Imports CapaEntidad, CapaDatos
El uso de procedimientos almacenados tiene las ven- COMENTARIO: la lnea anterior invoca a las capas:
tajas siguientes:
entidad y de datos
Se ejecutan en el servidor. Public Class ClaseNegocios Miembros
Las instrucciones se ejecutan ms rpido. Private ObjetoCliente As New CapaEntidad.Cla-
Ayudan en la programacin orientada a objetos, seEntidad
cuando se trabaja con las capas en general ya sea Private ObjetoDatos As Datos.ClaseDatos
con aplicaciones windows, o web [9].
COMENTARIO: Se declaran los Miembros objetos;
2.3.9. Sintaxis para crear un procedimiento alma- ObjetoCliente, y ObjetoDatos
cenado en SQL SERVER que van a acceder a las capas CapaEntidad y Capa
Create Procedure Nombre_del procedimiento As Ins- Datos respectivamente.
trucciones SQL. Sub New()
ObjetoDatos = New Datos.ClaseDatos
3. EJEMPLO DE APLICACIN CON 4 CAPAS End Sub
Mostraremos un mantenimiento de una tabla de clien- COMENTARIO: Se instancia el Objeto ObjetDatos
tes, desarrollada en Visual Basic. Net. para poder acceder a la capa
de Datos.
Function MostrarClientes() As DataSet
Return ObjetoDatos.Retornar(MuestraClientes)
End Function

Sub Insertar(ByVal IdCliente As String, ByVal Com-


paia As String, ByVal Contacto As String, ByVal Pais
As String)
ObjetoCliente.IdCliente = IdCliente
Figura N. 2. Formulario de presentacin sin datos. ObjetoCliente.Compaia = Compaia

61
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 2, Julio - Diciembre 2010

ObjetoCliente.Contacto = Contacto capa de Presentacin se enviar como parmetro


a la capa de negocios para la eliminacin del cliente
ObjetoCliente.Pais = Pais
respectivo.
ObjetoDatos.ProcesaSMP(AgregarCliente, Objeto-
Cliente) 3.2. Capa de entidad
End Sub Public Class ClaseEntidad
COMENTARIO: Los datos ingresados en la capa de Miembros o Atributos
presentacin se enviarn como Private sidCliente As String
parmetros a la capa de negocios los cuales se Private sCompaia As String
guardaran en los objetos
Private sContacto As String
ObjetoCliente.Idcliente, ObjetoCliente.Compaia,
ObjetoCliente.Contacto, Private sPais As String
ObjetoCliente.Pas, respectivamente, para poder Propiedades
ingresar el cliente respectivo.
Property IdCliente() As String
Get
Sub Modificar(ByVal IdCliente As String, ByVal Com-
Return Me.sidCliente
paia As String, ByVal Contacto As String, ByVal Pais
As String) End Get
ObjetoCliente.IdCliente = IdCliente Set(ByVal value As String)
ObjetoCliente.Compaia = Compaia Me.sidCliente = value
ObjetoCliente.Contacto = Contacto End Set
ObjetoCliente.Pais = Pais End Property
ObjetoDatos.ProcesaSMP(EditarCliente, Objeto- Property Compaia() As String
Cliente)
Get
End Sub
Return Me.sCompaia
COMENTARIO: Los datos ingresados en la capa de
End Get
presentacin se enviarn como
Set(ByVal value As String)
parmetros a la capa de negocios los cuales se
guardaran en los objetos Me.sCompaia = value
ObjetoCliente.Idcliente, ObjetoCliente.Compaia End Set
,ObjetoCliente.Contacto,
End Property
ObjetoCliente.Pais, respectivamente, para poder
Property Contacto() As String
moficar el cliente respectivo.
Get
Return Me.sContacto
Sub Eliminar(ByVal IdCliente As String)
End Get
ObjetoCliente.IdCliente = IdCliente
Set(ByVal value As String)
ObjetoDatos.ProcesaSMP1(SuprimirCliente, Obje-
toCliente) Me.sContacto = value
End Sub End Set
End Class End Property
COMENTARIO: El dato respecto al IdCliente en la Property Pais() As String

62
RISI 7(1), 57 - 67 (2010) Programacin en N capas

Get
Return Me.sPais Sub ProcesaSMP1(ByVal Smp As String, ByVal Ob-
jetoCliente As Entidad.Clientes)
End Get
SqlHelper.ExecuteNonQuery(Conexion, Smp, Obje-
Set(ByVal value As String)
toCliente.IdCliente)
Me.sPais = value
End Sub
End Set
End Property
COMENTARIO: Este Procedimiento hace uso de
COMENTARIO: en esta capa se guardan y devuel- la librera SqlHelper, los parametros enviado por la
ven los valores enviados por la capa de negocios. capa de negocios en el objeto objetocliente el cual
mediante el procedimiento almacenado Suprimir-
End Class
Cliente eliminar al cliente respectivo.
3.3. Capa de datos
Imports CapaEntidad, Microsoft.ApplicationBlocks. Function Retornar(ByVal SmP As String) As DataSet
Data
Return SqlHelper.ExecuteDataset(Conexion, SmP)
COMENTARIO: La lnea anterior invoca a la capa
entidad, y a la librera SQLHELPER que es una utili- End Function
dad de .Net para optimizar lneas de cdigo. End Class

Public Class ClaseDatos COMENTARIO: Esta funcin retorna los datos en un


Private Conexion As String = Server=pc01\sqlexpre dataset (tabla temporal
ss;Database=FACTURAS;integrated security=sspi; en memoria ) para que se muestren los datos. en los
textbox definidos en la capa de presentacin.

COMENTARIO: Mediante esta lnea se crea la va- 3.4. Capa de presentacin (formulario)
riable Conexion que tendr la ruta
Imports CapaNegocio
al servidor y el nombre de la base de datos respec-
COMENTARIO: La lnea anterior invoca a la capa
tiva en esta caso facturas.
de negocios.

Sub ProcesaSMP(ByVal Smp As String, ByVal Obje-


Public Class Form1
toCliente As Entidad.Clientes)
Miembros
SqlHelper.ExecuteNonQuery(Conexion, Smp, Obje-
toCliente.IdCliente, _ Private NroRegistro As Integer, Posactual As Integer,
Eproceso As Boolean
ObjetoCliente.Compaia, ObjetoCliente.Contacto,
ObjetoCliente.Pais) Private ObjetoCliente As New CapaNegocio.Clase-
negocios
End Sub
Private Ds As New DataSet
Private dc As DataColumn()
COMENTARIO: Este Procedimiento hace uso de
la librera SqlHelper, los parametros enviados por
la capa de negocios en el objeto objetocliente, me-
Private Sub Desplazar(ByVal sender As System.
diante el cual el procedimiento almacenado Agre-
Object, ByVal e As System.EventArgs) Handles
garCliente o EditarCliente permitir que la capa de
cmbInicio.Click, cmbAnterior.Click, cmbSiguiente.
datos por medio de los store procedure ingrese el
Click, cmbUltimo.Click
cliente o modifique los datos del cliente respectivo

63
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 2, Julio - Diciembre 2010

Dim Index As Integer = CInt(sender.Tag) txtContacto.Text = Ds.Tables(0).Rows(Posact)(2).


ToString
Select Case Index
txtPais.Text = Ds.Tables(0).Rows(Posact)(3).To-
Case 0
String
Posactual = 0
End Sub
Case 1
If (Posactual > 0) Then Posactual -= 1
COMENTARIO: Muestra los campos de registros
Case 2 segn donde se encuentra el cursor o puntero de
registro.
If (Posactual < NroRegistro - 1) Then Posactual += 1
Private Sub cmbNuevo_Click(ByVal sender As Sys-
Case 3
tem.Object, ByVal e As System.EventArgs) Handles
Posactual = NroRegistro - 1 cmbNuevo.Click
End Select Eproceso = True
VisualizaRegistro(Posactual) ActivarBotones(False)
End Sub ActivarCajas(False)
BorrarcCajas()
COMENTARIO : En este procedimiento se programa End Sub
el men de opciones para que se desplace el usua-
COMENTARIO: Desactiva las cajas al igual que los
rio en el formulario.
botones hasta ingresar un nuevo registro.

Private Sub Form1_Load(ByVal sender As Object,


Private Sub cmbEditar_Click(ByVal sender As Sys-
ByVal e As System.EventArgs) Handles Me.Load
tem.Object, ByVal e As System.EventArgs) Handles
Ds = ObjetoCliente.MostrarClientes cmbEditar.Click
NroRegistro = Ds.Tables(0).Rows.Count ActivarBotones(False)
Posactual = 0 ActivarCajas(False)
VisualizaRegistro(Posactual) Eproceso = False
ActivarBotones(True) End Sub
ActivarCajas(True) COMENTARIO : Desactiva las cajas al igual que los
botones hasta ingresar un nuevo registro, hasta pul-
End Sub sar o dar click en el botn grabar.

COMENTARIO: Este procedimiento es el que se Private Sub cmbGrabar_Click(ByVal sender As Sys-


ejecuta primero al correr la aplicacin se contabiliza tem.Object, ByVal e As System.EventArgs) Handles
el numero de registros, llama a los procedimientos cmbGrabar.Click
VisualizarRegistro, para que muestre al primer re-
gistro, adems de activar los botones y las cajas de If Eproceso Then
edicin.
ObjetoCliente.Insertar(txtIdCliente.Text, txtCompa-
Sub VisualizaRegistro(ByVal Posact As Integer) ia.Text, txtContacto.Text, txtPais.Text)
txtIdCliente.Text = Ds.Tables(0).Rows(Posact)(0).
ToString
Else
txtCompaia.Text = Ds.Tables(0).Rows(Posact)(1).
ObjetoCliente.Modificar(txtIdCliente.Text, txtCompa-
ToString
ia.Text, txtContacto.Text, txtPais.Text)

64
RISI 7(1), 57 - 67 (2010) Programacin en N capas

End If If TypeOf Obj Is TextBox Then


Ds.Clear() Obj.ReadOnly = Estado
Form1_Load(sender, e) End If
End Sub Next
End Sub
COMENTARIO: dependiendo del valor de Eproceso
se insertar un nuevo cliente o se modificar datos
COMENTARIO: Se activan los textbox, para poder
del cliente, es decir con una sola rutina se controla
ingresar o editar los textbox
ya sea el ingreso o edicin de los datos del cliente.

Private Sub cmbEliminar_Click(ByVal sender As Sys-


Sub BorrarcCajas()
tem.Object, ByVal e As System.EventArgs) Handles
Dim Obj As Object cmbEliminar.Click
For Each Obj In Me.Controls If MessageBox.Show(Esta Seguro, Confirme,
MessageBoxButtons.YesNo, MessageBoxIcon.
If TypeOf Obj Is TextBox Then
Question) = Windows.Forms.DialogResult.Yes Then
Obj.Clear()
ObjetoCliente.Eliminar(txtIdCliente.Text)
End If
Form1_Load(sender, e)
Next
End If
End Sub
End Sub
COMENTARIO: Para poder ingresar nuevos regis-
tros se borrara los textbox respectivos.
COMENTARIO: toma el registro activo y mediante el
idcliente, enva el parmetro a la capa de negocios
Sub ActivarBotones(ByVal Estado As Boolean) para que esta a su vez lo envie a la capa de datos
para la eliminacin del registro respectivo.
Dim Obj As Object
End Class
For Each Obj In Me.Controls
If TypeOf Obj Is Button Then
Obj.Enabled = Estado 3.5. Procedimientos almacenados que son
invocados por la capa de datos.
End If
USE FACTURAS
Next
GO
cmbGrabar.Enabled = Not Estado
--Script MuestraCliente
End Sub
IF Exists(SELECT * FROM sysobjects
WHERE Name=MuestraCliente AND
COMENTARIO: Para poder navegar adelante, atrs, Type=P)
etc., se activan los botones excepto, el de grabar..
DROP PROCEDURE AgregarCliente
GO
Sub ActivarCajas(ByVal Estado As Boolean)
CREATE PROCEDURE MuestraCliente
Dim Obj As Object
AS
For Each Obj In Me.Controls
SELECT * FROM CLIENTES

65
Revista de Ingeniera de Sistemas e Informtica vol. 7, N. 2, Julio - Diciembre 2010

GO DELETE FROM CLIENTES WHERE IdCli-


ente=@IdCliente
-- Script de Mantenimiento
GO
-- Procedimiento almacenado: AgregarCliente
IF Exists(SELECT * FROM sysobjects
COMENTARIO: El punto 3.5 corresponde a los
WHERE Name=AgregarCliente AND Type=P)
scripts para crear los procedimientos almacenados
DROP PROCEDURE AgregarCliente en la base de datos a fin de poder agregar, modificar,
eliminar clientes en la base de datos facturas, esto
GO
se ha hecho en el servidor SQL SERVER.
CREATE PROCEDURE AgregarCliente
@IdCliente CHAR(5), @Compaia VARCHAR(40),
4. CONCLUSIONES
@Contacto VARCHAR(40), @Pais VARCHAR(15) El estilo de programacin en N capas se basa en
AS segmentar un proyecto en varias partes para rea-
INSERT CLIENTES VALUES(@IdCliente,@ lizar una programacin independiente en cada una
Compaia,@Contacto,@Pais) de ellas.
Facilita la reutilizacin de capas.
GO
Permite una mejor estandarizacin.
-- Procedimiento Almacenado EditarCliente
El trabajo por parte de los analistas es complejo,
IF Exists(SELECT * FROM sysobjects pero al final se crea una arquitectura ms fcil de
WHERE Name=EditarCliente AND Type=P) comprender y de implementar.
DROP PROCEDURE EditarCliente En cuanto a la seguridad este estilo de programa-
cin es ms fiable.
GO
Se puede elaborar componentes para cada capa,
CREATE PROCEDURE EditarCliente avanzando el desarrollo de manera independiente
@IdCliente CHAR(5), @Compaia VARCHAR(40), y por ende el global del Sistema puede desarrollar-
se ms rpido.
@Contacto VARCHAR(40), @Pais VARCHAR(15)
Ayuda mucho al programador de aplicaciones para
AS dar mantenimiento al Sistema, dado que el proble-
UPDATE CLIENTES SET Compaia = @Compa- ma que pudiera suscitarse es visto en la capa res-
ia, pectiva.
Contacto = @Contacto, Pais = @Pais Por ende los costos de mantenimiento tienden a ser
menores.
WHERE IdCliente = @IdCliente
Dado los vertiginosos cambios en la dinmica de
GO los negocios este estilo de programacin provee
-- Procedimiento Almacenado : SuprimirCliente que el Sistema sea escalable.
IF Exists(SELECT * FROM sysobjects
WHERE Name=SuprimirCliente AND Type =P) 5. REFERENCIAS BIBLIOGRFICAS

DROP PROCEDURE SuprimirCliente 1. Csar de la Torre Llorente, Unai Zorrilla Castro, Mi-
guel ngel Barros, Javier Calvario Nelson. Gua de
GO arquitectura en N capas orientadas al dominio con
CREATE PROCEDURE SuprimirCliente Net 4.0 impreso en Espaa- derechos reservados
Microsoft-ibrica S.R.L ISBN -978-84-936696-3-8,
@IdCliente CHAR(5)
2010
AS 2. Luis Miguel Blanco. Programacin en Visual Basic

66
RISI 7(1), 57 - 67 (2010) Programacin en N capas

.Net - Grupo EIDOS, Madrid (Espaa), ISBN 84- 6. Joyanes Aguilar, Luis. Programacin orientada a
88457-53-7, 2002. objetos. Segunda edicin, Editorial McGraw-Hill In-
3. Roger Presuman. Ingeniera del Software: un enfo- teramericana de Espaa, ISBN 84-481-000-2015-
que prctico.Quinta edicin, McGraw-Hill Interame- 9, 1998.
ricana de Espaa, ISBN: 84-481-3214-9, 2002. 7. Herbert Schildt C++ para Programadores. McGraw
4. Gosnell Denise, Reynolds Matthew y Forgey Bill. Hill Interamericana de Espaa. ISBN 0-07-882140-
Iniciacin a Visual Basic.net Base de Datos, Dani- 1, 1996
soft (Madrid-Espaa) ISBN: 1-861005-55, 2002. 8. Francisco Charte Ojeda. Programacin de Base
5. Luis Joyanes. Programacin en C++ Algoritmos, de Datos con Visual Basic .Net - Madrid, Espaa
estructura de datos y objetos.McGraw-Hill Intera- ISBN:84-415-1375-9, 2002.
mericana de Espaa, ISBN: 84-481-2487-1, 2000. 9. Castaeda Len, Juan Jos. Aplicaciones en Ado.
Net Editorial Per-Ritisa Graff S.R.L, Lima, 1ra edi-
cin. ISBN: 9972-218-00-7, 2005.

67

También podría gustarte