Windows Live Writer Plug-in

logoEjemplo: jugar con herramientas Live.

El año pasado muchos nos han presentados nuevas herramientas en línea para la gestión y la publicación de contenidos. Seguramente el primero en termines de tiempo y "asombro" general es http://docs.google.com. Como muchas veces pasa con las cosas buenas, se copian y, de paso, se intenta mejorar. (Puede ser el caso del paquete gratuito Windows Live).

Windows Live, posiblemente es, o un candidato sucesor y evolución del paquete MS Office, o una nueva herramienta con enfoque todavía poco usual por parte de Microsoft al Freeware; lo único cierto es que Microsoft ha publicata este nuevo grupo de aplicaciones gratuitas que merecen la pena ser utilizados. Esta ultima afirmación no es por simple "amor" por mi parte a Microsoft, si no, por el simple hecho que junto a las salidas de estas nuevas aplicaciones, han llegado API y buena documentación de cada producto.

Actualmente estoy escribiendo este post con Windows Live Writer, ya han notado mi gran "variedad" de errores de ortografía y sintaxis, Live Writer me ayuda muchísimo con la tarea de corrección y, a decir la verdad, la paginación de contenidos resulta simple, rápida y todo con una innecesaria pero realmente agradable gráfica.

¿Que hace el PlugIn de este ejemplo?

Instant FTPBien, me gusta la idea de compartir el código, muchas verses me ha pasado escribir un ejemplo, ir a comprimir el código en ZIP y después enviarlo a través de FTP o Sitio de Red. Más bien que una necesidad este PlugIn es una "utilidad para perezosos".

El PlugIn añade un un Elemento Insertar llamado InstantUFtp que permite seleccionar un archivo desde disco y directamente enviarlo a través de protocolo FTP a un servidor previamente configurado. Es también posible configurar más de un servidor, de modo que será posible elegir cual destino utilizar para ese archivo que necesitamos compartir y publicar.

Una vez que el archivo ha sido enviado, en el texto aparece el vinculo directamente relacionado con el servidor remoto y el archivo.

Si os gusta la idea...

ESTE ARCHIVO HA SIDO ENVIADO POR INSTANTUFTP DESDE WRITER

 

Instant FTP - Server Config

Instant FTP - UI

¿Como se escribe un PlugIn para Windows Live Writer?

Una vez instalado el programa, en su carpeta (C:\Archivos de programa\Windows Live\Writer) es disponible el assebly WindowsLive.Writer.Api.dll. Localizado este archivo, los pasos a seguir ya son historia:

  1. Creamos un nuevo proyecto Librería .NET 2.0 (por ahora no superior);
  2. Añadimos al proyecto las librerías WindowsLive.Writer.Api.dll y System.Window.Forms;
  3. Creamos una nueva class (o sustituimos Class1) con el código que sigue

// Mínimo indispensable

using System;
using System.Collections.Generic;
using System.Text;
using WindowsLive.Writer.Api;
using System.Windows.Forms;
using WindowsLiveWriterPlugIns;

using System.IO;
using System.Data;

namespace InstantUFtp
{
    [WriterPlugin("d9282308-e294-456d-887b-bc7cb379b85d", "InstantUFtp",
        Description = "InstantUFtp permite subir archivos desde Windows Live Writer.",
        HasEditableOptions = false,
        Name = "InstantUFtp",
        PublisherUrl = "http://www.recursosentiempodepaz.com",
        ImagePath = "icon.gif")]
    [InsertableContentSource("InstantUFtp")]
    public class InstantUFtp : ContentSource
    {
        public InstantUFtp()
        {
        }

        public override DialogResult CreateContent(IWin32Window dialogOwner, ref string newContent)
        {
        }
    }
}

La class InstantUFtp hereda la class ContentSource (declarada en el espacio de nombres WindowsLive.Writer.Api). ContentSource expone 3 métodos virtuales que podemos sobrescribir y utilizar a nuestro gusto. De hecho lo hacemos utilizando CreateContent.

ContentSource, que a su vez hereda el public class WriterPlugin, nos permite simplemente publicar nuestra librería bajo el directorio PlugIn de Windows Live Writer y el proceso e integración es automático.

Para hacer esto: o simplemente copiamos el archivo DLL después de cada compilación, o utilizamos el POST BUILD para automatizar el proceso:

post-build

En POST-BUILD Events Command Args podéis añadir este comando para ejecutar la copia del ensamblado después de que ha sido creado:

XCOPY /D /Y /R "$(TargetPath)" "C:\Archivos de programa\Windows Live Writer\Plugins\"

El espacio de nombres WindowsLive.Writer.Api, expone una class que hereda Attribute y permite especificar informaciones básicas que serán interpretadas por W.Writer durante la ejecución del plugin.

Muy bien! El código ref string newContent, del método CreateContent, permite, durante el utilizo de Windows Writer, modificar el texto seleccionado e interactuar con este desde el código. Un simple ejemplo de esto es el siguiente:

< El usuario escribe su nombre, selecciona el texto correspondiente a su nombre y presiona "Insertar hipervinculo"; Se abre la ventana de gestión vínculos desde la cual  será posible modificar el URL y aceptar los cambios.>

Bien, lo que ocurre después de presionar el botón "Insertar hipervinculo" es que Windows Writer pasa ese texto (completo incluidos tags HTML) a la función CreateContent como variable REF. Desde ese momento el texto ES NUESTRO...

OK, desde aquí, http://www.liveside.net/, empieza la documentación de Windows Live SKD

Un buen blog donde encontrar "PlugIns caseros" es este http://windowswriterplugins.wordpress.com/

y... aquí el código fuente del proyecto InstantUFtp

No Comments