Windows 7 Oportunidades De Desarrollo para ISV


Published on

Examinaremos nuevas características de Windows 7 que ofrecen nuevas oportunidades para ISV de actualizar sus aplicaciones para esta versión del sistema operativo.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Let’s review what it takes to build a great Windows 7 Application. What do YOU need to do in order to be able to say “Yes my Application is a first-class Windows 7 citizen”? Is there a check list? You bet!You need to do three things to ensure a smooth transition:First, you need to make sure your Application is compatible with Windows 7. There is no escape from this; it is essential that you make sure that your Application runs well on Windows 7, whether you are a managed or native developer. There is nothing worse for an end User than to be excited about the new Windows 7 Operating System just to discover that their favorite Application doesn’t perform properly. A bad User experience hurts everyone - which is why you have to make sure your Application installs and runs on all Windows 7 editionsand supports both 32- and 64-bit builds.Second, after verifying that your Application can install and run on Windows 7 without any problems, it is time to become a good Windows 7 Citizen bystepping up and optimizing your Application’s User experiences and performance to its best while running on Windows 7. Do this by taking advantage of the great new features offered with Windows 7. These include new User interface innovations like the Taskbar and Libraries, to more fundamental features like Trigger Start Services or the new Troubleshooting platform. By optimizing your Application for Windows 7, you can make sure that your end user's experiences when running your Application on Windows 7 surpasses their expectations. Users will expect Applications to work properly with the Taskbar (just one example); but if your Application is not optimized for the new Windows 7 Taskbar experience, end Users might just notice that.This first two steps are what Users will expectfrom your Application, that is to install and run “properly” on Windows 7.The last step is where you really have a chance to differentiate yourself from the competition. You can really differentiate your Application by creating new and exciting User experiences. Windows 7 enables developers to create distinctive and intuitive Applications that significantly enhance discoverability, usability, and sheer enjoyment. New methods of desktop integration put Application functionality right at the user’s fingertips. New Touch APIs enable natural interactions through Multitouch and finger-panning gestures. Rapid advances in hardware and software technology are also driving higher-fidelity User experiences. Windows 7 brings these advances under developer control with new and flexible APIs that take full advantage of the technology, while making it even easier to develop compelling Applications.Windows 7 includes many new features that can make your Application shine, raising it above the competition. When you think about creating new and exciting User experiences, consider using one or more of the following features:• Windows® Sensor• Windows® RibbonThere are more features that we will not have time to talk about today, but are certainly worth mentioning like: Media Platform with technologies like DirectShow that provide the bases media support in Windows Search Federation Device Stage™ Integration And many more great Windows 7 features…
  • A native developer can start developing by making use of all Windows 7 features today.As Windows 7 is getting released now and the .NET framework is getting released sometime next year, a managed code developer can leverage WindowsAPICodePack and WindowsTouch APIs today. Eventually most of these managed wrappers will be in .NET 4.0 in the future.ReferenceWindows Touch: Developer Resources (® API Code Pack for Microsoft® .NET Framework (
  • Explain what's available in Windows API code pack for Microsoft .NET Framework
  • Libraries group folders together into a single unified view regardless of folder hierarchy They don’t have to share a physical root so one can sit on a network location, which also means it’s not always available (e.g. I can have my home Windows® Media Center music folder in a library that I can access on my mobile PC in the office…)Users will learn to interact with libraries as if they were folders, but in fact they are not folders!Developers must know that libraries are not folders, in fact they are just .library-ms XML files that have a specific schemeA library has a default save location and there are APIs for interacting with a library and getting its save location from it (as well as adding folders to it, etc.)Listen to change notifications on a library == listen to change notifications on the corresponding .library-ms XML file
  • Windows 7 introduces a new, native API for creating Ribbon-based UIs- COM based (include ScenicIntent.h)API will be available for Vista in the futureUI markup via XAML-based format- Very similar to the WPF Ribbon syntaxFeature parity (or almost) with Office 2007 Ribbon. Used by Windows 7 built-in Paint, WordPad, Live Movie Maker, and others.
  • Background services in Windows are a pain – the Operating Systemships with a lot of them in the box, but ISVs add even more.Eventually background services decrease performance, increase power consumption, expand the attack surface and affect the system’s reliability.The goal should be – have background services run for as little time as possible and with the smallest footprint. To that end:Convert services to scheduled tasksMinimize the security privileges granted to a service (per-service SID, service privileges API etc.)Minimize the work services do on startup, shutdown and on idleThe types of service startup evolved over the years:Windows® XP gives us a very Boolean choice.On Windows® Vista we have delayed auto-start for services that don’t want to delay logon.On Windows 7 we have trigger-start services, which means the service isn’t running when it has nothing to do!There are lots of available triggers, and if none suits you there’s always the custom ETW event trigger which means your service can be triggered by anything that can write to an ETW log (or the Event Log).The idea is to convert services to Trigger-Start services and make them stop themselves when their work is done. This is more similar to tasks than to traditional NT services.
  • [TDM, DEV]After making your application run on Windows 7 it is time to optimize into a Windows 7 user experience. Start by using Windows 7 Taskbar and Libraries.
  • Windows 7 Oportunidades De Desarrollo para ISV

    1. 1. Windows 7- Oportunidades de Desarrollo para ISVWindows 7 SuperHero Technical Readiness<br />Michał Morciniec ,<br />Microsoft Ibérica<br />
    2. 2. Hoja de Ruta para la Aplicación diseñada para Windows 7<br /><ul><li>Multitouch
    3. 3. Windows Ribbon
    4. 4. Sensors</li></ul>Diferenciación<br /><ul><li>Windows Taskbar
    5. 5. Libraries
    6. 6. Fundamentals</li></ul>Optimización<br /><ul><li>Version Control
    7. 7. User Account Control
    8. 8. Removed Components</li></ul>Compatibilidad<br />
    9. 9. Desarrollo para Windows 7<br />Tomorrow<br />Multi-touch<br />Today<br />Ribbon<br />Sensors<br />Taskbar<br />Libraries<br />Fundamentals<br />Get compatible<br />
    10. 10. Windows API Code Pack for Microsoft .NET Framework <br />Windows 7 API Code Pack v1.0.1 -capa de interoperabilidad<br />Windows Shell namespace objects, including: <br />Windows 7 libraries <br />Shell property system <br />Windows 7 Taskbar <br />Windows Vista and Windows 7 common file dialogs<br />Windows 7 Explorer Browser Control <br />Support for Direct3D 11.0 and DXGI 1.0/1.1 APIs <br />Sensor Platform APIs <br />Extended Linguistic Services APIs<br />Power Management APIs<br />
    11. 11. Un Paréntesis – Evolución de Interfaz de Usuario en Windows<br />
    12. 12.
    13. 13.
    14. 14.
    15. 15.
    16. 16.
    17. 17. Windows 7: Nueva Interfaz de Usuario<br />Barra de tareas<br />JumpLists<br />Thumbnails<br />Librerías de documentos<br />Ribbon UI<br />
    18. 18. Windows 7: Barra de tareas<br />Mejorada gracias a la experiencia de usuario<br />Acceso más rápido y fácil a las aplicaciones<br />Se agrupan por aplicación<br />Mas facilidad para manejar las ventanas<br />Escritorio mas limpio<br />Vistas Thumbnail<br />Aparecen las “JumpList”<br />Iconos vivos:<br />Barra de progreso<br />Iconos activos (overlayicons)<br />
    19. 19. Windows 7: Barra de tareas<br />Multiples ventanas<br />Aplicaciónparada<br />AplicaciónActiva<br />“Overlay icon”<br />Barra de progreso<br />
    20. 20. Windows 7: Barra de tareas - Thumbnails<br />“Live thumbnails”: vista previa en vivo de la aplicación<br />Windows Vista: Un thumbnail por ventana<br />Windows 7: Thumbnails agrupados<br />Control remoto (Play)<br />“Thumbnailtoolbar” permite controlar aplicación desde la barra<br />
    21. 21. Windows 7: Barra de Tareas - APIs<br />Barra de progreso (API):<br />API Nativo<br />ITaskBarList3::SetProgressState<br />ITaskBarLsit3::SetProgressValue<br />API Manejado<br />Clase ProgressBar<br />IconOverlay (API):<br />API Nativo<br />ITaskbarList3::SetOverlayIcon<br />API Manejado<br />Clase OverlayImage<br />Barra de progreso<br />Icon Overlay<br />
    22. 22. Windows 7: Barra de tareas -APIs<br />Live thumbnails (API): <br />API Nativo<br />ITaskbarList3::RegisterTab<br />ITaskbarList3::SetTabActive<br />ITaskbarList3::SetTabOrder<br />ITaskbarList3::UnregisterTab<br />Thumbnail Toolbar (API):<br />API Nativo<br />ITaskbarList3::ThumbBarAddButtons<br />ITaskbarList3::ThumbBarSetImageList<br />ITaskbarList3::ThumbBarUpdateButtons<br />
    23. 23. Peek Preview (Aero Peek)<br />Pre-visualización de ventanas en vivo sin tenerqueactivarlas<br />
    24. 24. AeroPeek en IE8<br />Previsualización en vivo de laspestañas<br />
    25. 25. Windows 7: Jump List<br />Parecido a un Mini Menú de Inicio, pero relativo a la aplicación<br />
    26. 26. Windows 7: Jump Lists<br />Pinned category<br />Destinations<br />(“nouns”)<br />Known categories<br />Custom categories<br />User Tasks<br />Tasks<br />(“verbs”)<br />Taskbar Tasks<br />
    27. 27. DEMOWindows 7 – Taskbar & JumpList<br />Zoobar<br />
    28. 28. ZoobarThumbnails<br />
    29. 29. Implementación: OverlayIcon<br />Utilizar la función SetOverlayIcon() del TaskbarManager<br />
    30. 30. Localizador<br />
    31. 31.
    32. 32. Implementación: ThumbnailPreview<br />Crear TabbedThumbnail e inicializarlo con la ventana y elemento para mostrar en Thumbnail<br />Enlazar código que ejecutará cuando Thumbnail se activa y cierra.<br />Añadir TabbedThumbnail creado al listado de vistas<br />
    33. 33. Galería de fotos <br />
    34. 34.
    35. 35. Implementación: Creación de ThumbnailToolbar<br />Crear botones y enlazar con código que realiza la acción<br />Añadirbotones a la propiedadThumbnailToolbars <br />
    36. 36. Video cámera<br />
    37. 37.
    38. 38. Implementación: ThumbnailClip<br />Calcular posición del elemento con Video relativo a la ventana principal<br />Utilizar función SetThumbailClip()<br />
    39. 39. Nuevo Explorador de Windows<br />Varias Vistas<br />Potentesbúsquedas<br />BúsquedasFederadas<br />Librerias de documentos<br />Vista previa de documentos<br />Navegación<br />Metadatos<br />
    40. 40. Librerías<br />
    41. 41. Librerías y Desarrollo<br />Una librería es una collección de carpetas<br />Carpetas se agrupan <br />Típicamente no comparten el mismo raíz <br />Útiles y amigables para usuarios<br />Consejos para programadores:<br />Utilizar la versión correcta del control Common<br />FileDialog (CFD) , e.g.:<br />CommonOpenFileDialogdel API Code Pack<br />CFD puede devolver “librería” como ubicación<br /> para guardar fichero<br />Libraría tiene “default savelocation”<br />Aplicación debe ser “consciente” de librerías<br />Más detalle en IntroducingLibraries<br />
    42. 42. Nuevo CommonOpenFileDialog y TaskDialog<br />Microsoft.APICodePack.Dialogs<br />
    43. 43. Dialogo de Gestión de Librerías<br />Permite gestionar la librería mediante un dialógo<br />Utilizar ShowManageLibrary()<br />Metadatos de librerías se ubican en ficheros XML .library-ms en<br />C:UsersusuarioAppDataRoamingMicrosoftWindowsLibraries<br />Aplicación debería escuchar cambios mediante FileSystemWatcher<br />
    44. 44. DEMOWindows 7 - Librerías<br />Library Manager<br />
    45. 45. Microsoft Ribbon Strategy<br />Tipos del Ribbon disponibles<br />
    46. 46. Windows Ribbon (WRF)<br />Windows 7 introduce una nueva API Windows RibbonFramework (WRF) en nativo para crear interfaces de usuario basadas en Ribbon<br />Basada en COM =&gt; (includeScenicIntent.h)<br />La Interfaz de Usuario se define via XAML<br />Muy similar a la sintaxis del WPF Ribbon<br />Funcionalidad muy parecida al Ribbon de Office 2007<br />Utilizada por Windows 7 en Paint, WordPad, Live MovieMaker, etc…<br />Menu Aplicación<br />Ayuda<br />Contextual Tab Set<br />Tab<br />Quick Access Toolbar<br />Contextual Tab<br />Dialog Launcher<br />Grupo (aka “Chunk”)<br />
    47. 47. Windows 7 Ribbon y .Net Windows Forms<br />Capa de interoperabilidad .Net para Windows 7 Ribbon Nativo (WRF)<br />RibbonTool – (Herramienta que permite precompilarRibbonmarkup)<br />Windows RibbonforWinForms – (capa de interoperabilidad para C#)<br /> Requiere SDK de Windows 7 para compilar<br />Windows 7 SDK<br />Presentación sobre Ribbon Nativo del PDC 09<br />Windows Ribbon Technical Deep Dive<br />INSERT PRESENTATION TITLE<br />41 |<br />
    48. 48. Controles Scenic Ribbon<br />Combo Boxes<br />Spinners<br />Mini Toolbar &Contextual Menu<br />Group Dialog Launchers<br />Buttons & Split Buttons<br />Tooltips<br />Color Pickers<br />Categorized Menus<br />Font Control<br />“In-Ribbon” Galleries<br />Help Button<br />Dropdown Galleries<br />Tabs & Groups<br />Check Boxes<br />
    49. 49. WPF Ribbon<br />Disponible como ensamblado redistribuible <br />Firmar una licencia (enlace “Licensethe Office UI” en Office UI Licensing Developer Center)<br />Descargar RibbonsControlLibary.dll e incluir en en proyecto WPF.<br />Instucciones completas en WPF RibbonPreview<br />Se planifica una versión mejorada para WPF 4.0 <br />Ribbon V1 Roadmap describe cambios previstos<br />INSERT PRESENTATION TITLE<br />43 |<br />
    50. 50. Optimización Aplicación para Windows 7<br />TriggerStart Services<br />Power Management API<br />Sensors & Location API<br />Extended Linguistic Services API<br />Multitouch API<br />
    51. 51. Servicios de Windows “Trigger-Start”<br />Servicios de Windows afectan rendimiento, seguridad, fiabilidad y consumo de energía<br />El objetivo es minimizar <br />el número de servicios que ejecutan en cualqiuier momento<br />Tiempo de procesamiento<br />Recursos consumidos (CPU, Memoria)<br />Tipos de arranque de Servicios Windows<br />Windows XP – Auto-Start / Manual<br />Windows Vista – XP + Delayed Auto-Start<br />Windows 7 – Windows Vista + Trigger-Start<br />Tipos de triggers<br />Máquina adjuntada al dominio, dirección IP disponible,<br /> dispositivo insertado, cambio de política de grupo, ETW <br />customizado (cualquier evento que aparece en Visor de Sucesos)<br />
    52. 52. DEMOWindows 7 Trigger-Start Services<br />USB Copy Service<br />
    53. 53. Gestión de Consumo de Energía<br />Aplicación y Energía<br />Animaciones consumen energía del CPU y GPU<br />Deshabilitar animaciones si se utiliza batería o plan de ahorro de energía es activo<br />Actividad de Windows Registry = Actividad de disco<br />Evitar actividad cuando es sistema está desocupado (idle)<br />Aplicación puede recibir eventos sobre<br />Cambios en configuración plan de ahorro de energía,<br />Desconexión de fuente de alimentación<br />Sistema entrando/saliendo del estado de suspensión<br />Aplicación pude saber<br />Plan de ahorro de energía activo (HighPerf., PowerSaver, Balanced)<br />Carga disponible de batería<br />Si el monitor está activado<br />
    54. 54. DEMOWindows 7 Aplicación y Enregía<br />Power Management<br />
    55. 55. Sensor & Location API<br />Define un frameworkestandar para los sensores.<br />Permite que la Aplicación adapte al entorno físico<br />mostrar información relativa a la ubicación física (restaurantes, etc)<br />Adaptar luminancia de la pantalla, saturación de los colores en función de la intensidad de luz del ambiente<br />Utilizar accesorios de juego avanzandos (accelerometro 3D)<br />
    56. 56. Extended Linguistic Services<br />Un API que permite<br /><ul><li>Detectar idioma en el que el usuario escribe el testo (+100 idiomas)
    57. 57. Transliterar texto entre sistemas del escrito – facilita comunicación liguistica</li></ul>Más información en<br /><br />INSERT PRESENTATION TITLE<br />50 |<br />
    58. 58. Multitouch API<br />Permite aprovechar nueva generación de Hardware<br /><ul><li>Interpretación de gestos para realizar operación del aplicativo
    59. 59. (WM_GESTURE /WM_TOUCH)
    60. 60. Gestos
    61. 61. Permite una operación por gesto
    62. 62. Manipulaciónes e Inertia</li></ul>Multiples operaciones (resize & translate)<br />Touch API<br />INSERT PRESENTATION TITLE<br />51 |<br />WPF4.0 incluirá:<br /><ul><li>Manipulación Multi-touch, eventos de Inertia (Pan, Zoom, Rotate) sobre UIElement
    63. 63. Eventos multi-touchevents (Up, Move, Down) en UIElement, UIElement3D y ContentElement</li></li></ul><li>Resumen – Optimización de Aplicaciónpara Windows 7<br />Compatibilidad con Windows 7<br />Optimización de Application para Windows 7<br />Aprovecha barra de Comandos y “JumpLists”<br />Aprovecha Librarías<br />Utiliza último CFD<br />Optimiza consumo de engería<br />Trigger-Start Services<br />Power Management API<br />Crea software de última generación<br />Utiliza Ribbon en el interfaz de usuario<br />Utiliza APIsavanzandos:<br />Multitouch, Sensor & Location, Extended Linguistic Services<br />
    64. 64. Recursos y Referencias<br />Windows 7 Developer Guide <br /><br />Windows API code pack for Microsoft .NET Framework<br /> <br />Comprehensive list of Windows 7 new features<br />Samples and help on development for Windows 7<br />Everything on Windows 7<br /><br />Excellent Videos on Windows 7 development<br /><br />Making Your WPF Apps Power-Aware<br /><br />
    65. 65. Back cover and contact information:<br /><br />Buzón de serviciopara Partners de Microsoft<br /><br />