Mr. Spock a Gustavo: “SharePoint? Humanos deberían ser más racionales…”

Pensando en Mr. Spock y su “Fascinante es una palabra que uso para lo inesperado”, hoy, entre reunión y reunión, me he puesto a jugar con “Vulcan”. Nunca ha oído hablar de Mr. Spock? Existe algún geek que no haya visto “Star Trek”? No importa, por si le interesa, Vulcan no solo es el lugar de nacimiento de Mr. Spock, sino también un nuevo lenguaje de programación…

Los viejitos entre nosotros se acordaran de “Clipper”, un lenguaje creado para programar sobre dBASE III, por allá en los años 80, que si no estoy mal, fue el primer lenguaje compilado (en lugar de interpretado), para trabajar con Bases de Datos. Luego, Computer Associates agarró la idea, le puso programación por objetos, le cambio el nombre a “Visual Objects” y lo saco al mercado. Desafortunadamente Visual Objects tenía un montón de problemas, y salió casi al mismo tiempo que la primera versión de Delphi y de Visual Basic 3.0, por lo que nunca tuvo mucho éxito, aunque todavía se sigue usando por aquí y por allá.

Vulcan es la última encarnación de Clipper-Visual Objects, y esta vez ha salido como uno más de los lenguajes DotNet (CLS [Common Language Specification] compliant), y se puede instalar y usar en Visual Studio, de la misma forma que CSharp o Visual Basic. De nuevo, por eso de que la historia se repite, la nueva versión de Vulcan ha salido casi al mismo tiempo que Visual Studio 2008… parece que no aprenden…

En el sitio de Vulcan.Net (http://www.govulcan.net/portal/) pueden encontrar toda la información necesaria, y bajar una copia para instalar en Visual Studio (2005, no instala bien en 2008 todavía).

Pero bueno, cual es la relación con SharePoint?

El desafío es sacar los conocimientos adquiridos hace años cuando programaba con Visual Objects y tratar de programar algo para SharePoint. Pues bien, resulta que no es tan difícil después de todo.

Después de instalar Vulcan, en Visual Studio se puede hacer un nuevo proyecto de la forma normal:

Primero hay que crear referencias a “System.Web” y “Microsoft.SharePoint”, y las directivas necesarias:

 

using System
using System.ComponentModel
using System.Security
using System.Security.Permissions
using System.Web.UI
using System.Web.UI.WebControls
using System.Xml.Serialization
using Microsoft.SharePoint
using Microsoft.SharePoint.Utilities
using Microsoft.SharePoint.WebPartPages

 

Vulcan no dispone de Intellisence, asi que hay que programar como los hombres (y mujeres, perdón) de verdad… Luego de las referencias necesitamos arreglar la seguridad si queremos hacer una WebPart:

 

[assembly: AllowPartiallyTrustedCallers]

 

Y luego la clase para hacer una WebPart:

 

CLASS MrSpockWebPart inherit WebPart

….. código

END CLASS

 

el constructor y, algo conocido para todos, el override de “CreateChildControls” van en el medio:

 

CONSTRUCTOR() CLASS MrSpockWebPart
    SUPER()
  RETURN

PROTECTED METHOD CreateChildControls() AS VOID CLASS MrSpockWebPart
    local myControl as LiteralControl
    myControl := LiteralControl{«Fascinating is a word I use for the unexpected. In this case, I should think ‘interesting’ would suffice»}
    self:Controls:Add(myControl)
  RETURN

 

Crear una llave para el nombre seguro (a la manera antigua, con la herramienta “sn”), compilar, instalar en SharePoint, y:

  

Funciona…

El mensaje es claro: Aunque siempre usemos uno de los lenguajes oficiales de Visual Studio (Csharp o Visual Basic) para programar en SharePoint, nada nos impide utilizar cualquier otro lenguaje, desde que produzca código compatible con el CLS. Los problemas no son de tipo de lenguaje, sino de que tan bien implementado es: la falta de Intellicense de Vulcan, por ejemplo, disminuye la productividad de una forma impresionante. A ver quién es el siguiente que se atreve a programar WebParts con el bien conocido Mono (http://www.mono-project.com/) o con ILDJIT (http://ildjit.sourceforge.net/) o con Portable.Net (http://dotgnu.info/)…

Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *