La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aplicaciones Smart Client con.NET

Presentaciones similares


Presentación del tema: "Aplicaciones Smart Client con.NET "— Transcripción de la presentación:

1 Aplicaciones Smart Client con.NET < >

2 Agenda ¿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 ¿Qué es un Smart Client?

4 ¿Qué es un Smart Client? La industria habla The Client is Back Jonathan Schwartz, Suns president and COO Opening remarks at JavaOne 2004 The problems with browser-based approaches … have become all too well-known The current enthusiasm for a browser-based enterprise is shortsighted. As firms trade in their desktop clients for browsers theyll find: primitive functionality… bandwidth gluttony… terrible usability. IBM Puts New Spin On Client Computing (May 2004) …It sounds a bit like heresy, but the web-based portal does not really make a very effective interface to functionality that resides in many systems" Web-based solutions just cant provide the rich users interface and performance which users like our traders need. As proof of their disillusionment, a staggering one-third of IT decision makers report having plans for migrating some applications back to richer client environments.

5 A medida del dispositivo Servicios Web & soporte conectado/desconectado ¿Qué es un Smart Client? Difícil de desplegar Huellapesada Infierno de las DLLs Experiencia rica de usuario Productividad para el desarrollador Interactivo Dependencia de la red Experienciapobre de usuario IU rica compleja de desarrollar Pocointeractivo Facilidad de gestión de cambios Facilidad de despliegue

6 ¿Qué 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

7 ¿Qué es un Smart Client? Ejemplos NoNoSíSíDiscutible…Notepad NoNoNoNoSí Outlook XP NoNoSíSíSí Outlook 2003 HotmailNo ¿Experiencia rica? Sí ¿Funciona en Internet? Sí ¿Despliegue centralizado ? No ¿Smart Client? No ¿Soporta modo desconectado?

8 Introducción a Windows Forms

9 Introducción a Windows Forms ¿Qué 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

10 Introducción a Windows Forms Desarrollo 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

11 Introducción a Windows Forms Clase 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

12 Hola Mundo en Windows Forms

13 Introducción a Windows Forms Diseñ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

14 Hola Mundo con Visual Studio

15 Introducción a Windows Forms Organizació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 DockingAnchor Orden de tabulador configurable Botones Default y Cancel

16 Organización de controles

17 Introducción a Windows Forms Aplicaciones MDI vs SDI SDI: Un solo documento a la vez Ej. WordPad MDI: Varios documentos simultáneamente Ej. Excel Propiedad Form.IsMDIContainer

18 Introducción a Windows Forms Diá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

19 Introducción a Windows Forms Controles ControlControl ListControlsListControls ComboBoxComboBox ListBoxListBox TreeViewTreeView DataGridDataGrid ButtonButton ButtonBaseButtonBase SplitterSplitter TrackBarTrackBar CheckBoxCheckBox TextBoxTextBox RichTextBoxRichTextBox RadioButtonRadioButton TextBoxBaseTextBoxBase ListViewListView ScrollableControlScrollableControl PanelPanel ProgressBarProgressBar PictureBoxPictureBox StatusBarStatusBar ToolBarToolBar ScrollBarScrollBar MonthCalendarMonthCalendar DateTimePickerDateTimePicker

20 Introducción a Windows Forms Desarrollo 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

21 Desarrollo de controles

22 Introducción a Windows Forms Herencia 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

23 Herencia de formularios

24 Introducción a Windows Forms Enlace 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

25 Enlace a datos

26 Gráficos avanzados con GDI+

27 Gráficos avanzados con GDI+ ¿Qué 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.Drawing2DSystem.Drawing.ImagingSystem.Drawing.Text

28 Gráficos avanzados con GDI+ Grá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…

29 Gráficos avanzados con GDI+ Gráficos vectoriales (II) Renderizado Transparencia canal alfa Estilo de anti-aliasing TransformacionesFiltrado Coordenadas en punto flotante

30 Gráficos vectoriales

31 Gráficos avanzados con GDI+ Tratamiento 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)

32 Tratamiento de imágenes

33 Gráficos avanzados con GDI+ Tipografí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

34 Tipografía

35 Programación asíncrona

36 Programación asíncrona Hilo 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

37 Programación asíncrona Acceso 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

38 Multihilo en Windows Forms

39 Despliegue de aplicaciones

40 Despliegue de aplicaciones Opciones 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

41 Despliegue de aplicaciones No 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

42 Despliegue de aplicaciones Seguridad.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

43 Despliegue de aplicaciones Seguridad (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

44 Despliegue de aplicaciones

45 Patrones de diseño

46 Patrones de diseño Definición Formas recomendadas para resolver problemas comunes en el software Aportan consistencia y facilidad de mantenimiento Varios patrones aplican especialmente a Smart Clients Observador Modelo Vista - Controlador Command

47 Patrones de diseño Observador En las aplicaciones ricas es común tener distintas vistas de los mismos datos Problema de sincronización Action

48 Patrones de diseño Observador (II) El patrón observador relega las acciones a los datos Son los datos los que notifican a las vistas Action Data

49 Patrones de diseño Modelo 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

50 Patrones de diseño Modelo 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 Modelo Controlador Vista

51 Patrones de diseño Modelo 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

52 Patrones de diseño Command 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

53 Patrones de diseño

54 Application Blocks

55 Application Blocks ¿Qué 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 UpdaterOffline User Process Interface

56 Application Blocks Updater 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)

57 Application Blocks Offline 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)

58 Application Blocks Offline (II)

59 Application Blocks User 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

60 Application Blocks User Process Interface (II)

61 Updater Application Block

62 Desarrollo con dispositivos móviles

63 Desarrollo 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 EditoresDiseñadores Depuración (emulador o dispositivo conectado)

64 Desarrollo con dispositivos Comparació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

65 Desarrollo con dispositivos Interfaz 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

66 Desarrollo con dispositivos Acceso 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

67 Desarrollo con dispositivos

68 Webcast teóricoWebcast teórico Talleres en ciudadesTalleres en ciudades Aplicación MSDN VideoAplicación MSDN Video Webcast práctica 3 FebreroWebcast práctica 3 Febrero Código de MSDN VideoCódigo de MSDN Video CalendarioCalendario TutorialesTutoriales SeminariosSeminarios ArtículosArtículos ForosForos Descuento 40% librosDescuento 40% libros Webcast teóricoWebcast teórico Talleres en ciudadesTalleres en ciudades Aplicación MSDN VideoAplicación MSDN Video Webcast práctica 3 FebreroWebcast práctica 3 Febrero Código de MSDN VideoCódigo de MSDN Video CalendarioCalendario TutorialesTutoriales SeminariosSeminarios ArtículosArtículos ForosForos Descuento 40% librosDescuento 40% libros SepOctNovDicEneFebMarAbrMayJun.NET y Servicios Web Desarrollo web SmartClients Visual Studio 2005 SQL Server 2005

69


Descargar ppt "Aplicaciones Smart Client con.NET "

Presentaciones similares


Anuncios Google