La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Desarrollo de componentes en Visual Basic .NET

Presentaciones similares


Presentación del tema: "Desarrollo de componentes en Visual Basic .NET"— Transcripción de la presentación:

1 Desarrollo de componentes en Visual Basic .NET

2 Descripción Descripción de los componentes
Creación de componentes con servicio Creación de clases de componentes Creación de controles de formularios Windows Forms Hilos de ejecución

3 Descripción de los componentes
Tipos de componentes Uso de módulos como componentes Uso de clases como componentes Uso de componentes en aplicaciones cliente no gestionadas Descripción de .NET Remoting

4 Tipos de componentes Estructuras Módulos Clases Clases de componentes
Componentes con servicio Controles de usuario Controles de usuario de formularios Windows Forms Controles de usuario de formularios Web Forms

5 Uso de módulos como componentes
Declarar el módulo como público Referenciar e importar el ensamblado en código cliente Public Module MyMathFunctions Public Function Square(ByVal lng As Integer) As Long Return (lng * lng) End Function ... End Module 'Client code Imports MyAssembly Dim x As Long = Square(20)

6 Uso de clases como componentes
Declarar la clase como pública Referenciar e importar el ensamblado en código cliente Public Class Account Public Sub Debit(ByVal AccountId As Long, Amount As Double) 'Perform debit action End Sub Public Sub Credit(ByVal AccountId As Long, Amount As Double) 'Perform credit action End Class 'Client code Imports MyAssembly Dim x As New Account( ) x.Debit(1021, 1000)

7 Uso de componentes en aplicaciones cliente no gestionadas
Establecer las propiedades del ensamblado Generar un nombre seguro Seleccionar Registrar para COM Interop en las opciones de Generar Exponer miembros de claes a COM y a los servicios de componentes Definir e implementar interfaces Utilizar el atributo ClassInterface con valor AutoDual Utilizar el atributo COMClass

8 Descripción de .NET Remoting
Cliente AppDomain Servidor AppDomain Marshal By Reference Código cliente Canal Formateador Formateador Servidor Proxy Objeto servidor Marshal By Value Código cliente Canal Canal Formateador Copia objeto servidor Límite de Remoting

9 Creación de componentes con servicio
Hospedar componentes en los servicios de componentes Uso de transacciones Uso de la agrupación de objetos Uso de cadenas de constructor Uso de seguridad Uso de otros servicios de componentes Configurar ensamblados para usar los servicios de componentes

10 Hospedar componentes en los servicios de componentes
Agregar una referencia a System.EnterpriseServices en el ensamblado El espacio de nombres System.EnterpriseServices proporciona: Clase ContextUtil Clase ServicedComponent Atributos de ensamblado, clase y método

11 Uso de transacciones El atributo Transaction especifica cómo participa una clase en las transacciones La clase ContextUtil proporciona votación en una transacción El atributo AutoComplete impide el uso de los métodos SetAbort, SetComplete y ContextUtil <Transaction(TransactionOption.Required)> Public Class Account Inherits ServicedComponent Public Sub Debit(...) 'Perform debit action ContextUtil.SetComplete( ) End Sub <AutoComplete( )> Public Sub Credit(...) 'Perform credit action 'No SetComplete because AutoComplete is on End Class

12 Uso de la agrupación de objetos
La agrupación de objetos permite crear objetos con antelación El atributo ObjectPooling especifica MinPoolSize y MaxPoolSize ServicedComponent proporciona el método CanBePooled <ObjectPooling(Enabled:=True, MinPoolSize:=5, _ MaxPoolSize:=50)> _ Public Class Account Inherits ServicedComponent ... Protected Overrides Function CanBePooled( ) As Boolean Return True End Function End Class

13 Uso de las cadenas de constructor
Especifican el atributo ConstructionEnabled para indicar que se necesita una cadena de constructor Reemplazan el método Construct para recuperar información <ConstructionEnabled(True)>Public Class Account Inherits ServicedComponent Protected Overrides Sub Construct(ByVal s As String) 'Called after class constructor 'Use passed in string End Sub End Class

14 Uso de seguridad Los atributos de la configuración de seguridad habilitan la configuración de la seguridad y su papel La clase SecurityCallContext proporciona comprobación de roles y ofrece información sobre el llamador <ComponentAccessControl(True), seguridadRole("Manager")> _ Public Class Account Inherits ServicedComponent Public Function GetDetails( ) As String With seguridadCallContext.CurrentCall If .IsCallerInRole("Manager") Then Return .OriginalCaller.AccountName End If End With End Function End Class

15 Uso de otros servicios de componentes
Otros servicios de componentes incluyen: Activación Just-in-time Componentes encolados Propiedades compartidas Sincronización

16 Configurar ensamblados para usar los servicios de componentes
Establecer atributos a nivel de ensamblado ApplicationName Description ApplicationActivation: biblitoteca o aplícación servidora AssemblyKeyFile Uso de Regsvcs para registrar y crear aplicaciones de servicios de componentes Regsvcs.exe myApplication.dll Uso de Lazy Registration Aplicación registrada la primera vez que se utilice por parte de un cliente

17 Demostración: Creación de un componente con servicio

18 Creación de clases de componentes
Arquitectura de una clase de componentes Creación de una clase de componentes

19 Arquitectura de una clase de componentes
Clase base System.ComponentModel.Component Interfaz IComponent Clases de componentes Clases derivadas Clases predefinidas Clases personalizadas

20 Creación de una clase de componentes
1. Heredar de System.ComponentModel.Component Realizar las inicializaciones por parte del constructor Sobrecargar el método Dispose 2. Agregar los componentes ubicados Utilizar elementos del Explorador de servidores o del cuadro de herramientas 3. Crear la funcionalidad requerida Propiedades, métodos y eventos 4. Generar el ensamblado

21 Demostración: Creación de un componente Stopwatch

22 Creación de controles de formularios Windows Forms
Heredar de la clase UserControl Heredar de un control existente Windows Forms Proporcionar atributos a los controles

23 Heredar de la clase UserControl
Heredar de System.Windows.Forms.UserControl Agregar los controles necesarios al diseñador Agregar propiedades y métodos que correspondan a los de los controles constitutivos Agregar propiedades y métodos adicionales No InitProperties, ReadProperties ni WriteProperties El almacenamiento de propiedades es automático

24 Heredar de un control existente Windows Forms
Permite mejorar la versión de un determinado control Heredar de un control System.Windows.Forms Public Class MyTextBox Inherits System.Windows.Forms.TextBox Private strData As String Public Property HiddenData( ) As String Get Return strData End Get Set(ByVal Value As String) strData = Value End Set End Property ... End Class

25 Proporcionar atributos a los controles
System.ComponentModel proprociona atributos a los controles A nivel de clase: DefaultProperty, DefaultEvent, ToolboxBitmap A nivel de propiedad: Category, Description, DefaultValue Imports System.ComponentModel <ToolboxBitmap("C:\txticon.ico"), DefaultEvent("Click")> _ Public Class MyTextBox Inherits System.Windows.Forms.UserControl <Category("Appearance"), _ Description("Stores extra data"), _ DefaultValue("Empty")> _ Public Property HiddenData( ) As String ... End Property End Class

26 Demostración: Creación de una caja de texto mejorada

27 Manejo de hilos de ejecución
¿Qué es un hilo? Ventajas de múltiples hilos de ejecución Creación de hilos Uso de hilos Cuándo utilizar el manejo de hilos

28 ¿Qué es un hilo? La unidad de ejecución que procesa la CPU
Todos los procesos de una aplicación contienen al menos un hilo Los hilos están planificados Parece que el equipo realiza varias tareas a la vez Cada hilo contiene su propia pila de llamadas y almacenamiento Programador de subprocesos Proceso 1 Subproc.1 CPU Subproc. 1 Subproc. 3 Subproc. 2 Subproc. 3 Subproc. 2 Subproc. 1 Subproc. 2 Proceso 2 Subproc. 3

29 Ventajas de múltiples hilos de ejecución
Mejor respuesta de la interfaz de usuario Ejemplo: barra de estado Sin bloqueos Comunicación asíncrona Sin afinidad de hilos Los objetos no están vinculados a un hilo

30 Creación de hilos Uso de la clase System.Threading.Thread
El constructor especifica el método delegado Los métodos proporcionan control del procesamiento de hilos Las propiedades proporcionan información de estado y prioridades Utilizar una clase si se requieren parámetros Permitir acceso público a variables clase Lanzar un evento cuando finalice

31 Uso de hilos Class Calculate Public iValue As Integer
Public Event Complete(ByVal Result As Integer) Public Sub LongCalculation( ) 'Perform a long calculation based on iValue ... RaiseEvent Complete(iResult) 'Raise event to signal finish End Sub End Class Sub Test( ) Dim calc As New Calculate( ) Dim th As New Threading.Thread(AddressOf calc.LongCalculation) calc.iValue = 10 AddHandler calc.Complete, AddressOf CalcResult th.Start( ) End Sub Sub CalcResult(ByVal Result As Integer) ...

32 Cuándo utilizar el manejo de hilos
Utilizar los hilos con precaución El uso de más hilos requiere más recursos del sistema Sincronizar el acceso a recursos compartidos Evitar que dos hilos accedan simultáneamente a datos compartidos Utilizar la instrucción SyncLock para bloquear secciones de código Sub Worker( ) SyncLock(theData) 'Lock this object variable theData.id = iValue 'Perform some lengthy action iValue = theData.id End SyncLock 'Unlock the object variable End Sub

33 Demostración: Uso de la instrucción SyncLock


Descargar ppt "Desarrollo de componentes en Visual Basic .NET"

Presentaciones similares


Anuncios Google