Desarrollo de componentes en Visual Basic .NET

Slides:



Advertisements
Presentaciones similares
2. Manejo de memoria Manejo de memoria estática
Advertisements

Programación orientada a objetos en Visual Basic .NET
Programación para Office 2003 con Visual Studio Tools for Office System Octavio Hernández Servicios Profesionales Danysoft.
Controles para el desarrollo de clientes inteligentes con Windows Forms Mentor Asociado Solid Quality Learning IberoAmericana Daniel A. Seara NDSoft.
Curso de java básico (scjp)
Introducción a Windows Forms
Implementación de aplicaciones. Descripción Introducción a la implementación Implementar una aplicación basada en Windows Utilizar Visual Studio.NET Acceso.
Streams de datos y archivos
Administración del estado
Crear y consumir Servicios Web XML
Funciones. Subrutinas y procedimientos
Crear un formulario Web Form con Microsoft ASP.NET
Validación de la entrada de datos de usuario
Manejo de errores y excepciones
Seguimiento en aplicaciones Web con Microsoft ASP.NET
Uso de variables de tipo referencia
Creación de controles de usuario
Configurar, optimizar e implementar una aplicación Web Microsoft ASP
Agregar código a un formulario Web Form con Microsoft ASP.NET
Lenguaje de programación Java
Agenda Conceptos Claves.
Desarrollo de Aplicaciones para Internet
© Lic. Fernando Campos Camacho
Visual Basic.NET Daniel A. Seara NDSoft Consultoría y Desarrollo
MGB 2003 Nombre Puesto Compañía
Módulo 1: Primeros Pasos
Módulo 6: Validando la Entrada de Usuario
Introducción a Remoting
Objetos y Clases en Java
Programación Orientada a Objetos en Java
CURSO DE VISUAL BASIC .NET MODO GRAFICO
Sistema La Plata Módulo I INTRODUCCION A APLICACIONES WEB.
VB.NET Dr. Diego Lz. de Ipiña Gz. de Artaza
Interacción Persona Ordenador
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
VBA - Procedimientos Subprogramas (Procedimientos): Procedimientos Sub
TALLER DE PROGRAMACIÓN III
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP Sun Certified Programmer for Java 6
SQL SERVER Reporting Services
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
Sintaxis de C# (Declaraciones y Tipos)
InfoPath Ventajas y Uso.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Control de errores visual basic
Módulo 8: Manejo de Errores y Excepciones
APLICACIÓN EN VISUAL BASIC
Módulo 7: Programación Orientada a Objetos en Visual Basic 2005.
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO. (GUI GRAPHICAL.
NOMBRES:OLIVARES ALFARO JOSE L. BONETTI ARON GRUPO:308.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
C OLEGIO DE B ACHILLERES N O.13 X OCHIMILCO, T EPEPAN C ARRASCO G ARCÍA L ORENA T ORRES H EREDIA C ARLA P ALMIRA G RUPO : 308 M ATUTINO E QUIPO : 12.
por: Prof. Luis Vallenilla
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Módulo 4: Trabajando con Procedimientos. Descripción Crear procedimientos Uso de procedimientos Uso de funciones predefinidas Debug and Deploy Escribir.
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
Curso Plataforma.NET Lic. Israel García Anido. Temario POO y migración desde VB a VB.net. POO y migración desde VB a VB.net. Introduccion a la Plataforma.NET.
Programación en Visual Basic
Herencia en C++ Agustín J. González ELO329. Diseño y Programación Orientados a Objetos 2 Motor ElectricMotor Motor y ElectricMotor Consideremos dos clases.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Servicios Web-SOA Aula: Fomento 05/06/2006 a 08/05/2006.
Desarrollo de componentes en Visual Basic .NET
Desarrollo de componentes en Visual Basic .NET
Programación orientada a objetos en Visual Basic .NET
Transcripción de la presentación:

Desarrollo de componentes en Visual Basic .NET

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

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

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

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)

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Demostración: Creación de un componente Stopwatch

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

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

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

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

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

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

¿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

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

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

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) ...

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

Demostración: Uso de la instrucción SyncLock