300 likes | 448 Views
Clientes inteligentes Extensiones .NET de Office - VSTO Octavio Hernández | Danysoft. Haciendo visible el camino a .NET IV Encuentro de programadores Microsoft & Danysoft. Agenda del día. Introducción Presentación de VSTO Creación de proyectos Excel y Word Consideraciones de despliegue
E N D
Clientes inteligentesExtensiones .NET de Office - VSTOOctavio Hernández | Danysoft Haciendo visible el camino a .NETIV Encuentro de programadores Microsoft & Danysoft
Agenda del día • Introducción • Presentación de VSTO • Creación de proyectos Excel y Word • Consideraciones de despliegue • Consideraciones de seguridad • Demostración práctica • Conclusiones
Situación actual Aplicaciones web • Facilidad de instalación y mantenimiento • Multi-plataforma • Impacto en el cliente Aplicaciones Windows • Interfaz de usuario más rica • Acceso a recursos locales • Trabajo desconectado Office es el cliente rico más utilizado • Herramientas productivas y fáciles de usar • Problemas potenciales de mantenimiento, despliegue y seguridad .NET Framework • Potencia y flexibilidad del cliente ‘rico’ • Facilidad de despliegue y estabilidad del modelo basado en navegador
Visual Studio Tools for Office • Permite a los desarrolladores utilizar MS Office como plataforma para el desarrollo y despliegue de soluciones de negocio, aprovechando toda la potencia de .NET y VS.NET. • Permite el desarrollo de clientes ricos para Office: • Seguros • Más fiables • Más potentes • Más fáciles y rápidos de desarrollar • Más fáciles de actualizar
Visual Studio Tools for Office • Extiende el desarrollo .NET a las soluciones de negocio basadas en Office • Permite a los desarrolladores de C# y VB.NET utilizar VS.NET para asociar código a hojas Excel y documentos Word • Código separado del documento para simplificar el despliegue y mantenimiento • Utiliza la seguridad que ofrece .NET
Requisitos para la instalación • NET Framework v 1.1 • VS.NET 2003 Profesional o superior • Ayuda MSDN • Microsoft Office 2003 Profesional • Ensamblados primarios de interoperabilidad (P.I.A.) para Excel, Word, Forms, Graph • VSTO
Principales características • Plantillas de proyectos C# y VB.NET • Hoja Excel, documento y plantilla Word • Asistente de Proyectos Office • Puede utilizar un documento existente o crear uno nuevo • Hace referencia a los PIAs correspondientes al tipo de proyecto • Genera automáticamente el código para inicializar el proyecto y disparar los eventos de la aplicación Office • Crea la configuración de seguridad necesaria para la ejecución en la máquina de desarrollo
Características de un proyecto VSTO Referencias a ensamblados Imports System.Windows.Forms Imports Office = Microsoft.Office.Core Imports Excel = Microsoft.Office.Interop.Excel Imports MSForms = Microsoft.Vbe.Interop.Forms ' Atributo de integración con Office. Identifica la clase inicial del documento. <Assembly: System.ComponentModel.DescriptionAttribute( _ "OfficeStartupClass, Version=1.0, Class=SampleXLProject.OfficeCodeBehind")> Public Class OfficeCodeBehind Friend WithEvents ThisWorkbook As Excel.Workbook Friend WithEvents ThisApplication As Excel.Application Private Sub ThisWorkbook_Open() Handles ThisWorkbook.Open Dim sheet1 As Excel.Worksheet = CType(ThisWorkbook.Worksheets(1), Excel.Worksheet) Dim rng As Excel.Range = sheet1.Range("A1") rng.Value = "Hello World!" End Sub Private Sub ThisWorkbook_BeforeClose(ByRef Cancel As Boolean) _ Handles ThisWorkbook.BeforeClose Cancel = False End Sub End Class Atributo para integración Office Variables Documento y Aplicación Eventos Open (New) y Close
Componentes de un proyecto VSTO • Dos componentes: • Un documento Office que actúa como “front end” de la solución • Un ensamblado (code-behind DLL) que contiene el código compilado del proyecto • Un ensamblado por documento • El ensamblado se enlaza al documento mediante propiedades personalizadas • _AssemblyName0 • _AssemblyLocation0 • Ruta local, UNC o HTTP relativa o absoluta
Carga del código • Cargador incorporado en Word y Excel • Cuando se abre el documento • El cargador busca las propiedades personalizadas • Se carga el CLR dentro del proceso • Se trae a memoria el código • Si el documento y el código son de confianza, el código es activado
Custom Props? Trusted doc? Usuario abre documento SI Cargar CLR NO NO SI STOP ERROR STOP Crear AppDomain ERROR Trusted code? Disparar evento New/Open Conectar eventos SI Traer assembly ERROR NO ERROR Descargar AppDomain STOP Carga del código (2)
Elementos básicos • Requisitos para las máquinas clientes • Office 2003 Profesional • .NET Framework 1.1 • Las PIAs referenciadas por el ensamblado • Políticas de seguridad apropiadas
Local / Local Despliegue Local/Local • A favor: • No se requiere acceso a la red • Los usuarios pueden modificar el documento • En contra: • Las actualizaciones al documento o ensamblado requieren la redistribución a cada usuario
Despliegue Local/Red • A favor: • Las actualizaciones al ensamblado se simplifican • Los usuarios pueden modificar y personalizar el documento • En contra: • Las actualizaciones al documento requieren la redistribución a cada usuario Local / Red
Red / Red Despliegue Red/Red • A favor: • Las actualizaciones al ensamblado y al documento se simplifican • En contra: • Los usuarios no pueden modificar o personalizar los documentos maestros
Acceso offline al ensamblado • Los ensamblados que se despliegan a través de la red mediante direcciones http:// o https:// pueden beneficiarse de la funcionalidad de caché del Internet Explorer • Esto permite a los documentos locales utilizar un ensamblado cacheado cuando la red no esté disponible
Confianza del código • El CLR sólo ejecuta código de confianza • Por defecto, el código local es fiable • El código descargado de Internet se ejecuta con confianza parcial, a menos que se indique explícitamente que el sitio es de confianza. • Cuando el código obtiene permiso de ejecución, se ejecuta con los permisos del usuario • Pero es necesario protegerse de los ataques basados en que se ejecute código cuando los usuarios abran un documento
Confianza del código (2) • VSTO redefine la política de seguridad por defecto del CLR. • El ensamblado requiere la asignación explícita de confianza total (FullTrust) • Política a nivel de usuario, si está en la máquina local • Política a nivel de máquina, si está en la red
Confianza de los documentos • La confianza de los documentos también debe ser explícita • Esto ayuda a prevenir la reutilización maliciosa del código de confianza • Si el documento está: • En la máquina local – no se necesita una política • Enviado por e-mail – no es de confianza • En la red – se requiere una política de FullTrust a nivel de máquina para el documento. Se debe utilizar MSOSEC.DLL.
Configuración de políticas • Se deben configurar las políticas de seguridad en cada máquina en la que la extensión gestionada de Office será cargada • Mecanismos para asignar los permisos: • Caspol.exe (línea de comandos) • Herramienta de configuración de .NET Framework • Despliegue con Windows Installer, SMS, etc.
Conclusiones • VSTO permite extender el desarrollo .NET a Office 2003 • Los desarrolladores que utilicen VS.NET podrán crear ensamblados code-behind para hojas de Excel y documentos Word • El código está separado del documento, lo que simplifica el despliegue y mantenimiento • Se aprovecha la mayor seguridad que garantiza .NET Framework
Novedades en VS2005 • Diseñador visual integrado en Visual Studio 2005 • Posibilidad de embeber controles de Windows Forms en documentos de Excel y Word • “Controles de vista”, para ser arrastrados sobre documentos Office en tiempo de diseño • Objeto ActionsPane, para crear paneles de tareas personalizados para documentos Office • Enlace a datos ADO.NET • “Islas” de datos, que hacen posible escenarios offline • Clase ServerDocument, que hace posible la programación del lado del servidor
Más información • Danysoft • Información y artículos, www.danysoft.com • Servicios Profesionales, sp@danysoft.com • Software, utilidades, licencias y libros: www.danyshop.com , info@danysoft.com • VSTO • Sitio web sobre VSTO, msdn.microsoft.com/vstudio/office/ • Sección en SmartClient Developer Center, msdn.microsoft.com/smartclient/
¡Gracias por su asistencia! Para cualquier consulta, no dude en contactar con Danysoft: Servicios Profesionales: 902 343484 | sp@danysoft.com Software, utilidades y licencias: 902 123146 | info@danysoft.com www.danysoft.com