Your SlideShare is downloading. ×
0
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Developing for Office 2007
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Developing for Office 2007

1,780

Published on

Webcasts for Microsoft Students Partners Latam

Webcasts for Microsoft Students Partners Latam

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,780
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Slide Goal:Show that Office really is a developer platform that enables the OBAs shown above.Talking Points:People have been developing applications against Microsoft Office for some time but its only with the advent of the 2003 and 2007 Office System that Office emerges as a first-class developer platform. Big 3 goals are UC&C, Business Intelligence, and Enterprise Content Management (single infrastructure) Host of services are available underneath that make the most complicated apps possible.Search has changed the way people work with data The XML file formats mean that developers with XML experience can work directly against the files themselves without necessarily needing Office on the serverConsists of clients, servers, services and toolsEnables developers to bridge information gap between users and data in back-end enterprise systems SQL Server, SAP, ERP, CRM, etc.
  • Controles HostLos controles host amplían varios objetos de la interfaz de usuario en los modelos de objetos de Excel y Word, como los objetos Microsoft.Office.Interop.Excel.Range y Microsoft.Office.Interop.Word.ContentControl.Los controles host siguientes están disponibles con proyectos de Excel:Chart (Control)ListObject (Control)NamedRange (Control)XmlMappedRange (Control)Los controles host siguientes están disponibles con proyectos de Word:Bookmark (Control)Controles de contenidoXMLNode (Control)XMLNodes (Control)Los controles host agregados a los documentos de Office se comportan como los objetos nativos de Office; sin embargo, los controles host poseen funcionalidad adicional que incluye eventos y capacidades de enlace a datos. Por ejemplo, cuando desea capturar los eventos de un objeto Microsoft.Office.Interop.Excel.Range nativo en Excel, en primer lugar debe administrar el evento de cambio de la hoja de cálculo. A continuación debe determinar si el cambio se produjo dentro de los intervalos Microsoft.Office.Interop.Excel.Range. En cambio, el control hostMicrosoft.Office.Tools.Excel.NamedRange tiene un evento Change que se puede administrar directamentePanel de AccionesUn panel de acciones es un panel de tareas Acciones de documentos que se puede personalizar y que está asociado a un documento de Microsoft Office Word o a un libro de Microsoft Office Excel específicos. Está hospedado en el panel de tareas de Office junto con otros paneles de tareas integrados, como Origen XML en Excel o Estilos y formato en Word. Puede utilizar los controles de formularios Windows Forms o los controles de WPF para diseñar la interfaz de usuario del panel de acciones.Puede crear un panel de acciones sólo en una personalización de nivel de documento para Word o Excel. No puede crear un panel de acciones en un complemento de nivel de aplicación. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.
  • Elegir un tipo de proyecto de OfficeVisual Studio Tools para Office proporciona los siguientes tipos de plantillas de proyecto:Personalizaciones de nivel de documento.Complementos de nivel de aplicación.Plantillas de flujo de trabajo de SharePoint.Plantillas de formulario de InfoPath.Para decidir cuál de estos tipos de proyecto es el más adecuado para su solución, considere si desea que el código se ejecute únicamente cuando se abra un documento específico o si desea que el código esté disponible siempre que se ejecute la aplicación de Microsoft Office. Para obtener más información sobre las plantillas de proyecto, vea Información general sobre las plantillas de proyecto en Visual Studio Tools para Office.Los tipos de proyectos que puede crear dependen de qué aplicaciones de Microsoft Office haya instalado en el equipo de desarrollo. Para obtener más información, consulte Características disponibles por aplicación y tipo de proyecto.
  • Personalizaciones de nivel de documentoLas personalizaciones de nivel de documento constan de un ensamblado que está asociado a un documento, libro o plantilla únicos en Microsoft Office Word o Microsoft Office Excel. El ensamblado se carga cuando se abre el documento asociado. Las características de las personalizaciones que cree sólo estarán disponibles cuando se abra el documento asociado. Las personalizaciones no pueden realizar cambios en toda la aplicación, como mostrar un nuevo elemento de menú o la ficha de la cinta de opciones cuando se abre un documento.Visual Studio Tools para Office incluye herramientas que le ayudan a crear personalizaciones en Visual Studio. El documento que personaliza se hospeda como una superficie de diseño en Visual Studio, que permite diseñar el documento arrastrando y colocando controles en él. Muchas otras características de Visual Studio están disponibles en los proyectos de nivel de documento, como los controles de formularios Windows Forms, el enlace de datos y un depurador integrado.Para obtener más información sobre las personalizaciones, vea Introducción a la programación de personalizaciones de nivel de documento para Excel, Introducción a la programación de personalizaciones de nivel de documento para Word y Arquitectura de las personalizaciones de nivel de documento.
  • Complementos de nivel de aplicaciónLos complementos de nivel de aplicación constan de un ensamblado asociado a una aplicación de Microsoft Office. Normalmente, el complemento se ejecuta cuando se inicia la aplicación asociada, aunque los usuarios también pueden cargar complementos después de que se inicie la aplicación. Las características de los complementos que cree están disponibles para la propia aplicación, independientemente de los documentos que se abran.Visual Studio Tools para Office incluye herramientas que le ayudan a crear complementos en Visual Studio. Los proyectos de complemento incluyen una clase generada automáticamente que representa el complemento. Esta clase proporciona propiedades y eventos que puede utilizar para tener acceso al modelo de objetos de la aplicación host y para ejecutar código cuando se cargue y se cierre el complemento. Muchas otras características de Visual Studio están disponibles en los proyectos en el nivel de aplicación, como los formularios Windows Forms y un depurador integrado.Para obtener más información sobre los complementos, vea Introducción a la programación de complementos de nivel de aplicación y Arquitectura de los complementos de nivel de aplicación.
  • Para usar las características de una aplicación de Microsoft Office en un proyecto de Visual Studio Tools para Office, debe utilizar el ensamblado de interoperabilidad primario de esa aplicación. Los ensamblados de interoperabilidad primarios permiten que el código administrado interactúe con el modelo de objetos basado en COM de una aplicación de Office.Al crear un nuevo proyecto de Visual Studio Tools para Office, Visual Studio agrega referencias a los ensamblados de interoperabilidad primarios que resultan necesarios para generar el proyecto. En algunos escenarios, es posible que necesite agregar referencias a otros ensamblados de interoperabilidad primarios (por ejemplo, si desea utilizar una característica de Microsoft Office Word en un proyecto de Microsoft Office Excel).
  • Open XML Format SDK 2.0 CTP:http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&DisplayLang=enObjectModel:http://msdn.microsoft.com/en-us/library/bb521236.aspx
  • Para desarrollar complementos para Microsoft Office Outlook, puede interactuar con los objetos suministrados por el modelo de objetos de Outlook. El modelo de objetos de Outlook proporciona clases que representan elementos de la interfaz de usuario. Por ejemplo, la clase Application representa la aplicación completa, la clase MAPIFolder representa una carpeta que contiene mensajes de correo electrónico u otros elementos y la claseMailItem representa un mensaje de correo electrónico.Este tema proporciona una descripción breve de algunas de las clases principales del modelo de objetos de Outlook. Para obtener la documentación completa del modelo de objetos de Outlook, vea las secciones de MSDN Outlook 2007 DeveloperReference y Welcometothe Microsoft Office Outlook 2003 VBA LanguageReference. Obtener acceso a objetos en un proyecto de OutlookOutlook proporciona muchas clases con las que se puede interactuar. Para utilizar el modelo de objetos de forma eficaz, debe estar familiarizado con las siguientes clases de nivel superior:ApplicationExplorerInspectorMAPIFolderMailItemAppointmentItemTaskItemContactItemExplorer (Clase)La clase Explorer representa una ventana que muestra el contenido de una carpeta que contiene elementos, como por ejemplo, mensajes de correo electrónico, tareas o citas. La clase Explorer incluye métodos y propiedades, que se pueden utilizar para modificar la ventana, y eventos que se generan cuando la ventana cambia.Para obtener un objeto Explorer, realice una de las siguientes operaciones:Utilice la propiedad Explorers de la clase Application para obtener acceso a todos los objetos Explorer en Outlook.Utilice el método ActiveExplorer de la clase Application para obtener el objeto Explorer que tenga el foco actualmente.Utilice el método GetExplorer de la clase MAPIFolder para obtener el objeto Explorer de la carpeta actual.Inspector (Clase)La clase Inspector representa una ventana que muestra un único elemento, como por ejemplo, un mensaje de correo electrónico, una tarea o una cita. La clase Inspector incluye métodos y propiedades, que se pueden utilizar para modificar la ventana, y eventos que se generan cuando la ventana cambia.Para obtener un objeto Inspector, realice una de las siguientes operaciones:Utilice la propiedad Inspectors de la clase Application para obtener acceso a todos los objetos Inspector en Outlook.Utilice el método ActiveInspector de la clase Application para obtener el objeto Inspector que tenga el foco actualmente.Utilice el método GetInspector de un elemento específico, como por ejemplo, un elemento MailItem oAppointmentItem, para recuperar el inspector que tiene asociado.MAPIFolder (Clase)La clase MAPIFolder representa una carpeta que contiene mensajes de correo electrónico, contactos, tareas y otros elementos. Outlook proporciona 16 objetos MAPIFolder predeterminados.Los valores de enumeración OlDefaultFolders definen los objetos MAPIFolder predeterminados. Por ejemplo,T:Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox corresponde a la carpeta Bandeja de entradade Outlook.Para obtener un ejemplo que muestre cómo tener acceso a un objeto MAPIFolder predeterminado y crear un nuevo objeto MAPIFolder, vea Cómo: Crear elementos de carpeta personalizados.MailItem (Clase)La clase MailItem representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo, Bandeja de entrada, Elementos enviados y Bandeja de salida. MailItem expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico.Para obtener un ejemplo que muestre cómo crear un mensaje de correo electrónico, vea Cómo: Crear un elemento de correo electrónico.AppointmentItem (Clase)La clase AppointmentItem representa una reunión, una cita única o bien una reunión o cita periódicas en la carpetaCalendario. La clase AppointmentItem incluye métodos que realizan acciones, como responder o reenviar convocatorias de reunión, y propiedades que especifican los detalles de la reunión, como su ubicación y hora.Para obtener un ejemplo que muestre cómo crear una cita, vea Cómo: Crear una convocatoria de reunión.TaskItem (Clase)La clase TaskItem representa una tarea que se va a realizar en un margen de tiempo especificado. Los objetosTaskItem se encuentran en la carpeta Tareas.Para crear una tarea, utilice el método CreateItem de la clase Application y pase el valor olTaskItem para el parámetro.ContactItem (Clase)La clase ContactItemrepresenta un contacto en la carpeta Contactos. Los objetos ContactItem contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio, direcciones de correo electrónico y números de teléfono.Para obtener un ejemplo que muestre cómo crear un nuevo contacto, vea Cómo: Agregar una entrada a los contactos de Outlook. Para obtener un ejemplo que muestre cómo buscar un contacto existente, vea Cómo: Buscar un contacto específico.
  • Clase ThisAddInCuando se crea un nuevo proyecto de complemento de Outlook, Visual Studio Tools para Office crea automáticamente un archivo de código ThisAddIn.vb o ThisAddIn.cs en el nuevo proyecto. Este archivo de código define una clase ThisAddinque hereda de OutlookAddIn. Puede obtener acceso a los miembros de la clase OutlookAddIn si utiliza las palabras claveMe (en Visual Basic) o this (en C#) en la clase ThisAddIn. El código que está fuera de la clase ThisAddIn puede obtener acceso al objeto ThisAddIn mediante la propiedad estática Globals.ThisAddIn.Nota:Para evitar las advertencias de seguridad cuando utiliza propiedades y métodos que están bloqueados por el guardián del modelo de objetos de Outlook, obtenga los objetos de Outlook del objeto ThisAddIn. Para obtener más información, vea Consideraciones de seguridad específicas para soluciones de Office.
  • Application (Clase)La clase Application representa la aplicación de Outlook y es la clase de nivel superior del modelo de objetos de Outlook. Algunos de los miembros más importantes de esta clase incluyen:El método CreateItem, que se puede utilizar para crear un nuevo elemento, como un mensaje de correo electrónico, una tarea o una cita.La propiedad Explorers, que se puede utilizar para obtener acceso a las ventanas que muestran el contenido de una carpeta en la interfaz de usuario de Outlook.La propiedad Inspectors, que se puede utilizar para obtener acceso a las ventanas que muestran el contenido de un único elemento, como un mensaje de correo electrónico o una convocatoria de reunión.Para obtener una instancia de la clase Application, utilice la propiedad Application de la clase ThisAddin.
  • MailItem (Clase)La clase MailItem representa un mensaje de correo electrónico. Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo, Bandeja de entrada, Elementos enviados y Bandeja de salida. MailItem expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico.Para obtener un ejemplo que muestre cómo crear un mensaje de correo electrónico, vea Cómo: Crear un elemento de correo electrónico.
  • ContactItem (Clase)La clase ContactItemrepresenta un contacto en la carpeta Contactos. Los objetos ContactItem contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio, direcciones de correo electrónico y números de teléfono.Para obtener un ejemplo que muestre cómo crear un nuevo contacto, vea Cómo: Agregar una entrada a los contactos de Outlook. Para obtener un ejemplo que muestre cómo buscar un contacto existente, vea Cómo: Buscar un contacto específico.
  • Visual Studio Tools para Office incluye plantillas de proyecto que puede utilizar para crear personalizaciones de nivel de documento y complementos de nivel de aplicación para Microsoft Office Excel. Puede utilizar estas soluciones para automatizar Excel, ampliar las características de Excel y personalizar la interfaz de usuario de Excel. Cree los siguientes tipos de proyectos de Excel con las plantillas de proyecto del cuadro de diálogo Nuevo proyecto: Complemento para Excel Libro de Excel Plantilla de Excel Estas plantilla incluyen las referencias de ensamblado y los archivos de proyecto requeridos. Visual Studio Tools para Office proporciona una versión de estas plantillas para Microsoft Office 2003 y Microsoft Office System 2007. Para obtener más información sobre las personalizaciones de nivel de documento, vea Desarrollo de personalizaciones de nivel de documento de Excel. Para obtener más información sobre los complementos de nivel de aplicación, vea Introducción a la programación de complementos de nivel de aplicación.
  • El modelo de objetos está estrechamente relacionado con la interfaz de usuario. El objeto Application representa toda la aplicación y cada objeto Workbook contiene una colección de objetos Worksheet. A partir de ahí, la mayor abstracción que representa celdas es el objeto Range, que permite trabajar con celdas individuales o grupos de celdas.Visual Studio Tools para Office extiende muchos de estos objetos nativos a elementos y controles host que se pueden utilizar en las personalizaciones de documentos. Estos controles tienen una funcionalidad adicional que incluye funciones y eventos de enlace de datos. Por ejemplo, un objeto Microsoft.Office.Interop.Excel.Range nativo de Excel se extiende a un control Microsoft.Office.Tools.Excel.NamedRange, que puede enlazarse a datos y expone eventos. Para obtener más información sobre los elementos y controles host, vea Objetos extendidos en los proyectos de nivel de documento. Como los datos de un documento de Excel están muy estructurados, el modelo de objetos es jerárquico y sencillo. Excel proporciona cientos de objetos con los que quizá desee interactuar, pero puede empezar a trabajar con el modelo de objetos centrándose en un subconjunto muy pequeño de los objetos disponibles. Estos objetos incluyen los cuatro siguientes: Aplicación Libro Hoja de cálculo Intervalo La mayor parte del trabajo realizado con Excel se basa en estas cuatro clases y sus miembros.
  • Cuando crea un nuevo proyecto de nivel de aplicación para Excel con Visual Studio Tools para Office, Visual Studio crea automáticamente un archivo de código ThisAddIn.vb o ThisAddIn.cs. Puede tener acceso al objeto Application con Me.Application o this.Application. Al crear un nuevo proyecto en el nivel del documento para Excel utilizando Visual Studio Tools para Office, tiene la opción de crear un nuevo proyecto de libro o de plantilla de Excel. Visual Studio Tools para Office crea automáticamente los archivos de código (ThisWorkbook, Sheet1, Sheet2, Sheet3) en el nuevo proyecto de Excel para los proyectos de libro y de plantilla.Es posibleutilizar la clase global, Globals, para teneracceso a ThisWorkbook, Sheet1, Sheet2 o Sheet3 desdefuera de lasrespectivasclases. Para obtenermásinformación, veaAcceso global a objetos en proyectos de Visual Studio Tools para Office. En el ejemplosiguiente se llama al métodoPrintPreview de Sheet1, independientemente de si el códigoestásituado en la clase Sheet o en la clase Workbook.
  • El objeto Microsoft.Office.Interop.Excel.Range será el objeto más utilizado en las aplicaciones de Excel. Antes de poder manipular ningún área dentro de Excel, hay que expresarla en forma de objeto Range y trabajar con los métodos y propiedades de ese rango de celdas. Un objeto Range representa una celda, una fila, una columna, una selección de celdas que contiene uno o varios bloques de celdas (que podrían ser contiguos o no), o incluso un grupo de celdas de varias hojas. Para una personalización de documento, Visual Studio Tools para Office incluye dos controles host de intervalo: el control Microsoft.Office.Tools.Excel.NamedRange y el control Microsoft.Office.Tools.Excel.XmlMappedRange. Para obtener más información sobre los controles host, vea Información general sobre elementos y controles Host.
  • Un complemento de nivel de aplicación para Microsoft Office Excel está compuesto de un ensamblado que carga Excel. El ensamblado normalmente extiende Excel mediante la personalización de la interfaz de usuario y la automatización de Excel. A diferencia de una personalización de nivel de documento, que está asociada a un libro concreto, la funcionalidad que se implementa en un complemento no está restringida a un único libro. Cuando crea un proyecto de complemento de Excel, Visual Studio Tools para Office genera una clase, denominada ThisAddIn, que es la base de la solución. Esta clase proporciona un punto de partida para escribir el código y también expone el modelo de objetos de Excel al complemento. Para Excel 2007, también puede personalizar la interfaz de usuario de las siguientes formas:Crear un panel de tareas personalizado. (Para obtener más información, vea Información general sobre los paneles de tareas personalizados)Agregar fichas personalizadas que aparecen en la cinta de opciones. (Para obtener más información, vea Información general sobre la cinta de opciones)Agregar grupos personalizados a una ficha integrada que aparece en la cinta de opciones. (Para obtener más información, vea Cómo: Personalizar una ficha integrada)Para Excel 2003, también puede personalizar la interfaz de usuario de las siguientes formas:Agregar barras de herramientas y elementos de barra de herramientas personalizados.(Para obtener más información, vea Cómo: Crear barras de herramientas de Office mediante programación)Agregar menús y elementos de menú. (Para obtener más información, vea Cómo: Crear menús de Office mediante programación)
  • Los paneles de tareas son paneles de interfaz que normalmente están anclados acoplados en un lado de una ventana de una aplicación de Microsoft Office. Casi todas las aplicaciones de Microsoft Office incluyen paneles de tareas integrados. Un ejemplo de panel de tareas es el panel de tareas Ayuda de Word. Visual Studio Tools para Office proporciona dos maneras diferentes de personalizar los paneles de tareas: Puede agregar un panel de acciones a una personalización de nivel de documento. De forma predeterminada, el panel de acciones aparece en la parte derecha de la aplicación, a la derecha del documento. Sin embargo, el panel de acciones también puede aparecer a la izquierda, encima o debajo del documento. Puede agregar un panel de tareas personalizado a un complemento de nivel de aplicación para Microsoft Office System 2007. Los usuarios pueden acoplar paneles de tareas personalizados en diferentes lados de la ventana de la aplicación o pueden arrastrar paneles de tareas personalizados a cualquier lugar de la ventana. Los paneles de acciones y los paneles de tareas personalizados proporcionan funcionalidad al hospedar una gran variedad de controles que ayudan a los usuarios con tareas como la entrada de datos. En comparación con una barra de herramientas, los paneles de acciones y los paneles de acciones personalizados proporcionan un área mucho más grande para incluir texto y controles.
  • Transcript

    • 1. Developing for Office 2007<br />Jonathan Cisneros (Southworks SRL)<br />Ezequiel Jadib (Southworks SRL)<br />
    • 2. Agenda<br />Introducción a Visual Studio Tools for Office (VSTO)<br />Introducción a OpenXML<br />VSTO para Outlook<br />VSTO para Excel<br />Extender Office Ribbon<br />Demos<br />Preguntas y Respuestas <br />
    • 3. Introducción a VSTO<br />
    • 4. Office como Plataforma de Desarrollo<br />
    • 5. Visual Studio Tools for the Microsoft Office System<br />Templates de proyectos para Visual Studio<br />Permite crear y extender Office Business Applications (OBA)<br />Permite aprovechar la UI de Office<br />Colaboración e integración del flujo de negocio<br />
    • 6.
    • 7. Evolución<br />V 3.0<br />Soporte para Microsoft SharePoint<br />Office 2007 formato archivos, características especificas, UI<br />Add-ins de nivel de aplicación para mas aplicaciones<br />Programación del lado del servidor<br />Integración total con Visual Studio 2008<br />2005 SE<br />Add-ins para las aplicaciones Office mas populares <br />Soporte para elementos de la interfaz de usuario de Office 2007 (Custom Taskpane, Ribbon, Outlook formregions)<br />Soporte para correr personalizaciones de documentos de Office 2003 en Office 2007<br />2007<br />2007<br />2003<br />2003<br />2005<br />Personalizar Panel de Acciones del documento<br />Controles de host en la superficie del documento<br />Almacenar datos en memoria caché en el documento<br />Procesamiento de datos del lado del servidor<br />Add-ins de nivel de aplicación para Outlook<br />
    • 8. Evolución (cont.)<br /><ul><li>SP Flujo de Trabajo
    • 9. Nuevos designers,
    • 10. Ext. funcionales
    • 11. Infrastructura
    • 12. Office 11 add-ins,
    • 13. Infrastructura
    • 14. Outlook add-ins
    • 15. VSTA en InfoPath
    • 16. Extensiones funcionales
    • 17. Infrastructura
    • 18. A nivel de documento</li></li></ul><li>Templates de Proyectos<br />Personalizaciones de nivel de documento<br />Add-ins de nivel de aplicación<br />Templates de flujo de trabajo de SharePoint.<br />Templates de formulario de InfoPath.<br />
    • 19. Personalizaciones de nivel de documento<br />Constan de un assembly asociado a un único documento, libro o plantilla de Microsoft Office Word o Microsoft Office Excel:<br />El assembly se carga cuando se abre el documento asociado<br />Las características de las personalizaciones que cree sólo estarán disponibles cuando se abra el documento asociado<br />
    • 20. Add-ins de nivel de aplicacion<br />Constan de un assembly asociado a una aplicación de Microsoft Office<br />Normalmente, el complemento se ejecuta cuando se inicia la aplicación asociada<br />Las características de los complementos que cree están disponibles para la propia aplicación, independientemente de los documentos que se abran.<br />
    • 21. Tipos de proyectos disponibles para las diferentes aplicaciones de Microsoft Office<br />
    • 22. Ensamblados de interoperabilidad primarios de Office (PIA)<br />Para usar las características de una aplicación de Microsoft Office en un proyecto de Visual Studio Tools para Office<br />Permiten que el código administrado interactúe con el modelo de objetos basado en COM de una aplicación de Office.<br />Ensamblados de interoperabilidad primarios de 2007 Microsoft Office System:<br />
    • 23. Introducción a Open XML<br />
    • 24. Introducción a Open XML<br />Formato de archivo para representar hojas de cálculo, gráficos, presentaciones y documentos<br />Contiene archivos basados en XML comprimidos en un paquete ZIP<br />Estándar internacional: Office Open XML (ECMA-376) <br />
    • 25. Introducción a Open XML (cont.)<br />API: Open XML Format SDK 2.0<br /><ul><li>Desarrolladores con experiencia en XML pueden trabajar directamente contra los archivos XML sin necesidad de tener Office en el server.</li></li></ul><li>Demo<br />Open XML<br />
    • 26. Vsto Para Outlook<br />Introducción al modelo de objetos de Microsoft Office Outlook<br />
    • 27. Introducción<br />VSTO proporciona templates de proyectos para crear add-ins de nivel de aplicación para Outlook<br />Ejemplos de add-ins:<br />Automatizar Outlook<br />Extender funcionalidad de Outlook<br />Personalizar la interfaz de usuario de Outlook<br />El desarrollo de add-ins para Outlook involucra la interacción con los objetos proporcionados por el modelo de objetos de Outlook<br />
    • 28. Modelo de objetos de Outlook<br />Proporciona clases que representan elementos de la interfaz de usuario<br />Contenido en dos assemblies:<br />PIA: Microsoft.Office.Interop.Outlook.dll<br />VSTO: Microsoft.Office.Tools.Outlook.dll<br />Clases mas importantes:<br />Application<br />Explorer<br />Inspector<br />MAPIFolder<br />MailItem<br />AppointmentItem<br />TaskItem<br />ContactItem<br />
    • 29. La clase ThisAddIn<br />El archivo de código ThisAddIn.vb o ThisAddIn.cs se crea automáticamente cuando se crea un nuevo proyecto<br />La clase ThisAddIn hereda de la clase OutlookAddIn<br />El código que esta fuera de la clase ThisAddIn puede obtener acceso al objeto ThisAddin mediante la propiedad estática Globals.ThisAddIn<br />
    • 30. La clase Application<br />La clase de nivel superior del modelo de objetos de Outlook<br />Representa la aplicación de Outlook<br />Para obtener una instancia de la clase Application, utilice la propiedad Application de la clase ThisAddin.<br />Miembros mas importantes:<br />Método CreateItem: crear un nuevo elemento, como un mensaje de correo, una tarea o una cita<br />Propiedad Explorers<br />Propiedad Inspectors<br />
    • 31. La clase MailItem<br />Representa un mensaje de correo electrónico.<br />Los objetos MailItem suelen encontrarse en carpetas, como por ejemplo Bandeja de Entrada, Elementos Enviados y Bandeja de Salida.<br />Expone propiedades y métodos que se pueden utilizar para crear y enviar mensajes de correo electrónico.<br />private void CreateMailItem()<br />{<br />Outlook.MailItemmailItem = (Outlook.MailItem)<br />this.Application.CreateItem(Outlook.OlItemType.olMailItem);<br />mailItem.Subject = “Este es el subject&quot;;<br />mailItem.To = &quot;someone@example.com&quot;;<br />mailItem.Body = “Este es el mensaje&quot;;<br />mailItem.Importance = Outlook.OlImportance.olImportanceLow;<br />mailItem.Display(false); //if true  muestraventana de email<br /> //para enviarlo: ((Outlook._MailItem)mailItem).Send();<br />}<br />
    • 32. La clase ContactItem<br />Representa un contacto en la carpeta Contactos.<br />Contienen información de contacto de diversa índole para las personas a las que representan, como por ejemplo, domicilio y direcciones de correo electrónico.<br />private void AddContact()<br />{<br />Outlook.ContactItemnewContact = (Outlook.ContactItem)<br />this.Application.CreateItem(Outlook.OlItemType.olContactItem);<br />newContact.FirstName = &quot;Jo&quot;;<br />newContact.LastName = &quot;Berry&quot;;<br /> newContact.Email1Address = &quot;somebody@example.com&quot;;<br />newContact.CustomerID = &quot;123456&quot;;<br />newContact.PrimaryTelephoneNumber = &quot;(425)555-0111&quot;;<br />newContact.MailingAddressStreet = &quot;123 Main St.&quot;;<br />newContact.MailingAddressCity = &quot;Redmond&quot;;<br />newContact.MailingAddressState = &quot;WA&quot;;<br />newContact.Save();<br />newContact.Display(true);<br />}<br />
    • 33. Demo<br />Outlook<br />
    • 34. VSTO para Excel<br />Introducción al modelo de objetos de Microsoft Office Excel<br />
    • 35. Introducción<br />VSTO provee templatesde proyectos para crear personalizaciones a nivel de documento y add-ins a nivel de applicación para Excel.<br />Tipos de templates:<br />Excel Add-in<br />Excel Template<br />Excel Workbook<br />
    • 36. Modelo de Objectos para Excel<br />Clases COM más importantes:<br />Microsoft.Office.Interop.Excel.Application<br />Microsoft.Office.Interop.Excel.Workbook<br />Microsoft.Office.Interop.Excel.Worksheet<br />Microsoft.Office.Interop.Excel.Range<br />Microsoft.Office.Tools.Excel.NamedRange<br />El modelo de objectos sigue la interfaz de usuario:<br />Application: representa la aplicación entera (Excel)<br />Workbook: contiene una colección de objetos Worksheet (hojas). <br />Range: representa las celdas y permite trabajar con celdas individuales o un grupo de celdas.<br />
    • 37. Acceso a Objectos en un Proyecto Excel<br />Proyectos a nivel de aplicación:<br />Visual Studio crea un archivo de código ThisAddIn.cs o ThisAddIn.vb<br />Objeto Application: This.Application o Me.Application<br />Proyectos a nivel de documento:<br />Creando un nuevo proyecto Workbook o Template. <br />Archivos generados:<br />Para acceder a las clases desde fuera de los archivos generados usar la clase Globals.<br />
    • 38. Objeto Range<br />El más usado en aplicaciones Excel<br />Cualquier region dentro de Excel es expresada como un objeto Range<br />Un objeto Range puede representar celdas, filas, columnas, una selección de celdas que contiene uno o más bloques de celdas, o incluso un grupo de celdas en múltiples hojas.<br />Para una personalización a nivel de documento, existen dos controles que contienen range:<br />NamedRange<br />XmlMappedRange<br />
    • 39. Add-ins a Nivel de Aplicación<br />Un add-in a nivel de aplicación consiste de un assembly cargado por Excel.<br />Usualmente extiende Excel automatizándolo o personalización su interfaz de usuario.<br />Personalización de la UI:<br />Crear un taskpane personalizado.<br />Añadir tabs que aparecerán en la Ribbon.<br />Añadir grupos personalizados a un tab existente en la Ribbon.<br />
    • 40. Task Panes y Actions Panes<br />Actions Pane<br />Más robusto y fácil de programar que la alternativa de la tecnologia de “SmartDocument” de Office.<br />Custom Task Pane<br />La misma idea general que los Actions Pane, sólo en nivel de add-in de aplicación, no para un documento individual.<br />VSTO simplifica y optimiza el proceso de diseño de la UI de un taskpane con los visual designers.<br />
    • 41. Personalización de los Paneles<br />
    • 42. Demo<br />Excel<br />
    • 43. Extendiendo LA Office Ribbon<br />
    • 44. Office Ribbon<br />Nuevo Look & Feel para la Interfaz de Usuario<br />Introduce un nuevo modelo de extensibilidad llamado RibbonX<br />Permite:<br />Personalizar tabs<br />Agregar a tabs existentes<br />Remover tabs, grupos y controles<br />Agregar menus<br />Group<br />Tab<br />Control<br />Ribbon<br />
    • 45. Extendiendo la Office Ribbon<br />Soporte en Visual Studio<br />VSTO Office 2007:<br />Diseñador Visual<br />Opción para “Exportar Ribbon a XML”<br />Property Grid<br />Ribbon Control <br />Toolbox<br />Design Surface<br />
    • 46. Extendiendo la Office Ribbon<br />La estructura de la Ribbon XML requiere una jerarquia especifica<br />Ejemplo de Ribbon XML<br />&lt;customUI xmlns=&quot;http://schemas.microsoft.com/office/2006/01/customui&quot; onLoad=&quot;OnLoad&quot;&gt;<br /> &lt;ribbon&gt;<br /> &lt;tabs&gt;<br /> &lt;tab idMso=&quot;TabAddIns&quot;&gt;<br /> &lt;group id=&quot;MyGroup&quot;<br /> label=&quot;My Group&quot;&gt;<br /> &lt;toggleButton id=&quot;toggleButton1&quot; <br /> size=&quot;large&quot;<br /> label=&quot;My Button&quot;<br /> screentip=&quot;My Button Screentip&quot;<br /> onAction=&quot;OnToggleButton1&quot; <br /> imageMso=&quot;AccessFormModalDialog&quot; /&gt;<br /> &lt;/group&gt;<br /> &lt;/tab&gt;<br /> &lt;/tabs&gt;<br /> &lt;/ribbon&gt;<br />&lt;/customUI&gt;<br />
    • 47. Demo<br />Ribbon<br />
    • 48. Conclusiones<br />
    • 49. Conclusiones<br />¿Porque VSTO?<br />Conecta Office con .NET<br />Proporciona una solida infrastructura<br />Proporciona una experiencia de desarrollo sofisticada<br />Office es una verdadera plataforma de desarrollo<br />
    • 50. ?<br />Jonathan Cisneros<br />jonathan.cisneros@southworks.net<br />http://blogs.southworks.net/jcisneros<br />Ezequiel Jadib<br />ezequiel.jadib@southworks.net<br />http://blogs.southworks.net/ejadib<br />
    • 51. Downloads<br />Microsoft Visual Studio Tools for the Microsoft Office System (version 3.0 Runtime) Service Pack 1 (x86)http://www.microsoft.com/Downloads/details.aspx?familyid=D8EB4921-891A-4B5E-973F-0B96E6CCF376&displaylang=en<br />2007 Microsoft Office System Update: Redistributable Primary Interop Assemblieshttp://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&displaylang=en<br />Open XML Format SDK 2.0http://www.microsoft.com/downloads/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en<br />
    • 52. Recursos<br />VSTO Developer Center <br />http://msdn.microsoft.com/en-us/vsto/default.aspx<br />VSTO Documentación en MSDN<br />http://msdn.microsoft.com/es-es/library/d2tx7z6d.aspx<br />VSTO “How do I Video”<br />http://msdn.microsoft.com/en-us/office/bb496949.aspx<br />VSTO Team Blog<br />http://blogs.msdn.com/vsto<br />
    • 53. Referencias<br />Información general sobre el desarrollo de soluciones de Officehttp://msdn.microsoft.com/es-ar/library/hy7c6z9k.aspx<br />Introducción a la programación de personalizaciones de nivel de documento para Excelhttp://msdn.microsoft.com/es-ar/library/f27xe9xb.aspx<br />Introducción a la programación de personalizaciones de nivel de documento para Wordhttp://msdn.microsoft.com/es-ar/library/zb7cf7a4.aspx<br />Arquitectura de las personalizaciones de nivel de documentohttp://msdn.microsoft.com/es-ar/library/zcfbd2sk.aspx<br />Introducción a la programación de complementos de nivel de aplicaciónhttp://msdn.microsoft.com/es-ar/library/ms268878.aspx<br />Arquitectura de los complementos de nivel de aplicaciónhttp://msdn.microsoft.com/es-ar/library/bb386298.aspx<br />
    • 54. Referencias (cont.)<br />Ensamblados de interoperabilidad primarios de Officehttp://msdn.microsoft.com/es-ar/library/15s06t57.aspx<br />Características disponibles por aplicación y tipo de proyectohttp://msdn.microsoft.com/es-ar/library/aa942839.aspx<br />Información general sobre el modelo de objetos de Outlookhttp://msdn.microsoft.com/es-ar/library/ms268893.aspx<br />Información general sobre el modelo de objetos de Excelhttp://msdn.microsoft.com/es-ar/library/wss56bz7.aspx<br />Welcome to the Open XML Format SDK 2.0http://msdn.microsoft.com/en-us/library/bb448854(office.14).aspx<br />
    • 55. Gracias<br />Jonathan Cisneros<br />jonathan.cisneros@southworks.net<br />http://blogs.southworks.net/jcisneros<br />Ezequiel Jadib<br />ezequiel.jadib@southworks.net<br />http://blogs.southworks.net/ejadib<br />

    ×