Aplicaciones Smart Aplicaciones Smart Client con .NETClient con .NET
<Ponente><Ponente><Email><Email><Cargo><Cargo><Empresa><Empresa>
AgendaAgenda
¿Qué es un SmartClient?¿Qué es un SmartClient?
Introducción a Windows FormsIntroducción a Windows Forms
Gráficos avanzados con GDI+Gráficos avanzados con GDI+
Programación asíncronaProgramación asíncrona
Despliegue de aplicacionesDespliegue de aplicaciones
Patrones de diseñoPatrones de diseño
Application BlocksApplication Blocks
Desarrollo en dispositivos móvilesDesarrollo en dispositivos móviles
¿Qué es un Smart Client?¿Qué es un Smart Client?
¿Qué es un Smart Client?¿Qué es un Smart Client?La industria hablaLa industria habla
“The Client is Back” Jonathan Schwartz, Sun’s 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 they’ll 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 can’t 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.”
A medida A medida del dispositivodel dispositivo
Servicios Web & soporteServicios Web & soporteconectado/desconectadoconectado/desconectado
¿Qué es un Smart Client?¿Qué es un Smart Client?
Difícil deDifícil dedesplegardesplegar
HuellaHuellapesadapesada
Infierno deInfierno delas DLLslas DLLs
Experiencia ricaExperiencia ricade usuariode usuario
Productividad Productividad para elpara el
desarrolladordesarrollador
InteractivoInteractivo
Dependencia Dependencia de la redde la red
Experiencia Experiencia pobre pobre
de usuario de usuario
IU ricaIU ricacompleja de compleja de desarrollardesarrollar
Poco Poco interactivo interactivo
Facilidad de Facilidad de gestión de cambiosgestión de cambios
Facilidad deFacilidad dedesplieguedespliegue
¿Qué es un Smart Client?¿Qué es un Smart Client?AtributosAtributos
Utiliza la potencia del procesador localExperiencia de usuario rica, interactiva
Consume servicios por HTTPServicios Web y SOA
Puede funcionar de forma desconectadaSe despliega y actualiza de forma centralizada
¿Qué es un Smart Client?¿Qué es un Smart Client?EjemplosEjemplos
NoNoNoNoSíSíSíSíDiscutible…Discutible…NotepadNotepad
NoNoNoNoNoNoNoNoSíSíOutlook XPOutlook XP
NoNoNoNoSíSíSíSíSíSíOutlook 2003Outlook 2003
HotmailHotmail NoNo
¿Experiencia ¿Experiencia rica?rica?
SíSí
¿Funciona ¿Funciona en Internet?en Internet?
SíSí
¿Despliegue ¿Despliegue centralizadocentralizado
??
NoNo
¿Smart Client?¿Smart Client?
NoNo
¿Soporta modo ¿Soporta modo desconectado?desconectado?
Introducción a Windows Introducción a Windows FormsForms
Introducción a Windows Introducción a Windows FormsForms¿Qué es?¿Qué es?Tecnología incluida en el Tecnología incluida en el
Framework .NETFramework .NET
Aprovecha lo mejor de WindowsAprovecha lo mejor de WindowsAlta usabilidad para los clientesAlta usabilidad para los clientes
Aprovecha hardware localAprovecha hardware local
Layout preciso al pixelLayout preciso al pixel
Y soluciona sus problemas típicosY soluciona sus problemas típicosInstalación, mantenimientoInstalación, mantenimiento
SeguridadSeguridad
Introducción a Windows Introducción a Windows FormsFormsDesarrolloDesarrolloWindows Forms es una librería de clasesWindows Forms es una librería de clases
Accesibles desde el .NET FrameworkAccesibles desde el .NET Framework
Encapsula con OOP la API WindowsEncapsula con OOP la API WindowsControles identificados con HWNDControles identificados con HWND
Propiedades accesibles con SendMessagePropiedades accesibles con SendMessage
Eventos capturados en WndProcEventos capturados en WndProc
Visual Studio .NET como diseñadorVisual Studio .NET como diseñadorAumenta la productividad del desarrolloAumenta la productividad del desarrollo
Diseñadores, asistentes, plantillasDiseñadores, asistentes, plantillas
Introducción a Windows Introducción a Windows FormsFormsClase ControlClase ControlUna clase base común: ControlUna clase base común: Control
Representa un elemento del interfazRepresenta un elemento del interfaz
Resto de elementos derivan de ControlResto de elementos derivan de ControlFormulario Windows (Form)Formulario Windows (Form)
Básicos (TextBox) y extendidos (DataGrid)Básicos (TextBox) y extendidos (DataGrid)
Funcionalidad encapsulada en Funcionalidad encapsulada en propiedades y eventospropiedades y eventos
Eventos accesibles por delegatesEventos accesibles por delegates
““Hola Mundo” en Windows Hola Mundo” en Windows FormsForms
Introducción a Windows Introducción a Windows FormsFormsDiseño con Visual Studio .NETDiseño con Visual Studio .NETVisual Studio .NET permite diseñar Visual Studio .NET permite diseñar
gráficamente los formulariosgráficamente los formulariosArrastrar controles desde la paletaArrastrar controles desde la paleta
Modificar sus propiedadesModificar sus propiedades
Procesar los eventosProcesar los eventos
Todo está en códigoTodo está en códigoVisual Studio sincroniza el código en los dos Visual Studio sincroniza el código en los dos sentidossentidos
““Hola Mundo” con Visual Hola Mundo” con Visual StudioStudio
Introducción a Windows Introducción a Windows FormsFormsOrganización de controlesOrganización de controlesNueva aproximación al AutoScaleNueva aproximación al AutoScale
Todas las coordenadas en píxelesTodas las coordenadas en píxeles
Autoescaladas según AutoScaleBaseSizeAutoescaladas según AutoScaleBaseSize
Layout manual con Visual StudioLayout manual con Visual Studio
Layout automáticoLayout automáticoDockingDocking
AnchorAnchor
Orden de tabulador configurableOrden de tabulador configurable
Botones Default y CancelBotones Default y Cancel
Organización de controlesOrganización de controles
Introducción a Windows Introducción a Windows FormsFormsAplicaciones MDI vs SDIAplicaciones MDI vs SDISDI: Un solo documento a la vezSDI: Un solo documento a la vez
Ej. WordPadEj. WordPad
MDI: Varios documentos MDI: Varios documentos simultáneamentesimultáneamenteEj. ExcelEj. Excel
Propiedad Form.IsMDIContainerPropiedad Form.IsMDIContainer
Introducción a Windows Introducción a Windows FormsFormsDiálogosDiálogosModales: Paran la ejecuciónModales: Paran la ejecución
Método Form.ShowDialogMétodo Form.ShowDialog
No modales: Permiten ejecución paralelaNo modales: Permiten ejecución paralelaMétodo Form.ShowMétodo Form.Show
Diálogos comunesDiálogos comunesOpenFIleDialog, SaveFileDialogOpenFIleDialog, SaveFileDialog
FontDialog, ColorDialogFontDialog, ColorDialog
PrintDialog, PageSetupDialogPrintDialog, PageSetupDialog
Introducción a Windows Introducción a Windows FormsFormsControlesControles ControlControlControlControl
ListControlsListControlsListControlsListControls
ComboBoxComboBoxComboBoxComboBox
ListBoxListBoxListBoxListBox
TreeViewTreeViewTreeViewTreeView
DataGridDataGridDataGridDataGrid
ButtonButtonButtonButton
ButtonBaseButtonBaseButtonBaseButtonBase
SplitterSplitterSplitterSplitter
TrackBarTrackBarTrackBarTrackBar
CheckBoxCheckBoxCheckBoxCheckBox
TextBoxTextBoxTextBoxTextBox
RichTextBoxRichTextBoxRichTextBoxRichTextBox
RadioButtonRadioButtonRadioButtonRadioButton
TextBoxBaseTextBoxBaseTextBoxBaseTextBoxBase
ListViewListViewListViewListView
ScrollableControlScrollableControlScrollableControlScrollableControl
PanelPanelPanelPanel
ProgressBarProgressBarProgressBarProgressBar
PictureBoxPictureBoxPictureBoxPictureBox
StatusBarStatusBarStatusBarStatusBar
ToolBarToolBarToolBarToolBar
ScrollBarScrollBarScrollBarScrollBar
MonthCalendarMonthCalendarMonthCalendarMonthCalendar
DateTimePickerDateTimePickerDateTimePickerDateTimePicker
Introducción a Windows Introducción a Windows FormsFormsDesarrollo de controlesDesarrollo de controlesControles de usuarioControles de usuario
Composición de otros controlesComposición de otros controles
Desarrollo visual con Visual Studio .NETDesarrollo visual con Visual Studio .NET
Controles personalizadosControles personalizadosDerivan de clase Control o de otro controlDerivan de clase Control o de otro control
Añaden funcionalidadAñaden funcionalidadEvento OnPaint, nuevas propiedades / eventos, Evento OnPaint, nuevas propiedades / eventos, etc.etc.
Integración con Visual StudioIntegración con Visual Studio
Personalización de pintadoPersonalización de pintadoRedefinir el pintado de los elementosRedefinir el pintado de los elementos
Desarrollo de controlesDesarrollo de controles
Introducción a Windows Introducción a Windows FormsFormsHerenciaHerenciaReutilización de componentes o Reutilización de componentes o
formulariosformularios
Métodos tradicionalesMétodos tradicionalesSobrescribir WNDPROC en C++Sobrescribir WNDPROC en C++
Controles de usuario en VB6Controles de usuario en VB6
Nuevo método disponible OOPNuevo método disponible OOPDerivar controles y formulariosDerivar controles y formularios
Mucho más encapsulado y personalizableMucho más encapsulado y personalizable
Soportado gráficamente por VS.NETSoportado gráficamente por VS.NET
Herencia de formulariosHerencia de formularios
Introducción a Windows Introducción a Windows FormsFormsEnlace a datosEnlace a datosEnlace SimpleEnlace Simple
Cualquier propiedad de un control puede ser Cualquier propiedad de un control puede ser enlazada a un datoenlazada a un dato
Colección DataBindingsColección DataBindings
Enlace complejoEnlace complejoLos controles lista pueden ser enlazados a Los controles lista pueden ser enlazados a un conjunto de datosun conjunto de datos
Propiedades DataSource, DataMemberPropiedades DataSource, DataMember
Personalización del formatoPersonalización del formatoEventos Format, ParseEventos Format, Parse
Enlace a datosEnlace a datos
Gráficos avanzados con Gráficos avanzados con GDI+GDI+
Gráficos avanzados con Gráficos avanzados con GDI+GDI+¿Qué es GDI+?¿Qué es GDI+?Librería incluida en Windows XP / 2003Librería incluida en Windows XP / 2003
Gráficos vectorialesGráficos vectoriales
Procesamiento de imágenesProcesamiento de imágenes
TipografíaTipografía
System.Drawing encapsula GDI+System.Drawing encapsula GDI+GDIPLUS.DLL instalada junto a runtime .NETGDIPLUS.DLL instalada junto a runtime .NET
Namespaces:Namespaces:System.Drawing.Drawing2DSystem.Drawing.Drawing2D
System.Drawing.ImagingSystem.Drawing.Imaging
System.Drawing.TextSystem.Drawing.Text
Gráficos avanzados con Gráficos avanzados con GDI+GDI+Gráficos vectorialesGráficos vectorialesDefinición del gráficoDefinición del gráfico
Primitivas vectorialesPrimitivas vectorialesLíneas, polígonos, arcos, splines, beziers…Líneas, polígonos, arcos, splines, beziers…
Estilos de líneaEstilos de líneaColor, trazado, nodos finales, tipos de Color, trazado, nodos finales, tipos de intersección…intersección…
Estilos de rellenoEstilos de rellenoSólido, patrón, textura, gradientes…Sólido, patrón, textura, gradientes…
Gráficos avanzados con Gráficos avanzados con GDI+GDI+Gráficos vectoriales (II)Gráficos vectoriales (II)RenderizadoRenderizado
Transparencia canal alfaTransparencia canal alfa
Estilo de anti-aliasingEstilo de anti-aliasing
TransformacionesTransformaciones
FiltradoFiltrado
Coordenadas en punto flotanteCoordenadas en punto flotante
Gráficos vectorialesGráficos vectoriales
Gráficos avanzados con Gráficos avanzados con GDI+GDI+Tratamiento de imágenesTratamiento de imágenesCodificación / decodificaciónCodificación / decodificación
BMP, JPEG, PNG, GIF, TIFF, EXIF…BMP, JPEG, PNG, GIF, TIFF, EXIF…
ProcesamientoProcesamientoTransformaciones, brillo, contraste, Transformaciones, brillo, contraste, coloreado…coloreado…
Escalado bicúbicoEscalado bicúbico
Gestión del color ICMGestión del color ICM
Relación con gráficosRelación con gráficosMostrar imagen en lienzoMostrar imagen en lienzo
Crear lienzo desde imagen (útil para doble Crear lienzo desde imagen (útil para doble búfer)búfer)
Tratamiento de imágenesTratamiento de imágenes
Gráficos avanzados con Gráficos avanzados con GDI+GDI+TipografíaTipografíaSoporte ClearTypeSoporte ClearType
Soporte OpenTypeSoporte OpenType
Alto nivel de internacionalizaciónAlto nivel de internacionalizaciónÁrabe, hebreo, thai, vertical…Árabe, hebreo, thai, vertical…
Relación con gráficosRelación con gráficosRelleno con brochaRelleno con brocha
Path no linealPath no lineal
Convertible a curvaConvertible a curva
TipografíaTipografía
Programación asíncronaProgramación asíncrona
Programación asíncronaProgramación asíncronaHilo principal de aplicaciónHilo principal de aplicación
Windows Forms corre en un solo hiloWindows Forms corre en un solo hiloHilo donde se llama a Application.Run()Hilo donde se llama a Application.Run()
Hay que evitar sobrecargar ese hiloHay que evitar sobrecargar ese hiloProvoca interfaces que no respondenProvoca interfaces que no responden
Soluciones:Soluciones:Usar otros hilos para tareas costosasUsar otros hilos para tareas costosas
Usar las versiones asíncronas de las Usar las versiones asíncronas de las funcionesfunciones
BeginXXX, EndXXXBeginXXX, EndXXX
Programación asíncronaProgramación asíncronaAcceso al IU desde otro hiloAcceso al IU desde otro hilo
Los hilos secundarios Los hilos secundarios NUNCANUNCA deben deben acceder a las propiedades de los acceder a las propiedades de los controlescontroles
Windows Forms no es thread-safeWindows Forms no es thread-safe
Solución:Solución:Usar Usar Control.InvokeControl.Invoke o o Control.BeginInvoke Control.BeginInvoke para la actualizaciónpara la actualización
Multihilo en Windows FormsMultihilo en Windows Forms
Despliegue de aplicacionesDespliegue de aplicaciones
Despliegue de aplicacionesDespliegue de aplicacionesOpcionesOpciones
XCOPYXCOPYCopiar todas las librerías en un directorioCopiar todas las librerías en un directorio
La más sencillaLa más sencilla
Windows InstallerWindows InstallerCrear un paquete de instalaciónCrear un paquete de instalación
Permite acciones personalizadasPermite acciones personalizadas
Permite instalar componentes compartidosPermite instalar componentes compartidos
No Touch DeploymentNo Touch DeploymentDespliegue por HTTPDespliegue por HTTP
Despliegue de aplicacionesDespliegue de aplicacionesNo Touch DeploymentNo Touch Deployment
La aplicación se inicia desde Internet La aplicación se inicia desde Internet ExplorerExplorer
Aunque puede lanzar una ventana nuevaAunque puede lanzar una ventana nueva
Descarga las librerías conforme las Descarga las librerías conforme las necesitenecesite
Caché automáticoCaché automático
InconvenientesInconvenientesNecesita conexiónNecesita conexión
Por defecto corre con permisos restringidosPor defecto corre con permisos restringidos
Despliegue de aplicacionesDespliegue de aplicacionesSeguridadSeguridad
.NET define 5 grupos de código.NET define 5 grupos de código
Permisos asociados a cada unoPermisos asociados a cada unoMy Computer: sin restricciónMy Computer: sin restricción
Local Intranet: restringido (ej. sin disco)Local Intranet: restringido (ej. sin disco)
Internet, Trusted: muy restringido (ej. sin Internet, Trusted: muy restringido (ej. sin DNS)DNS)
Restricted: sin permiso de ejecuciónRestricted: sin permiso de ejecución
Determinado según la URL de inicioDeterminado según la URL de inicio
Despliegue de aplicacionesDespliegue de aplicacionesSeguridad (II)Seguridad (II)
RecomendacionesRecomendacionesDesarrollar para el conjunto mínimo de Desarrollar para el conjunto mínimo de permisospermisos
No acceder al discoNo acceder al disco
No interactuar con el sistemaNo interactuar con el sistema
Escribir código safeEscribir código safe
Configurar sólo en casos estrictamente Configurar sólo en casos estrictamente necesariosnecesarios
Herramienta .NET ConfigurationHerramienta .NET Configuration
Crear nuevos grupos en lugar de cambiar los Crear nuevos grupos en lugar de cambiar los permisospermisos
Despliegue de Despliegue de aplicacionesaplicaciones
Patrones de diseñoPatrones de diseño
Patrones de diseñoPatrones de diseñoDefiniciónDefinición
Formas recomendadas para resolver Formas recomendadas para resolver problemas comunes en el softwareproblemas comunes en el software
Aportan consistencia y facilidad de Aportan consistencia y facilidad de mantenimientomantenimiento
http://www.microsoft.com/resources/practices/http://www.microsoft.com/resources/practices/
Varios patrones aplican especialmente a Varios patrones aplican especialmente a Smart ClientsSmart Clients
ObservadorObservador
Modelo Vista - ControladorModelo Vista - Controlador
CommandCommand
Patrones de diseñoPatrones de diseñoObservadorObservador
En las aplicaciones ricas es común tener En las aplicaciones ricas es común tener distintas vistas de los mismos datosdistintas vistas de los mismos datos
Problema de sincronizaciónProblema de sincronización
Action
Action
Action
Action
Patrones de diseñoPatrones de diseñoObservador (II)Observador (II)
El patrón observador relega las acciones El patrón observador relega las acciones a los datosa los datos
Son los datos los que notifican a las vistasSon los datos los que notifican a las vistas
Action
Action
Action
Action
Data
Patrones de diseñoPatrones de diseñoModelo Vista - ControladorModelo Vista - Controlador
El modelo Vista – Controlador El modelo Vista – Controlador independiza y estructura el IUindependiza y estructura el IU
¿Por qué independizar IU del resto?¿Por qué independizar IU del resto?El interfaz gráfico cambia con frecuenciaEl interfaz gráfico cambia con frecuencia
Los datos se muestran de distinta formaLos datos se muestran de distinta forma
Las pruebas son complicadasLas pruebas son complicadas
Los desarrolladores pueden estar Los desarrolladores pueden estar especializadosespecializados
Patrones de diseñoPatrones de diseñoModelo Vista – Controlador (II)Modelo Vista – Controlador (II)
ModeloModeloContiene los datos, su Contiene los datos, su comportamiento y el comportamiento y el estadoestado
VistaVistaGestiona la Gestiona la presentación de los presentación de los datosdatos
ControladorControladorInterpreta las acciones Interpreta las acciones del usuario, del usuario, informando al modelo informando al modelo y a la vistay a la vista
ModeloModelo
ControladorControlador
VistaVista
Patrones de diseñoPatrones de diseñoModelo Vista – Controlador (III)Modelo Vista – Controlador (III)
Posibilidad unir Controlador y VistaPosibilidad unir Controlador y VistaModelo Documento – VistaModelo Documento – Vista
Normalmente unido a patrón Normalmente unido a patrón ObservadorObservador
Evita una referencia circularEvita una referencia circular
Vistas actualizadas con los cambios del Vistas actualizadas con los cambios del modelomodelo
VistaVistaDocumentoDocumento
Patrones de diseñoPatrones de diseñoCommandCommand
Una acción suele estar accesible en Una acción suele estar accesible en distintos puntosdistintos puntos
Ej. Menú, toolbar, contextoEj. Menú, toolbar, contexto
El patrón Command encapsula el estado El patrón Command encapsula el estado y la acción asociados a los elementosy la acción asociados a los elementos
Dos clasesDos clasesCommand: Encapsula la acciónCommand: Encapsula la acción
Commander: Une commands a elementos Commander: Une commands a elementos de IUde IU
Patrones de diseñoPatrones de diseño
Application BlocksApplication Blocks
Application BlocksApplication Blocks¿Qué son?¿Qué son?
Bloques de código .NET que solventan Bloques de código .NET que solventan problemas comunes con mejores problemas comunes con mejores prácticasprácticas
Reusables, extensibles y modificablesReusables, extensibles y modificables
Acceso a datos, logging, configuración…Acceso a datos, logging, configuración…
Varios aplican especialmente a Smart Varios aplican especialmente a Smart ClientsClients
UpdaterUpdater
OfflineOffline
User Process InterfaceUser Process Interface
Application BlocksApplication BlocksUpdaterUpdater
Permite detectar, validar y descargar Permite detectar, validar y descargar actualizacionesactualizaciones
Modelo Modelo pullpullEl cliente comprueba periódicamenteEl cliente comprueba periódicamente
No necesitamos conexión para ejecutarNo necesitamos conexión para ejecutar
Descarga en segundo planoDescarga en segundo planoTecnología Windows Update (BITS)Tecnología Windows Update (BITS)
Application BlocksApplication BlocksOfflineOffline
Permite desarrollar aplicaciones que Permite desarrollar aplicaciones que trabajan sin conexión permanente (ej. trabajan sin conexión permanente (ej. Outlook 2003)Outlook 2003)
Sin cambiar el modelo de desarrollo online / Sin cambiar el modelo de desarrollo online / offlineoffline
IncorporaIncorporaFramework para realizar llamadas a Framework para realizar llamadas a servicios online / offline de forma servicios online / offline de forma transparentetransparente
Infraestructura para funcionamiento Infraestructura para funcionamiento asíncronoasíncrono
No incorporaNo incorporaProcesamiento de datos (ej. resolución Procesamiento de datos (ej. resolución conflictos)conflictos)
Application BlocksApplication BlocksOffline (II)Offline (II)
Application BlocksApplication BlocksUser Process InterfaceUser Process Interface
Framework modelo Vista – ControladorFramework modelo Vista – Controlador
IncluyeIncluyeClases base para cada elementoClases base para cada elemento
Configuración declarativa del flujo de Configuración declarativa del flujo de navegaciónnavegación
Independiente del interfazIndependiente del interfazMismo código de lógica para Web, Win o Mismo código de lógica para Web, Win o MóvilMóvil
Persistencia automática del modeloPersistencia automática del modeloPermite resumir sesiones, cambiar Permite resumir sesiones, cambiar dispositivo o navegar atrásdispositivo o navegar atrás
Application BlocksApplication BlocksUser Process Interface (II)User Process Interface (II)
Updater Application Updater Application BlockBlock
Desarrollo con Desarrollo con dispositivos móvilesdispositivos móviles
Desarrollo con dispositivosDesarrollo con dispositivos.NET Compact Framework.NET Compact Framework
Versión reducida del Framework .NETVersión reducida del Framework .NET
Diseñado para dispositivos inteligentesDiseñado para dispositivos inteligentesPocketPC y PocketPC Phone EditionPocketPC y PocketPC Phone Edition
SmartPhoneSmartPhone
Windows CEWindows CE
Mismo entorno: Visual Studio .NETMismo entorno: Visual Studio .NETEditoresEditores
DiseñadoresDiseñadores
Depuración (emulador o dispositivo Depuración (emulador o dispositivo conectado)conectado)
Desarrollo con dispositivosDesarrollo con dispositivosComparación con versión desktopComparación con versión desktop
Optimizado para pequeños dispositivosOptimizado para pequeños dispositivos
Misma librería de clasesMisma librería de clasesSin ASP.NET, configuración, XPath, Sin ASP.NET, configuración, XPath, Remoting…Remoting…
Framework Comparison ToolFramework Comparison ToolMuestra las diferencias entre los dosMuestra las diferencias entre los dos
Desarrollo con dispositivosDesarrollo con dispositivosInterfaz gráficoInterfaz gráfico
Juego de controles adaptadoJuego de controles adaptadoTextBox, ListBox, DataGrid, TreeView…TextBox, ListBox, DataGrid, TreeView…
Nuevos controles especialesNuevos controles especialesInputPanel, Spinner…InputPanel, Spinner…
Otros controles dependen del dispositivoOtros controles dependen del dispositivo¡Ej. Button!¡Ej. Button!
Controles de usuario no soportadosControles de usuario no soportados
Desarrollo con dispositivosDesarrollo con dispositivosAcceso a datosAcceso a datos
SQL Server 2000SQL Server 2000Mismas clases que .NET FrameworkMismas clases que .NET Framework
Necesita conexión con PCNecesita conexión con PC
SQL Server CESQL Server CEVersión reducida de SQL ServerVersión reducida de SQL Server
Permite sincronizaciónPermite sincronización
Proveedor ADO.NET Proveedor ADO.NET SqlServerCESqlServerCE
Servicios webServicios webSoporte de servicios web remotosSoporte de servicios web remotos
Desarrollo con Desarrollo con dispositivosdispositivos
•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•www.DesarrollaConMSDN.comwww.DesarrollaConMSDN.com
•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•www.DesarrollaConMSDN.comwww.DesarrollaConMSDN.com
•Código de MSDN VideoCódigo de MSDN Video•CalendarioCalendario•TutorialesTutoriales•SeminariosSeminarios•ArtículosArtículos•ForosForos•Descuento 40% librosDescuento 40% libros
SepSep OctOct NoNovv
DicDic EneEne FebFeb MaMarr
AbrAbr MaMayy
JunJun
.NET y .NET y Servicios Servicios
WebWeb
Desarrollo Desarrollo webweb
SmartSmartClientsClients
Visual Studio Visual Studio 20052005
SQL Server 2005SQL Server 2005