Title: Aplicaciones Smart Client con 'NET
1Aplicaciones Smart Client con .NET
- ltPonentegt
- ltEmailgt
- ltCargogt
- ltEmpresagt
2Agenda
- Qué es un SmartClient?
- Introducción a Windows Forms
- Gráficos avanzados con GDI
- Programación asíncrona
- Despliegue de aplicaciones
- Patrones de diseño
- Application Blocks
- Desarrollo en dispositivos móviles
3 4Qué es un Smart Client?La industria habla
5Qué es un Smart Client?
6Qué es un Smart Client?Atributos
- Utiliza la potencia del procesador local
- Experiencia de usuario rica, interactiva
- Consume servicios por HTTP
- Servicios Web y SOA
- Puede funcionar de forma desconectada
- Se despliega y actualiza de forma centralizada
7Qué es un Smart Client?Ejemplos
Experiencia rica?
Funciona en Internet?
Despliegue centralizado?
Smart Client?
Soporta modo desconectado?
Hotmail
No
Sí
Sí
No
No
No
No
Sí
Sí
Discutible
Notepad
No
No
No
No
Sí
Outlook XP
No
No
Sí
Sí
Sí
Outlook 2003
8- Introducción a Windows Forms
9Introducción a Windows FormsQué es?
- Tecnología incluida en el Framework .NET
- Aprovecha lo mejor de Windows
- Alta usabilidad para los clientes
- Aprovecha hardware local
- Layout preciso al pixel
- Y soluciona sus problemas típicos
- Instalación, mantenimiento
- Seguridad
10Introducción a Windows FormsDesarrollo
- Windows Forms es una librería de clases
- Accesibles desde el .NET Framework
- Encapsula con OOP la API Windows
- Controles identificados con HWND
- Propiedades accesibles con SendMessage
- Eventos capturados en WndProc
- Visual Studio .NET como diseñador
- Aumenta la productividad del desarrollo
- Diseñadores, asistentes, plantillas
11Introducción a Windows FormsClase Control
- Una clase base común Control
- Representa un elemento del interfaz
- Resto de elementos derivan de Control
- Formulario Windows (Form)
- Básicos (TextBox) y extendidos (DataGrid)
- Funcionalidad encapsulada en propiedades y
eventos - Eventos accesibles por delegates
12Hola Mundo en Windows Forms
13Introducción a Windows FormsDiseño con Visual
Studio .NET
- Visual Studio .NET permite diseñar gráficamente
los formularios - Arrastrar controles desde la paleta
- Modificar sus propiedades
- Procesar los eventos
- Todo está en código
- Visual Studio sincroniza el código en los dos
sentidos
14Hola Mundo con Visual Studio
15Introducción a Windows FormsOrganización de
controles
- Nueva aproximación al AutoScale
- Todas las coordenadas en píxeles
- Autoescaladas según AutoScaleBaseSize
- Layout manual con Visual Studio
- Layout automático
- Docking
- Anchor
- Orden de tabulador configurable
- Botones Default y Cancel
16Organización de controles
17Introducción a Windows FormsAplicaciones MDI vs
SDI
- SDI Un solo documento a la vezEj. WordPad
- MDI Varios documentos simultáneamenteEj. Excel
- Propiedad Form.IsMDIContainer
18Introducción a Windows FormsDiálogos
- Modales Paran la ejecución
- Método Form.ShowDialog
- No modales Permiten ejecución paralela
- Método Form.Show
- Diálogos comunes
- OpenFIleDialog, SaveFileDialog
- FontDialog, ColorDialog
- PrintDialog, PageSetupDialog
19Introducción a Windows FormsControles
Control
ListControls
ButtonBase
ComboBox
Button
ListBox
CheckBox
RadioButton
ListView
TreeView
TextBoxBase
DataGrid
TextBox
TrackBar
RichTextBox
Splitter
ProgressBar
MonthCalendar
PictureBox
DateTimePicker
StatusBar
ScrollableControl
ToolBar
ScrollBar
Panel
20Introducción a Windows FormsDesarrollo de
controles
- Controles de usuario
- Composición de otros controles
- Desarrollo visual con Visual Studio .NET
- Controles personalizados
- Derivan de clase Control o de otro control
- Añaden funcionalidad
- Evento OnPaint, nuevas propiedades / eventos,
etc. - Integración con Visual Studio
- Personalización de pintado
- Redefinir el pintado de los elementos
21Desarrollo de controles
22Introducción a Windows FormsHerencia
- Reutilización de componentes o formularios
- Métodos tradicionales
- Sobrescribir WNDPROC en C
- Controles de usuario en VB6
- Nuevo método disponible OOP
- Derivar controles y formularios
- Mucho más encapsulado y personalizable
- Soportado gráficamente por VS.NET
23Herencia de formularios
24Introducción a Windows FormsEnlace a datos
- Enlace Simple
- Cualquier propiedad de un control puede ser
enlazada a un dato - Colección DataBindings
- Enlace complejo
- Los controles lista pueden ser enlazados a un
conjunto de datos - Propiedades DataSource, DataMember
- Personalización del formato
- Eventos Format, Parse
25Enlace a datos
26- Gráficos avanzados con GDI
27Gráficos avanzados con GDIQué es GDI?
- Librería incluida en Windows XP / 2003
- Gráficos vectoriales
- Procesamiento de imágenes
- Tipografía
- System.Drawing encapsula GDI
- GDIPLUS.DLL instalada junto a runtime .NET
- Namespaces
- System.Drawing.Drawing2D
- System.Drawing.Imaging
- System.Drawing.Text
28Gráficos avanzados con GDIGráficos vectoriales
- Definición del gráfico
- Primitivas vectoriales
- Líneas, polígonos, arcos, splines, beziers
- Estilos de línea
- Color, trazado, nodos finales, tipos de
intersección - Estilos de relleno
- Sólido, patrón, textura, gradientes
29Gráficos avanzados con GDIGráficos vectoriales
(II)
- Renderizado
- Transparencia canal alfa
- Estilo de anti-aliasing
- Transformaciones
- Filtrado
- Coordenadas en punto flotante
30Gráficos vectoriales
31Gráficos avanzados con GDITratamiento de
imágenes
- Codificación / decodificación
- BMP, JPEG, PNG, GIF, TIFF, EXIF
- Procesamiento
- Transformaciones, brillo, contraste, coloreado
- Escalado bicúbico
- Gestión del color ICM
- Relación con gráficos
- Mostrar imagen en lienzo
- Crear lienzo desde imagen (útil para doble búfer)
32Tratamiento de imágenes
33Gráficos avanzados con GDITipografía
- Soporte ClearType
- Soporte OpenType
- Alto nivel de internacionalización
- Árabe, hebreo, thai, vertical
- Relación con gráficos
- Relleno con brocha
- Path no lineal
- Convertible a curva
34Tipografía
35 36Programación asíncronaHilo principal de
aplicación
- Windows Forms corre en un solo hilo
- Hilo donde se llama a Application.Run()
- Hay que evitar sobrecargar ese hilo
- Provoca interfaces que no responden
- Soluciones
- Usar otros hilos para tareas costosas
- Usar las versiones asíncronas de las funciones
- BeginXXX, EndXXX
37Programación asíncronaAcceso al IU desde otro
hilo
- Los hilos secundarios NUNCA deben acceder a las
propiedades de los controles - Windows Forms no es thread-safe
- Solución
- Usar Control.Invoke o Control.BeginInvoke para la
actualización
38Multihilo en Windows Forms
39- Despliegue de aplicaciones
40Despliegue de aplicacionesOpciones
- XCOPY
- Copiar todas las librerías en un directorio
- La más sencilla
- Windows Installer
- Crear un paquete de instalación
- Permite acciones personalizadas
- Permite instalar componentes compartidos
- No Touch Deployment
- Despliegue por HTTP
41Despliegue de aplicacionesNo Touch Deployment
- La aplicación se inicia desde Internet Explorer
- Aunque puede lanzar una ventana nueva
- Descarga las librerías conforme las necesite
- Caché automático
- Inconvenientes
- Necesita conexión
- Por defecto corre con permisos restringidos
42Despliegue de aplicacionesSeguridad
- .NET define 5 grupos de código
- Permisos asociados a cada uno
- My Computer sin restricción
- Local Intranet restringido (ej. sin disco)
- Internet, Trusted muy restringido (ej. sin DNS)
- Restricted sin permiso de ejecución
- Determinado según la URL de inicio
43Despliegue de aplicacionesSeguridad (II)
- Recomendaciones
- Desarrollar para el conjunto mínimo de permisos
- No acceder al disco
- No interactuar con el sistema
- Escribir código safe
- Configurar sólo en casos estrictamente necesarios
- Herramienta .NET Configuration
- Crear nuevos grupos en lugar de cambiar los
permisos
44Despliegue de aplicaciones
45 46Patrones de diseñoDefinición
- Formas recomendadas para resolver problemas
comunes en el software - Aportan consistencia y facilidad de mantenimiento
- http//www.microsoft.com/resources/practices/
- Varios patrones aplican especialmente a Smart
Clients - Observador
- Modelo Vista - Controlador
- Command
47Patrones de diseñoObservador
- En las aplicaciones ricas es común tener
distintas vistas de los mismos datos - Problema de sincronización
48Patrones de diseñoObservador (II)
- El patrón observador relega las acciones a los
datos - Son los datos los que notifican a las vistas
Data
49Patrones de diseñoModelo Vista - Controlador
- El modelo Vista Controlador independiza y
estructura el IU - Por qué independizar IU del resto?
- El interfaz gráfico cambia con frecuencia
- Los datos se muestran de distinta forma
- Las pruebas son complicadas
- Los desarrolladores pueden estar especializados
50Patrones de diseñoModelo Vista Controlador (II)
- Modelo
- Contiene los datos, su comportamiento y el estado
- Vista
- Gestiona la presentación de los datos
- Controlador
- Interpreta las acciones del usuario, informando
al modelo y a la vista
Controlador
Modelo
Vista
51Patrones de diseñoModelo Vista Controlador
(III)
- Posibilidad unir Controlador y Vista
- Modelo Documento Vista
- Normalmente unido a patrón Observador
- Evita una referencia circular
- Vistas actualizadas con los cambios del modelo
Vista
Documento
52Patrones de diseñoCommand
- Una acción suele estar accesible en distintos
puntos - Ej. Menú, toolbar, contexto
- El patrón Command encapsula el estado y la acción
asociados a los elementos - Dos clases
- Command Encapsula la acción
- Commander Une commands a elementos de IU
53Patrones de diseño
54 55Application BlocksQué son?
- Bloques de código .NET que solventan problemas
comunes con mejores prácticas - Reusables, extensibles y modificables
- Acceso a datos, logging, configuración
- Varios aplican especialmente a Smart Clients
- Updater
- Offline
- User Process Interface
56Application BlocksUpdater
- Permite detectar, validar y descargar
actualizaciones - Modelo pull
- El cliente comprueba periódicamente
- No necesitamos conexión para ejecutar
- Descarga en segundo plano
- Tecnología Windows Update (BITS)
57Application BlocksOffline
- Permite desarrollar aplicaciones que trabajan sin
conexión permanente (ej. Outlook 2003) - Sin cambiar el modelo de desarrollo online /
offline - Incorpora
- Framework para realizar llamadas a servicios
online / offline de forma transparente - Infraestructura para funcionamiento asíncrono
- No incorpora
- Procesamiento de datos (ej. resolución conflictos)
58Application BlocksOffline (II)
59Application BlocksUser Process Interface
- Framework modelo Vista Controlador
- Incluye
- Clases base para cada elemento
- Configuración declarativa del flujo de navegación
- Independiente del interfaz
- Mismo código de lógica para Web, Win o Móvil
- Persistencia automática del modelo
- Permite resumir sesiones, cambiar dispositivo o
navegar atrás
60Application BlocksUser Process Interface (II)
61Updater Application Block
62- Desarrollo con dispositivos móviles
63Desarrollo con dispositivos.NET Compact Framework
- Versión reducida del Framework .NET
- Diseñado para dispositivos inteligentes
- PocketPC y PocketPC Phone Edition
- SmartPhone
- Windows CE
- Mismo entorno Visual Studio .NET
- Editores
- Diseñadores
- Depuración (emulador o dispositivo conectado)
64Desarrollo con dispositivosComparación con
versión desktop
- Optimizado para pequeños dispositivos
- Misma librería de clases
- Sin ASP.NET, configuración, XPath, Remoting
- Framework Comparison Tool
- Muestra las diferencias entre los dos
65Desarrollo con dispositivosInterfaz gráfico
- Juego de controles adaptado
- TextBox, ListBox, DataGrid, TreeView
- Nuevos controles especiales
- InputPanel, Spinner
- Otros controles dependen del dispositivo
- Ej. Button!
- Controles de usuario no soportados
66Desarrollo con dispositivosAcceso a datos
- SQL Server 2000
- Mismas clases que .NET Framework
- Necesita conexión con PC
- SQL Server CE
- Versión reducida de SQL Server
- Permite sincronización
- Proveedor ADO.NET SqlServerCE
- Servicios web
- Soporte de servicios web remotos
67Desarrollo con dispositivos
68Sep
Oct
Nov
Dic
Ene
Feb
Mar
Abr
May
Jun
.NET y Servicios Web
Desarrollo web
Smart Clients
Visual Studio 2005 SQL Server 2005
- Webcast teórico
- Talleres en ciudades
- Aplicación MSDN Video
- Webcast práctica 3 Febrero
- www.DesarrollaConMSDN.com
- Código de MSDN Video
- Calendario
- Tutoriales
- Seminarios
- Artículos
- Foros
- Descuento 40 libros
69(No Transcript)