El documento resume las novedades en el desarrollo para Office 2010, incluyendo la extensión del uso de la interfaz de usuario Ribbon, mejoras en el despliegue a través de ClickOnce como la eliminación de la necesidad de instalar Primary Interop Assemblies, y la introducción de nuevos puntos de extensión de la interfaz como Backstage View.
KELA Presentacion Costa Rica 2024 - evento Protégeles
Desarrollo en Office 2010
1.
2. Desarrollo en Office 2010 Diego Ferreyra Manager of Core Technologies diegof@huddle.com.ar HuddleGroup Mauro Castagnasso Manager of Knowledge mauro@corvalius.com Corvalius
3. Repaso por Office 2007 para desarrolladores Introducción de Fluent UI (Ribbon) ClickOnce(VSTO 3.0 SP1) APIs mejoradas
23. Conclusiones Se mejoróuna de lastareasmáscostosas: el deployment. Se agregaronnuevospuntos de extensión de la UI Familiaridad con lasaplicaciones Office Reduce tiempo de capacitación Incrementaproductividad Estandariza la herramienta con la cual el usuariodebetrabajar Hacemáseficientes los procesos de negocio Integrarherramientasdiarias del usuario con sistemassatélites a partir de unamisma UI
24. ¡A programar! Descargar Office 2010 http://tinyurl.com/run09-Office-beta Descargar documentación http://tinyurl.com/run09-Office-docs MSDN Office Development Center http://tinyurl.com/run09-Office-dev Descargar esta presentación http://www.corvalius.com/bloghttp://huddle.com.ar/tech-news.html
Hola, soy Mauro Castagnasso y trabajo en Corvalius.Hola, soy Diego Ferreyra y soy manager de Core Technologies.Como sabrán hoy vamos a hablar de desarrollo en la plataforma Office 2010.Vamos a estar repasando que nos ofrece actualmente Office, en su versión 2007, conociendo las novedades de Office 2010 y finalmente tenemos una demo.
Paracomenzarharemos un repasopararefrescar la memoria con respecto a lo quenostrajo Office 2007. Una de lascosasmásinteresantesfue el cambio de interfaz de usuariopormedio de la inclusión de Fluent UI. Estodejabaatrás el viejomodelo de menúes con unainterfazsimplificada, ofreciendolasopcionesadecuadassegún el contexto, desenterrandolasopciones de lasnumerosas toolbars y el menúclásico, proveeuna mini toolbar quepodíasercustomizada, mejoresmenúescontextuales y esmáslindo Peroesto no estabaaúnadoptado en todos los productos. A partir de Visual Studio 2008 SP1 se incluyó un diseñador visual para los programadores.Con respecto al deployment de lassoluciones, antes de Visual Studio 2008 la opción de instalación era Windows Installer. A partir de Visual Studio 2008 se incluyóClickOnce. ClickOnceesunatecnología, quebrevespalabras, permiteinstalaraplicaciones con un par de clicks (no solo uno ;) y con actualizacionesautómaticas. Con el SP1 se mejoróestáopciónhaciendotransparentetodo el plumbing en la registry paraquefuncionansen los addins al instalarse, peroaúnteníaalgunosinconvenientes a la hora de hacer el deploy en muchosusuarios de muchasaplicaciones.Con respecto al modelo de objetosque se podíaconsumir, hubouna considerable mejora con respecto al modelo anterior. Porejemplo, en Outlook 2007 se incluyó el objeto Table paramanejar la búsqueda de items, con un rendimiento de otroordenrespecto a los anterioresobjetos.También se incluyó un objetoPropertyAccesorparaobtenerinformación de MAPI de los items que antes requeríasoluciones de código n o manejado y solo paraexpertos.
Para desarrollarlassolucionespara Office, los desarrolladores .NET contamos Visual Studio Tools for Office. Básicamenteestácompuesto de unaextensiónpara Visual Studio quenosproveé de templates paralasdistintasaplicaciones, y de un Runtime quecorre en lasmáquinasclientes. Este runtime se encarga de levantar los addinsquehagamos y hostearlos.Como verán, hay bastantes templates de proyectos. Siendomásprecisos, hay templates paratodaslasaplicaciones, y en algunoscasos, tienenmás de uno.Porejemplo, podemoscrear un addinpara Excel a nivel de aplicación. Estos son Addinsque se integran a la herramienta en particular y se ejecutandurantetodo el tiempo de vida de la misma. Ejemplos de esto son addinsqueestán en la toolbar y quefiguranaunque no haya un documentoabierto. Perotambiénpodemoscrear un addinpara Excel a niveldocumento. Los proyectos de nivel de documento, son aplicables a documentos o templates, por lo quesuciclo de vidaestálimitado al del documentoque lo contiene. Este tipo de proyectos son aplicables a Excel y Word.
Yafocalizándonos en Office 2010, los 3 grandescampos en los que se hanhechomejoras son los que se muestran. Iremosprofundizando en cadauno de ellos, peroporejemploalgunasmejoras son:Extensión de UI. Hay nuevoscomponentes en la interfaz de usuario de Office, y obviamentepuedenserusados con Visual Studio 2010.Hablando del deployment, Microsoft nosescuchó a los desarrolladores de addins de Office e incluyótodo lo quenecesitamosparamejorar la experiencia del usuario en la instalación de lassoluciones. Yavamos a ahondar un pocomás en estoqueesmuyinteresante.Con respecto a las APIs, mucho se vemejorado a partir de nuevascaracterísticas de .NET 4.0, comoser named parameters y parámetrosopcionales. Estoviene de maravillasparaesosllamados en que se pasabaunalista interminable de missings. También se extendióincluyendonuevasclasesparaaprovecharlasnovedadescomo Conversations en Outlook 2010.
Dentro de lasextensiones a la UI quemencionábamos, esimportantemencionarqueahora se ha extendido el Ribbon a másaplicaciones de la suite. Estounifica la interfaz con los usuarios y teniendo en cuentasuextensibilidad, nosabrenuevaspuertasparagenerarnuestrasaplicaciones. Ahoratambiénestádisponible en InfoPath, OneNote, Publisher, Visio y Project.En Outlook se encuentraparticularmenteextendido, y por la experiencia de venirlousandodesdehacevariassemanas, me pareceque son muypositivos los cambiosincluídos. Ahoraestáincluido en la ventana principal, que era unadeudamuyimportanterespecto a la versión anterior.Esinteresanteremarcarquetiene un nuevodiseño, ya no es el botónredondoarribasinoque se ha incluídounasecciónllamada Backstage quemásadelantecomentaremos. Escompletamente configurable, pudiendoinclusocrearmispropios tabs y agregar en ellosmispropiosbotones. Tantoporinterfaz de usuariocomoporcódigo!! Para quesirveesto? Porejemplopodemosdefinir un tab para la compañiaquecontengatodaslasherramientaspropias, agrupadas en un único tab para mayor simplicidad de uso.
Pasando al Ribbon, porejemploparacrear el Ribbon quevemos en pantallapodemoslograr con el diseñador visualO directamente con código XML.Tenemos un nodo root llamado customUI, parte del formato Open XML. CustomUI puede tener 4 nodos hijos: Ribbon, Commands, Backstage y ContextMenus. Estos 2 ultimos son nuevos de Office 2010.Y dentro de ribbon podemos ver tabs, tab, y varios nodos que son bastantes elocuentes de lo que hacen.No se preocupen si este es su primer contacto con el formato de definición de UI de Office, más adelante veremos código en vivo para entender como funciona.
Otro de los nuevosagregados a la UI es la vista de Backstage. Aquí se agrupanmúltiplesoperaciones no relacionadasdirectamente con la edición del documentosinoquemásbien se relacionan con la gestión o administración del mismo. Aquí se configura la herramienta, se imprime el documento, publica, versiona, aspectos de colaboración. Estoapunta a lograruna mayor usabilidad de la herreamienta, agrupandolasopciones de funcionalidadrelacionada. Además, esta vista tiene 2 tipos de comandos, o acciones. Los llamados FAST commands, queexisten en la panel izquierdo, independientes de los tabs, comoporejemplo el comandoOpciones, y los DEFINITIVE commands, que al invocarloscierran la vista backstage paravolver al documento o pantalla principal.
Esta vista de Backstageespersonalizableporcódigo, hasta Visual Studio 2010 Beta 2. Para personalizarla, bastanuevamentegenerar el XML correspondienteparadefinir los controles a incluir y el comportamientoindicado.Por ejemplo, para crear la vista que vemos de Compañía, necesitamos el siguiente XML.El nuevo nodo en este caso es backstage, y dentro de él se definen las columnas y los controles dentro de ellas. Podemos poner botones, combos, checkbox, imágenes, etc.
Otramejorainteresante y que generamuchasnuevasposiblidadeses la extensión de los menúescontextuales. Ahoraesfactibledefinirpormedio de XML nuevosbotones del menúparapoderdefiniracciones en consecuencia. Les cuentoque antes paralograrestohabiaqueengancharse en eventos del modelo de objetos y no quedabamuy bonito. Ademásestonospermitecontar con todo el código de UI unificado, simplificando el entendimiento y mantenimiento.Si quisieramosdefiniresebotónquevemos de “marcarcomovacaciones” en la vista calendario de Outlook, definimos el siguiente XML.Noten el nodocontextMenus y el nodocontextMenu. Podemosreutilizartambién los controles de Ribbon sin tenerquecrearprogramaticamentejerarquias de menus y event handlers, algoque en particular consideroalgo grandioso.
Yaviendotemasreferidos al deployment de soluciones, una de lasgrandesmejorasque se incluyenesque Office incluye en suinstalación el runtime de Visual Studio tools for office y el framework .NET. Con esto se simplificaenormemente el deployment. No hay queincluir .NET, no hay queincluir el runtime de VSTO. Estohacequelasinstalacionesseanmáslivianas y con menospasos… algoque en el proximo slide veremoscomoimpacta.Para que se den una idea, actualmentesiqueremoshacer un add-in quefuncionetanto en XP y Vista y sabiendoqueusamos los ultimosadelantos del framework, con configures default, tenemosqueincluir .NET 3.5 SP1, el runtime de VSTO y algollamado Primary Interop Assemblies. Todoestohaceque la instalación de un addin de 500 KB, pase a ser de más de 30 megas. Esalgoquehaceque sea dificilvirilizarsolucionesque no seanparaempresas, en entornosmanejados.
Los PIAs son los assemblies quedefinen los tipos de los objetos COM queexpone Office. Anteriormente se debíandistribuirjunto con los assemblies de la solucióncadauno de los assemblies con la definición de estostipos. Como yadijimos, esto no resultaconvenientepara los usuariosque no les importa lo tecnico.Ahora, los tiposqueutiliza la solucióncreada son embebidos en el assembly generado al compilar la solución. Por lo tanto, no esnecesariodistribuir los PIA, disminuyendoporconsiguiente el tamaño del instalador. Si estoestá en internet, entoncesesmenortiempo de descarga. Además, es un pasomenos en la instalación de un addin (que se espera sea simple). Tambiénes un contrato de licenciamenosqueaceptar.Esto genera usuarios, programadores y administradoresmásfelices
Unaherramientaque ha tenidograndesmejorasesClickOnce. Ahoraes mucho máspersonalizable a la hora de definiratributospara la instalación, lograndoque sea máscomprensiblepara el usuario final el set de herramientasque se le instalan, y dando un aspectomásprofesional.En estecaso, se incluyeneditores en Visual Studio 2010 que antes no estaban, teniendoquemanipular los archivos de instalaciónmanualmente, algoque no esmuysimpático.Porejemplo, siqueremosmodificar la informaciónqueaparecenProgramas, podemoshacerlo con la siguientepantalla.
Y siqueremoscambiar la informaciónqueaparece en la vista de add-ins de la herramienta, usamosotra vista de la mismapantalla.Otracosainteresantees la de poderdefinirsi el addin se cargarádurante el startup de la herramienta o al momento de serinvocadoporalgunaacción. Estocontribuye a que la experiencia del usuariovaríe, evitandoquetengaquesentirque la aplicación “se cuelga” cuandoapreta un botónsiestáconfiguradoparacargarsebajodemanda.
Pormedio de lasacciones post-implementación, se puedenlograrmuchascosasinteresantes. Porejemplopuedecopiararchivos de templates unavezinstalado el addin, se puedengenerarnotificacionesparainformarcómo ha resultado la instalación o inclusoejecutarunaencuesta de satisfaccióninternapara saber cómo se ha sentido el usuarioduranteesteproceso. No se, muchascosaspuedenlograrse con estacaracterística.Para implementarlas, esnecesariogeneraruna class library quecontenga la clasequeimplementa la accion. EstaclaseimplementaIAddInPostDeploymentAction y en su método Execute define lo que hará la acción. Se pueden definir múltiples acciones, generando un abanico de posibilidades aún mayor.Por ejemplo, si antes queriamos hacer alguna tarea especial con clickonce, la opción era o hacerla en el startup de la aplicación, o crear un paquete de instalación con Windows Installer y luego incluirlo en los prerequisitos de ClickOnce. Lo malo de la primera es que si por ejemplo se necesitaba modificar el registro para modificar una opción de la aplicación, en la primera ejecución no funcionaba.Lo malo de la segunda es que nuevamente, es un paso más que ve en la instalación el usuario, además de que aparece como otra entrada en Programas.
Otrainteresantemejoraquemuchosporahiesperaban, es la posibilidad de definirmúltiplessoluciones en un únicopaquete de deployment de ClickOnce. Estonospermiteincluirporejemplo un addin de outlook y uno de word en un únicoinstalador. De estamanera, en la máquina del usuarioquedará un único item instaladoconteniendo multiples herramientas. Estoresultainteresanteparacuando en unacompañia se cuenta con variasherramientas de esteestilo. Con esto se puedegenerar un ribonpara la compañia e incluirallí los diversosaddins. Luego el instaladorcontendrá todos los addinsdesarrolladoslograndounaimagenuniforme de solución.Nuevamente, estoestáhechoparasimplificarle la vida a los usuarios, programadores y administradores.
Con respecto a las APIs se aprovechan y mucho algunasnuevascaracterísticas del framework 4. Porejemplo los parámetrosopcionales. Generalmente, cuando se debíaninvocarmétodos con muchosparámetrosopcionales, era necesariollenar de unalista de “missings” la invocación al método. Con estanuevacaracterística, se evitatenerqueescribir todos estosparámetros y tenerquedefiniruna variable para la referencia del missing, y además, está el casteoimplicito.En el casoquevemos hay pocosargumentos missing, peroquepasasiqueremosabrir un documento?Son 16 parametros! Esacacuandoempezamos a ver los beneficios de estasincorporaciones.
La demo estácentrada en mostrar la creación de un addin de Outlook y uno de word. El primeroparaagregar un boton en el Explorer Ribbon y en el AppointmentRibbonparagenerar un appointment de tipoVacacionesparaenviarlo a recursoshumanos.También se le incluye la impresión del documento de word con la informació de lasvacacionesparafirmar.El addin de Word tiene un botónparagenerar el formulario a partir de lo mismo.
Los próximos pasos son bajar Office 2010 Beta e instalarla, aunque no vayan a programar, es muy recomendable y van a ver que no la van a quere desinstalarTambién pueden descargar la documentación de MSDN, o verla online.Si les interesó esta presentación, la pueden bajar del blog de Corvalius o de la página de noticias de Huddle.Muchas gracias!