Está en la página 1de 7

Práctica A: Creación de un componente con servicio

Objetivo
Presentar el laboratorio.
Presentación
En este laboratorio,
crearemos un componente
con servicio que gestiona
información de inicio de
sesión de clientes.

Explicar los objetivos del


laboratorio. Objetivos
En este laboratorio, aprenderemos a:
„ Crear un componente con servicio.
„ Referenciar un componente con servicio.

Requisitos previos
Para poder trabajar en este laboratorio, debemos estar familiarizados con la
creación y uso de componentes en MTS o Servicios de componentes.

Escenario
En este laboratorio, crearemos un componente con servicio basado en una clase
existente. La clase contiene un único método que los clientes utilizan para
iniciar sesión. Registraremos este ensamblado con los servicios de componentes
y crearemos una aplicación de prueba (test harness) que haga referencia y
pruebe nuestro componente. La aplicación de prueba utilizará un formulario
existente que nos permitirá introducir la dirección de correo electrónico y la
contraseña de un cliente para recuperar los datos del cliente utilizando el
componente.

Archivos de inicio y de solución


Existen archivos de inicio y solución asociados a este laboratorio. Los archivos
de inicio se encuentran en la carpeta Ex0x\Starter, y los archivos de solución se
encuentran en Ex0x\Solution (siendo x el número del ejercicio). Estas carpetas
se pueden encontrar dentro del fichero labs11.zip.

Tiempo estimado para realizar este laboratorio: 60 minutos


¡Error! No hay texto con el estilo especificado en el documento. 3

Ejercicio 1
Crear el componente con servicio Customer
En este ejercicio, crearemos un componente con servicio. El componente se
basa en una interfaz previamente desarrollada denominada ICustomer y una
clase denominada Customer que implementa la interfaz. Agregaremos una
referencia al ensamblado EnterpriseServices y marcaremos la clase como un
componente con servicio que requiere transacciones y una cadena de
construcción. Agregaremos atributos a nivel de ensamblado que se utilizarán
cuando pongamos el componente bajo el control de los servicios de
componentes.

Ë Abrir el proyecto CustomerComponent


1. Abrir Microsoft Visual Studio .NET.
2. En el menú Archivo, seleccionar Abrir y hacer clic en Proyecto.
3. Establecer la ubicación en la carpeta Ex01\Starter que se puede encontrar
dentro del fichero labs11.zip, hacer clic en CustomerComponent.sln y clic
en Abrir.
4. Examinar el código Customer.vb de la interfaz ICustomer y la clase
Customer para entender la utilidad de la función LogOn.

Ë Hacer referencia al ensamblado EnterpriseServices


1. En el menú Proyecto, hacer clic en Agregar referencia.
2. En la ficha .NET, en la lista Nombre de componente, hacer clic en
System.EnterpriseServices, hacer clic en Seleccionar, y clic en Aceptar.
3. Abrir el Editor de código de Customer.vb. Al inicio del código, insertar la
instrucción Imports que hace referencia al espacio de nombres
System.EnterpriseServices.

Ë Marcar la clase Customer como un componente con servicio


• Introduzca la definición Public Class Customer y la instrucción
Implements ICustomer, agregar una instrucción Inherits
ServicedComponent.

Ë Agregar un comportamiento transaccional al componente Customer


1. Modificar la definición de la clase para incluir el atributo de clase
Transaction, especificando un valor de TransactionOption.Required.
Esto es necesario porque cada vez que un cliente inicia sesión en el sistema,
se actualiza el campo de fecha y hora “Last_Logon”.
2. En el bloque Try del método LogOn, antes de la instrucción que ejecuta
Return datCustomer, agregar una llamada a ContextUtil.SetComplete.
3. En el bloque Catch, antes de la instrucción que lanza la excepción a la
aplicación que realiza la llamada, agregar una llamada a
ContextUtil.SetAbort.

Ë Agregar el comportamiento de la cadena de construcción al


componente Customer
1. Modificar la definición de la clase para incluir el atributo de clase
ConstructionEnabled, especificando un valor True.
2. Sobrecargar el método Construct de la clase heredada
ServicedComponent y asignar el valor pasado a la variable local
connString.

Ë Agregar los atributos de ensamblado del componente con servicio


3. Abrir AssemblyInfo.vb.
4. Al principio del archivo, agregar una instrucción Imports que hace
referencia al espacio de nombres System.EnterpriseServices.
5. Agregar los siguientes atributos de ensamblado:
Atributo de ensamblado Parámetros

ApplicationName “Customers”
Description “Customer Component”
ApplicationActivation ActivationOption.Server

Ë Generar un archivo principal


1. Hacer clic en Inicio, seleccionar Todos los programas, seleccionar
Microsoft Visual Studio .NET, seleccionar Herramientas de Visual
Studio .NET, y hacer clic en Línea de comandos de Visual Studio .NET.
2. En la ventana de línea de comandos de Visual Studio .NET, ir a
Ex01\Starter.
3. Utilizar el siguiente comando para crear un nombre seguro principal para el
componente:
sn.exe –k CustomerComponent.snk

4. Dejar abierta ventana de línea de comandos. Se utilizará en el siguiente


ejercicio.

Ë Enlazar el archivo principal al componente


1. Abrir AssemblyInfo.vb.
2. Agregar el siguiente atributo de ensamblado:
<Assembly: AssemblyKeyFile("CustomerComponent.snk")>

Ë Compilar el ensamblado
• En el menú Generar, hacer clic en Generar solución, y cerrar Visual
Studio .NET.
¡Error! No hay texto con el estilo especificado en el documento. 5

Ejercicio 2
Crear una aplicación de componente con servicio
En este ejercicio, pondremos el componente bajo el control de los servicios de
componentes y estableceremos la cadena de construcción para la conexión a la
base de datos.

Ë Crear la aplicación de componente con servicio


1. Cambiar a la ventana de línea de comandos y navegar a
Ex01\Starter\bin.
2. Ejecutar el siguiente comando para registrar el ensamblado y crear la
aplicación de componente con servicio:
Regsvcs.exe CustomerComponent.dll

3. Cerrar la ventana de línea de comandos.

Ë Confirmar que el ensamblado es ahora una aplicación de componente


con servicio
1. Abrir el Panel de control, hacer clic en Rendimiento y mantenimiento,
hacer clic en Herramientas administrativas, y hacer doble clic en
Servicios de componentes.
2. Expandir los Servicios de componentes, expandir Equipos, expandir Mi PC,
y expandir Aplicaciones COM+.
3. Hacer clic con el botón derecho en la aplicación Customers, y hacer clic en
Propiedades. La pantalla debería ser similar a la siguiente imagen:
4. Confirmar que los atributos a nivel de ensamblado que se han especificado
en el proyecto han sido establecido en la aplicación.
5. Cerrar el cuadro de diálogo Propiedades de Customers.

Ë Establecer propiedades para el componente Customer


1. Expandir la aplicación Customers y localizar
CustomerComponent.Customer en la lista de componentes.
2. Hacer clic con el botón derecho en el componente
CustomerComponent.Customer, y hacer clic en Propiedades.
3. Hacer clic en la ficha Transacciones para ver la configuración transaccional
de la clase.
4. Hacer clic en la ficha Activation, establecer la cadena del constructor con el
valor siguiente y hacer clic en Aceptar:
Data Source=LocalHost;Initial Catalog=Cargo;Integrated
Security=True;

5. Cerrar la ventana Servicios de componentes.


¡Error! No hay texto con el estilo especificado en el documento. 7

Ejercicio 3
Probar el componente con servicio Customer
En este ejercicio, modificaremos una aplicación de prueba escrita previamente
para hacer referencia al componente con servicio Customer. A continuación,
probaremos la aplicación.

Ë Abrir el proyecto de prueba


1. Abrir Visual Studio .NET.
2. En el menú Archivo, seleccionar Abrir, y hacer clic en Proyecto.
3. Establecer la ubicación en la carpeta Ex03\Starter que se puede encontrar
dentro del fichero labs11.zip, hacer clic en TestHarness.sln, y hacer clic en
Abrir.

Ë Establecer una referencia al ensamblado del componente con servicio


1. En el menú Proyecto, hacer clic en Agregar referencia.
2. En el cuadro de diálogo Agregar referencia, hacer clic en Examinar, y
localizar la carpeta Ex01\Starter\bin.
3. Hacer clic en CustomerComponent.dll, y clic en Abrir.
4. En la lista existente de componentes .NET, hacer clic en
System.EnterpriseServices, y clic en Seleccionar.
5. Hacer clic en OK para cerrar el cuadro de diálogo Agregar referencia.

Ë Llamar el objeto Customer


1. En la ventana de código frmTestCustomer, agregar una instrucción Imports
CustomerComponent.
2. Localizar el método btnLogon_Click. En el bloque Try, declarar una
variable ICustomer denominada cust, e instanciarla creando un nuevo
objeto Customer. El código debería ser como el siguiente:
Dim cust As ICustomer = New Customer( )

3. Invocar el método LogOn del objeto cust, pasando los siguientes valores:
Parámetro Valor

Email txtEmail.Text
Password txtPassword.Text

4. Utilizar el objeto Dataset ds para almacenar el valor devuelto desde el


método LogOn.
Ë Probar la aplicación
1. En el menú Depurar, hacer clic en Iniciar.
2. Introduzca los siguientes valores:
TextBox Valor

E-mail john@tailspintoys.msn.com
Password password

3. Hacer clic en Log on, y confirmar que se ha recuperado con éxito un


registro del componente.
4. Hacer clic en Cerrar para salir de la aplicación de prueba.
5. Cerrar Visual Studio .NET.

También podría gustarte