clase x

53
Clase X Clase X [nombre instructor] [nombre instructor] [fecha] [fecha]

Upload: roberto-moreno-donoro

Post on 11-Jul-2015

274 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Clase x

Clase XClase X•[nombre instructor][nombre instructor]

•[fecha][fecha]

Page 2: Clase x

AgendaAgenda

.NET Framework.NET Framework Garbage CollectorGarbage Collector Click OnceClick Once

Programación orientada a eventosProgramación orientada a eventos DelegatesDelegates EventsEvents

Windows FormsWindows Forms

Page 3: Clase x

AgendaAgenda

..NET FrameworkNET Framework Garbage CollectorGarbage Collector Click OnceClick Once

Programación orientada a eventosProgramación orientada a eventos DelegatesDelegates EventsEvents

Windows FormsWindows Forms

Page 4: Clase x

La memoria y los tiposLa memoria y los tipos

Dos áreas de memoria administradas por el CLR: Dos áreas de memoria administradas por el CLR: Stack y HeapStack y Heap

El Stack es liberada automáticamente y el Heap es El Stack es liberada automáticamente y el Heap es administrada por el GC (Garbage Collector)administrada por el GC (Garbage Collector)

Los tipos VALOR se Los tipos VALOR se alojan en el Stackalojan en el Stack

Los tipos Los tipos REFERENCIA se REFERENCIA se alojan en el Heapalojan en el Heap

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 5: Clase x

Administración de Memoria Administración de Memoria AutomáticaAutomática Uno de los servicios que provee CLR Uno de los servicios que provee CLR

durante ejecución administradadurante ejecución administrada Garbage CollectorGarbage Collector

Administra alocación y liberación de Administra alocación y liberación de memoriamemoria

Se evitan problemas de manejo de Se evitan problemas de manejo de memoriamemoria Liberación de objetosLiberación de objetos Uso de objetos ya liberados Uso de objetos ya liberados

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 6: Clase x

Garbage CollectorGarbage Collector .Net asigna memoria para los objetos en la heap de manera .Net asigna memoria para los objetos en la heap de manera

muy eficientemuy eficiente Cuando el objeto deja de ser útil, debe ser liberado ese Cuando el objeto deja de ser útil, debe ser liberado ese

espacioespacio Queda fuera del scopeQueda fuera del scope Se llama a DisposeSe llama a Dispose

Garbage collector crea un gráfico de recolecciónGarbage collector crea un gráfico de recolección Lista enlazada con jerarquía de instanciasLista enlazada con jerarquía de instancias

Proceso de recolección consta de dos fasesProceso de recolección consta de dos fases Posiciones de heap con objetos fuera de scope o Posiciones de heap con objetos fuera de scope o

referencias null, marcadas como librereferencias null, marcadas como libre Compactación de memoriaCompactación de memoria

¿Qué pasa con objetos que no quedan fuera de scope y no ¿Qué pasa con objetos que no quedan fuera de scope y no son destruidos manualmente?son destruidos manualmente? ““Cuanto mas antiguo es un objeto, mas probable es que Cuanto mas antiguo es un objeto, mas probable es que

permanezca”permanezca”

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 7: Clase x

Garbage Collector – Alocación de Garbage Collector – Alocación de memoriamemoria Heap AdministradaHeap Administrada

Al iniciar un nuevo proceso, se reserva Al iniciar un nuevo proceso, se reserva una región continua de espacios una región continua de espacios direccionablesdireccionables

Puntero a la próxima dirección alocadaPuntero a la próxima dirección alocada Mas rápida que la alocación en memoria Mas rápida que la alocación en memoria

no administrada.no administrada. A medida que aplicación crea tipos de A medida que aplicación crea tipos de

referencia, se alocan direcciones contiguas referencia, se alocan direcciones contiguas en heapen heap

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 8: Clase x

Garbage Collector – Liberado de Garbage Collector – Liberado de memoriamemoria Motor de GC determina cuando es el mejor Motor de GC determina cuando es el mejor

momento para una recolecciónmomento para una recolección Se examina raíz de cada aplicación y se Se examina raíz de cada aplicación y se

determina gráfico con objetos que todavía determina gráfico con objetos que todavía son accesiblesson accesibles Los objetos no accesibles son basura, y Los objetos no accesibles son basura, y

su espacio en memoria es liberadosu espacio en memoria es liberado Se compacta ese espacioSe compacta ese espacio Se reacomodan las referencias a los Se reacomodan las referencias a los

objetos accesiblesobjetos accesibles El puntero de la heap administrada se El puntero de la heap administrada se

ubica en el último objeto accesibleubica en el último objeto accesible

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 9: Clase x

Garbage Collector – Generaciones y Garbage Collector – Generaciones y performanceperformance GC cuenta con 3 generacionesGC cuenta con 3 generaciones

Sectores de la heapSectores de la heap Los objetos que sobreviven a las recolecciones Los objetos que sobreviven a las recolecciones

son promovidos de generación luego de ser son promovidos de generación luego de ser compactadoscompactados

Cuando se necesita memoria, se recolecta en la Cuando se necesita memoria, se recolecta en la generación 0, si no alcanza, en la 1 y luego en la generación 0, si no alcanza, en la 1 y luego en la 0, y sino, en la 2, 1 y 00, y sino, en la 2, 1 y 0

Los objetos mas viejos, vivirán en la generación Los objetos mas viejos, vivirán en la generación 2, mientras que los mas nuevos, generalmente 2, mientras que los mas nuevos, generalmente dejaran de ser accesibles estando en la dejaran de ser accesibles estando en la generación 0, eso libera espacio para nuevos generación 0, eso libera espacio para nuevos objetosobjetos

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 10: Clase x

Garbage Collector – Liberando Garbage Collector – Liberando recursos no adminsitradosrecursos no adminsitrados Garbage Collector libera automáticamente la Garbage Collector libera automáticamente la

memoria de recursos administradosmemoria de recursos administrados Los recursos no administrados deben ser Los recursos no administrados deben ser

liberados de manera explícitaliberados de manera explícita Manejadores de archivosManejadores de archivos Manejadores de ventanasManejadores de ventanas Conexiones de red.Conexiones de red.

El GC no sabe como liberar el recursoEl GC no sabe como liberar el recurso El objeto que encapsula el recurso, El objeto que encapsula el recurso,

debe implementar un Dispose públicodebe implementar un Dispose público

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 11: Clase x

Distribución ClickOnceDistribución ClickOnce

ClickOnce permite la creación de ClickOnce permite la creación de aplicaciones auto-actualizables, que aplicaciones auto-actualizables, que pueden ser instaladas y actualizadas pueden ser instaladas y actualizadas con mínima interacción del usuariocon mínima interacción del usuario

ClickOnce solucionaClickOnce soluciona Dificultades actualizando Dificultades actualizando

aplicacionesaplicaciones Impacto a los usuariosImpacto a los usuarios Problemas de permisos de Problemas de permisos de

seguridad.seguridad.

.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 12: Clase x

¿Qué es una aplicación ClickOnce?¿Qué es una aplicación ClickOnce?

Cualquier aplicación Windows Form o Cualquier aplicación Windows Form o consola que se publica utilizando la consola que se publica utilizando la tecnología ClickOncetecnología ClickOnce

Es posible actualizar la aplicación Es posible actualizar la aplicación desdedesde Página WebPágina Web RedRed CD-ROMCD-ROM

Puede ser instalada por un usuario Puede ser instalada por un usuario finalfinal

Puede volverse atrás la instalaciónPuede volverse atrás la instalación.NE

T F

ram

ew

ork

.NE

T F

ram

ew

ork

Page 13: Clase x

AgendaAgenda

.NET Framework.NET Framework Garbage CollectorGarbage Collector Click OnceClick Once

Programación orientada a eventosProgramación orientada a eventos DelegatesDelegates EventsEvents

Windows FormsWindows Forms

Page 14: Clase x

DelegadosDelegados

1. El cambio en la posición del switch invoca el método OnFlip del switch

2. El método OnFlip invoca a un delegado

3. El delegado invoca el método del objeto Light OnFlipCallback

4. El método OnFlipCallback cambia el estado del objeto Light

OnFlip method

Switch Object

Método OnFlipCallback

Objeto Light

Delegar objetoDelegar objeto

Método OnFlip

Objeto Switch

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 15: Clase x

Declarar un DelegadoDeclarar un Delegado

La delcaración de un delegado define un tipo que encapsula un método que tiene un grupo particular de argumentos y un tipo de devolución

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 16: Clase x

Instanciar un DelegadoInstanciar un Delegado

Un objeto delegado se crea con un operador New Los objetos delegados son inmutables Para llamar a un delegado, utilice una declaración que

contenga: El nombre del objeto delegado seguido de los argumentos entre

paréntesis que se pasarán al delegado O, utilice el método Invoke del objeto delegado con los

argumentos entre paréntesis

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 17: Clase x

Instanciar un Delegado - EjemploInstanciar un Delegado - EjemploP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Pro

gram

aci

ón

ori

enta

da a

eve

nto

s

Page 18: Clase x

Delegados MulticastDelegados Multicast

Escenario de Delegados Multicast

Delegados Simples vs. Multicast

Crear e Invocar Delegados Multicast

Detalles de los Delegados

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 19: Clase x

Escenario de Delegados MulticastEscenario de Delegados Multicast

2. El método OnFlip invoca al delegado1 multicast

4. El método OnFlipCallback cambia el estado del objeto light1

3. El delegado1 invoca el método OnFlipCallback del objeto light1 7. El método

OnFlipCallback cambia el estado del objeto light2

6. El delegado2 invoca el método OnFlipCallback del objeto light2

OnFlip method

Switch Object

Método OnFlipCallback

Objeto Light1

Método OnFlipCallback

Objeto Light2

Objeto delegado1MulticastObjeto delegado1Multicast

Objeto delegado2 MulticastObjeto delegado2 Multicast

Lista de Invocación

5. Se invoca aldelegado2

1. El cambio en la posición del switch invoca el método OnFlip del switch

Método OnFlip

Objeto Switch

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 20: Clase x

Delegados MulticastDelegados Multicast

Todos los delegados tienen una lista de invocación Contiene métodos que se ejecutan cuando se llama al método

Invoke del delegado Los delegados single-cast surgen directamente de

System.Delegate La lista de invocación contiene solo un método Los delegados multicast surgen de System.MulticastDelegate

La lista de invocación puede contener múltiples métodos Los métodos Combine y Remove se usan para agregar y

eliminar referencias de la lista de invocación Utilice GetInvocationList para obtener una lista de invocación

como un grupo de referencias de delegados Utilice las propiedades del delegado Target y Method para

determinar: Qué objeto recibirá la llamada (callback) Qué método se llamará

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 21: Clase x

Delegados Multicast – Ejemplo (C#)Delegados Multicast – Ejemplo (C#)

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 22: Clase x

Delegados Multicast – Ejemplo Delegados Multicast – Ejemplo (VB.NET)(VB.NET)

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 23: Clase x

EventosEventos

Declarar un Evento Conectarse a un Evento Levantar un Evento Pautas de .NET Framework

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 24: Clase x

Declarar un EventoDeclarar un Evento

Declarar el tipo de delegado para el evento Declarar el evento

La sintaxis es como declarar un campo del tipo delegado, pero el nombre del campo es precedido por la palabra clave Event

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 25: Clase x

Conectarse a un EventoConectarse a un Evento

Conéctese a un evento agregando delegados con “+=“ en C# y con la palabra clave reservada AddHandler en VB.NET

Desconéctese de un evento eliminando delegados con “-=“ y con la palabra clave reservada RemoveHandler en VB.NET

Ejemplo a continuación…

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 26: Clase x

Conectarse a un Evento – Ejemplo Conectarse a un Evento – Ejemplo (C#)(C#)

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 27: Clase x

Conectarse a un Evento – Ejemplo Conectarse a un Evento – Ejemplo (VB.NET)(VB.NET)

Pro

gram

aci

ón

ori

enta

da a

eve

nto

sP

rogr

ama

ció

n o

rien

tada

a e

vent

os

Page 28: Clase x

AgendaAgenda

.NET Framework.NET Framework Garbage CollectorGarbage Collector Click OnceClick Once

Programación orientada a eventosProgramación orientada a eventos DelegatesDelegates EventsEvents

Windows FormsWindows Forms

Page 29: Clase x

Cómo crear un formulario?Cómo crear un formulario?

Un formulario base Un formulario base se crea junto con un se crea junto con un nuevo proyecto de nuevo proyecto de forma automáticaforma automática

Para crear un nuevo Para crear un nuevo formularioformulario1.1. Click derecho sobre Click derecho sobre

el proyecto en el el proyecto en el Explorador de Explorador de solucionessoluciones

2.2. Click AddClick Add

3.3. Click Add Windows Click Add Windows FormsForms

WinForms

WinForms

Page 30: Clase x

Cómo manejar los eventos del formularioCómo manejar los eventos del formulario

Events

WinForms

WinForms

Page 31: Clase x

Cómo agregar controles a un formulario?Cómo agregar controles a un formulario?WinForms

WinForms

Page 32: Clase x

Smart Clients (WinForms) 2.0Smart Clients (WinForms) 2.0

¡Grandes cambios!¡Grandes cambios! 67% más de tipos públicos67% más de tipos públicos 127% más de propiedades públicas127% más de propiedades públicas

Soporte para los temas visuales de XPSoporte para los temas visuales de XP Application.EnableVisualStyles();Application.EnableVisualStyles();

Mejoras en la distribución de los controlesMejoras en la distribución de los controles Alineación “Snap-to” Alineación “Snap-to” Distribuye ControlesDistribuye Controles

WinForms

WinForms

Page 33: Clase x

Smart tagsSmart tags Facilita las tareas comunes con los controlesFacilita las tareas comunes con los controles

Trabajo con formularios complejosTrabajo con formularios complejos Document outlineDocument outline Edición rápida de propiedadesEdición rápida de propiedades

Nuevas fuentes de datosNuevas fuentes de datos XML, objeto, servicio web, base de datosXML, objeto, servicio web, base de datos

WinForms 2.0WinForms 2.0WinForms

WinForms

Page 34: Clase x

Distribución de controles en WinForms 2.0Distribución de controles en WinForms 2.0

Distribución y redimensionamiento más fácil para Distribución y redimensionamiento más fácil para formularios complejosformularios complejos

Flow Layout: similar al flow layout de ASP .NET Flow Layout: similar al flow layout de ASP .NET (HTML)(HTML)

Table Layout: el formulario está organizado por filas Table Layout: el formulario está organizado por filas y columnas (1 control por celda)y columnas (1 control por celda)

WinForms

WinForms

Page 35: Clase x

WinForms 2.0: Propiedad Editing WinForms 2.0: Propiedad Editing ModeMode

Habilita la “edición en el lugar” de las Habilita la “edición en el lugar” de las propiedadespropiedades

WinForms

WinForms

Page 36: Clase x

WinForms 2.0: Controles WinForms 2.0: Controles

DataGridViewDataGridView Nueva versión de DataGridNueva versión de DataGrid Un modelo de objeto más intuitivo de datos enlazadosUn modelo de objeto más intuitivo de datos enlazados Soporta Smart Tags para enlazar rápidamente a una fuente de Soporta Smart Tags para enlazar rápidamente a una fuente de

datosdatos MenuStripMenuStrip

Nuevo y poderoso menú con increíbles capacidades de Nuevo y poderoso menú con increíbles capacidades de rendimientorendimiento

WebBrowserWebBrowser Componente para en IEComponente para en IE

SoundPlayerSoundPlayer Componentes simples para agregar sonidos a sus aplicacionesComponentes simples para agregar sonidos a sus aplicaciones

BackgroundWorker BackgroundWorker Simplifica la tarea de usar worker threads para recuperar Simplifica la tarea de usar worker threads para recuperar

información requerida por UI.información requerida por UI.

WinForms

WinForms

Page 37: Clase x

Desarrollo con ClickOnceDesarrollo con ClickOnce

¡Desarrollo de Smart Client sumamente simplificado!¡Desarrollo de Smart Client sumamente simplificado! Aplicaciones Rich Client con desarrollo y actualizaciones de forma Aplicaciones Rich Client con desarrollo y actualizaciones de forma

tan simple como una aplicación webtan simple como una aplicación web Invocado desde el item de menu BuildInvocado desde el item de menu BuildPublish SolutionPublish Solution

WinForms

WinForms

Page 38: Clase x

Configuración de ClickOnceConfiguración de ClickOnce

Seleccionar Proyecto Seleccionar Proyecto Propiedades Propiedades UI completamente nueva para manipular las propiedades del UI completamente nueva para manipular las propiedades del

proyectoproyecto

Opciones de desarrollo:Opciones de desarrollo: Web ServerWeb Server File ShareFile Share

Opciones de actualización:Opciones de actualización: Chequear actualizaciones cuando la aplicación comienzaChequear actualizaciones cuando la aplicación comienza Chequear por actualizaciones en silencio mientras la aplicación se Chequear por actualizaciones en silencio mientras la aplicación se

ejecutaejecuta Permitir o no al usuario aceptar la actualizaciónPermitir o no al usuario aceptar la actualización

Opciones de prerequisitos:Opciones de prerequisitos: dotnetfxdotnetfx Windows installerWindows installer MDACMDAC SQL Server 2005 Express EditionSQL Server 2005 Express Edition J# redistributable packageJ# redistributable package

WinForms

WinForms

Page 39: Clase x

Data Sources Window Data Sources Window Operaciones de Drag and DropOperaciones de Drag and Drop

Hacer Drag and Drop de tablas desde la Hacer Drag and Drop de tablas desde la ventana Data Sources en el formulario ventana Data Sources en el formulario creará instancias de:creará instancias de: DataSet, TableAdapter, BindingSourceDataSet, TableAdapter, BindingSource BindingNavigator con los controles nav/add/delete/saveBindingNavigator con los controles nav/add/delete/save Bound control(s)Bound control(s)

Use la ventana Data Sources para Use la ventana Data Sources para configurar:configurar: Si la tabla será editada con DataGridView o el modo Si la tabla será editada con DataGridView o el modo

“Details” “Details”

(controles individuales)(controles individuales) El mapeo de los tipos de control de detalle a tipo de datos El mapeo de los tipos de control de detalle a tipo de datos

columna.columna.

WinForms

WinForms

Page 40: Clase x

Opciones de Data SourceOpciones de Data Source

Database (DataSet)Database (DataSet) Cualquier fuente de Cualquier fuente de

datos ADO.NETdatos ADO.NET

Web ServiceWeb Service Liga a métodos Liga a métodos

parametrizados de un parametrizados de un servicio Web, para servicio Web, para operaciones de select, operaciones de select, update, delete e insert.update, delete e insert.

ObjectObject Liga a instancias de Liga a instancias de

clases y sus clases y sus propiedades.propiedades.

WinForms

WinForms

Page 41: Clase x

Smart DefaultsSmart Defaults

Nombres de los controlesNombres de los controles Títulos de LabelsTítulos de Labels Controlan a través de la propiedad Controlan a través de la propiedad

Caption de Column objetos en Caption de Column objetos en DataSets tipados.DataSets tipados.

Adición automática de DataSets Adición automática de DataSets tipados y sus DataTables a la ventana tipados y sus DataTables a la ventana de herramientas.de herramientas.

WinForms

WinForms

Page 42: Clase x

WinForms 2.0 Data BindingWinForms 2.0 Data BindingIntroducción a los objetosIntroducción a los objetos

Typed DataSetTyped DataSet

DataTable, TableAdapterDataTable, TableAdapter

BindingSourceBindingSource

[BindingNavigator][BindingNavigator]

WinForms

WinForms

Page 43: Clase x

DataSets fuertemente tipadosDataSets fuertemente tipados

Como antes:Como antes: Consiste de DataTables, Relaciones y Consiste de DataTables, Relaciones y

ConstraintsConstraints Se permite drag/drop desde el Server ExporerSe permite drag/drop desde el Server Exporer Basado en el esquema XML y la clase code-Basado en el esquema XML y la clase code-

behindbehind

Tambien tiene TablaAdaperTambien tiene TablaAdaper Encapsula un DataAdapter y un ConnectionEncapsula un DataAdapter y un Connection

Mejoramiento del diseñador de DataSet Mejoramiento del diseñador de DataSet tipadotipado En vez de XSD DesignerEn vez de XSD Designer

Soporte para Clase ParcialSoporte para Clase Parcial

WinForms

WinForms

Page 44: Clase x

TableAdaptersTableAdapters

Tienen Queries (métodos para manejar Tienen Queries (métodos para manejar selects, updates, inserts, deletes)selects, updates, inserts, deletes)

Las Queries existen como métodosLas Queries existen como métodos Completamente personalizable y Completamente personalizable y

extendibleextendible Puede ser re utilizado a través de Puede ser re utilizado a través de

múltiples formulariosmúltiples formularios Tiene la propiedad ConnectionTiene la propiedad Connection

WinForms

WinForms

Page 45: Clase x

BindingSourceBindingSource

Actúan como “broker” entre los Actúan como “broker” entre los controles enlazados y la fuente de controles enlazados y la fuente de datos actualdatos actual

DataSource, DataMemberDataSource, DataMember Apuntan a los DataSet tipados y Apuntan a los DataSet tipados y

DataTableDataTable

AllowEdit, AllowNew, AllowRemove AllowEdit, AllowNew, AllowRemove Propiedades Filter y Sort Propiedades Filter y Sort En tiempo de ejecución: métodos En tiempo de ejecución: métodos

RemoveFilter y RemoveSortRemoveFilter y RemoveSortWinForms

WinForms

Page 46: Clase x

BindingSourceBindingSourceMiembros de tiempo de ejecuciónMiembros de tiempo de ejecución

Propiedades MovePrevious, MoveNext, Propiedades MovePrevious, MoveNext, MoveFirst, MoveLast, Position, CountMoveFirst, MoveLast, Position, Count

Métodos AddNew, Insert (index, obj), Métodos AddNew, Insert (index, obj), RemoveCurrent , RemoveAt(index), RemoveCurrent , RemoveAt(index), Remove(obj), EndEdit, CancelEdit Remove(obj), EndEdit, CancelEdit methodsmethods

WinForms

WinForms

Page 47: Clase x

BindingNavigatorBindingNavigator

Proveedor de UI que envuelve la navegación Proveedor de UI que envuelve la navegación y la funcionalidad de mantenimiento de y la funcionalidad de mantenimiento de BindingSourceBindingSource Distinto al viejo VB Data Control.Distinto al viejo VB Data Control.

Tiene componente de UITiene componente de UI Tiene componente de Tray tambiénTiene componente de Tray también Miembros que asocian los controles Miembros que asocian los controles

ToolStrip con actores específicosToolStrip con actores específicos DeleteItem = bindingNavigatorDeleteItem (ToolStripButton)DeleteItem = bindingNavigatorDeleteItem (ToolStripButton)

WinForms

WinForms

Page 48: Clase x

Escenarios de Binding Simples y Escenarios de Binding Simples y ComplejosComplejos

Binding ComplejoBinding Complejo Enlaza una colección de datos a controles que Enlaza una colección de datos a controles que

presentan múltiples valores de la colecciónpresentan múltiples valores de la colección DataGridView.DataSource = BindingSourceDataGridView.DataSource = BindingSource

Binding SimpleBinding Simple Enlaza un solo valor de una colección de datos a Enlaza un solo valor de una colección de datos a

una solo propiedad de un controluna solo propiedad de un control TextBox.Text (y las propiedades basadas en TextBox.Text (y las propiedades basadas en

texto de otros controles) vinculado a un miembro texto de otros controles) vinculado a un miembro de BindingSourcede BindingSource

BindingNavigator.BindingSource = BindingNavigator.BindingSource = BindingSourceBindingSource

WinForms

WinForms

Page 49: Clase x

Cómo se conecta todoCómo se conecta todo

Bin

din

gS

ou

rce

Bin

din

gS

ou

rce

Dat

aSet

Dat

aSet

Dat

aTab

leD

ataT

able

DataSourceDataSource

DataMemberDataMember

Control Control SimpleSimple

Control Control ComplejoComplejo

Co

lum

na

Co

lum

naDataBindingDataBinding

PropiedadPropiedad

Cambia los Cambia los contenidos de contenidos de los controles los controles

via via

navegaciónnavegación, , mantenimientomantenimientoB

ind

ing

Nav

igat

or

Bin

din

gN

avig

ato

r

BindingSourceBindingSource

DataSourceDataSource

WinForms

WinForms

Page 50: Clase x

Escenarios Master-DetailEscenarios Master-Detail

Binding hacia child rowsBinding hacia child rows Uso de Typed DataSet Uso de Typed DataSet

Relations/Foreign Keys como fuentes Relations/Foreign Keys como fuentes de datosde datos

Técnicas drag & drop de precisiónTécnicas drag & drop de precisión

WinForms

WinForms

Page 51: Clase x

Binding de objetosBinding de objetos

Binding a objetos simplesBinding a objetos simples Binding a BindingList<t>Binding a BindingList<t> Escenarios AllowNew: Eventos Escenarios AllowNew: Eventos

AddingNew en BindingSource y AddingNew en BindingSource y BindingList<t>BindingList<t>

Soporte para master-detail bindingSoporte para master-detail binding

WinForms

WinForms

Page 52: Clase x

ResumenResumen

Conceptos generales sobre WinForms Conceptos generales sobre WinForms 2.02.0

ControlesControles Vinculación con datosVinculación con datos

WinForms

WinForms

Page 53: Clase x

LaboratorioLaboratorio•WinFormsWinForms