lunes, febrero 01, 2010

Exportar a Excel desde Silverlight

Como ya comentaba en el post anterior, existe un formato XML estándar para la generación de documentos de Office y que para trabajar con este estándar se dispone de un API que facilita la tarea, en concreto se denomina Open XML v2.0 SDK.

Desafortunadamente, a día de hoy, no hay una versión compilada para funcionar con el framework de Silverlight. Sin embargo, imagino que será cuestión de tiempo que se desarrolle una versión para Silverlight.

Por este motivo, si se quiere exportar a Excel desde Silverlight, la mejor opción podría ser implementar la lógica de generación a través de un servicio web, el cual sí podría estar basado en el Open XML SDK. Otra opción sería implementar la generación al formato Open XML, con las implicaciones de mantenimiento que ello supondría.

La principal ventaja de usar un servicio web, consiste que si en un futuro se dispusiera de un SDK para Silverlight, lo más normal es que el interfaz sería el mismo o muy parecido, permitiendo una fácil migración del código implementado en el servicio web a un servicio local en nuestro componente Silverlight.

Open XML


Consiste en un estándar para la generación de documentos XML en el formato que entienden las herramientas de Office Excel, Word y Power Point. Este formato ha sido estandarizado por Ecma International (www.ecma-international.org).

El Open XML v2.0 proporciona un API para los desarrolladores de Microsoft .NET, el cual ayuda en la manipulación de documentos bajo este formato.

Como punto de soporte principal, para los desarrolladores en este tema, existe un sitio web bastante completo, en el cual se pueden encontrar ejemplos, últimas noticias, recursos, etc.

miércoles, julio 02, 2008

IKVM

IKVM es un framework muy potente para poder usar librerías Java en .Net. Se trata de una máquina virtual que corre sobre .Net y que interpreta binarios Java.

Además, incorpora un compilador mediante el cual es posible la generación de una dll desde uno o varios jar's y poder así usar las clases Java haciendo un using directametne en el código .Net.

IKVM usa GNU Classpath , se trata de una implementación GNU de la máquina virtual de Java.

Existen varios ejemplos de proyectos que están basados en IKVM, uno de ellos es saxonica. Este framework permite el proceso de XSLT 1.0 y 2.0 y XQUERY.

sábado, septiembre 29, 2007

Google Pack



Todos los días se aprende algo, y hoy he descubierto un paquete muy intereseante de herramientas gratis que te ofrece Google. En este paquete se incluye Google Earth, Norton Security Scan, Google Desktop, Firefox con la barra Google, Skype, StarOffice, SpywareDoctor, Adobe Reader, Picasa y Real Player. Todo lo puedes tener de un modo muy sencillo y rápido.
Te lo puedes descargar desde aquí.

miércoles, junio 13, 2007

Domain-Specific Language Tools



También conocido como DSL Tools, consiste en una potente herramienta de modelado de Microsoft. Gracias a esta herramienta puedes generar un modelo y un diseñador visual para tu framework. Sencillamente, generas elementos de diseño y del modelo que luego pueden ser arrastrados de forma visual sobre un diseñador.

Cuando te creas un proyecto DSL Tool, Visual Studio te genera automáticamente un modelo básico y un diseñador visual, los cuales puedes customizar para poder adaptarlo a la solución de tu problema, es decir a tu framework y modelo de datos.

Con DSL generas una gramática, mediante la cual limitas qué cosas puedes hacer y cuáles no en tu diseñador visual, permitiendo ajustar tu modelo de arquitectura al máximo y minimizando los riesgos.

A su vez, Visual Studio proporciona un diseñador visual para diseñar el modelo y la gramática, es decir, diseñas el propio diseñador, la herramienta que más tarde utilizarás para diseñar. El diseñador genera todo el código necesario para el modelo y el propio diseñador basado en la gramática. Todo el diseño queda definido mediante XML, el cual es generado automáticamente por el propio diseñador.

Esta herramienta, encaja muy bien con el modelo de desarrollo de las Software Factory, ya que define perfectamente cuáles son los elementos disponibles para el desarrollo a través de una arquitectura completamente definida y cerrada.

Si quieres profundizar en estos temas, en la web de Microsoft hay una gran cantidad de recursos, puedes visitarla aquí.

martes, junio 12, 2007

Cómo mostrar RSS en tu página php con MagpieRSS

Una forma rápida y cómoda de añadir RSS a tu página web en php es a través de MagpieRSS, para ello sólo hay que bajarse MagpieRSS desde aquí y como ejemplo de uso:

require_once(’magpierss/rss_fetch.inc’);

$rss = fetch_rss(”http://feeds.feedburner.com/SeriesAdictos”);
$items = array_slice($rss->items, 0, 10);

foreach ($items as $item)
{
echo “”.$item[”title”].”";
}


y otro ejemplo más currado podría ser el que aparece en la misma web de magpierss

require_once 'rss_fetch.inc';

$url = 'http://magpie.sf.net/samples/imc.1-0.rdf';
$rss = fetch_rss($url);

echo "Site: ", $rss->channel['title'], "

";
foreach ($rss->items as $item ) {
$title = $item[title];
$url = $item[link];
echo "$title

";
}
También puedes verlo funcionando en mi Galería de Arte, visitando la página anaims.com, la sección que aparece al final de la página "Artículos de Arte" muestra los títulos del propio feed del blog de la página, de ese modo, si cambiara de blog sólo tendría que cambiar la URL del feed.

Fuente: Nikok

miércoles, junio 06, 2007

Microsoft Surface

Como Microsoft comenta, Surface es una gran evolución en la interacción en el mundo digital. Posiblemente suponga la desaparición de teclados y ratones, permitiendo la interacción simultánea de varias personas sobre un mismo ordenador.

Surface está desarrollado en WPF (Windows Presentation Foundation), la nueva tecnología que viene incorporada en el el framework 3.0 y que pretende marcar un antes y un después en la capa de presentación de .Net, separando, aislando totalmente la capa de presentación de la lógica de negocio, mediante un modelo MVC es decir, un modelo controlador de vista.

Esta tecnología es similar a la empleada en ASP .Net, en la cual, por un lado tenemos la representación gráfica, basada en un xml, apoyada en un modelo de eventos generados en code behind.

WPF se basa en XAML, una nueva extensión para un nuevo formato, no es más que un xml que representa la presentación de una pantalla. Al estilo ASP .Net, se generan los tags para los controles, quedando libre de código, ya que el código se genera en un fichero por separado y sólo para los eventos y código de usuario.

Desarrollador 5 estrellas, serás solidario aprendiendo

Bueno, quizás es un poco tarde para comentarlo, pero para darle más publicidad si cabe, os comento que hay un curso gratis para aprender .Net, si consigues superar los 4 primeros niveles, Microsoft dona 15 dólares a una ONG, concretamente lo describen así:

¡Ahora cada Cuarta Estrella vale U$S 15.00! ¡Así es! Ahora la Estrella Solidaria otorga 15 dólares a ser donados por parte de la comunidad a SOS Aldeas Infantiles por cada cuarta estrella obtenida durante la promoción. Antes los valores eran de 5, 4 y 3 dólares. Ahora los tres primeros países de Latinoamérica y España multiplican la cantidad de estrellas por 15 dólares cada una. ¡Los niños de tu país agradecerán tu ayuda! Nota: España no aplica para la promoción del Flight Simulator.

Con esta iniciativa todo el mundo sale ganando, el que aprende .Net, el que vende más productos y el que recibe la ayuda, me parece una idea muy buena.

lunes, mayo 07, 2007

Vista se chupa la batería de los portátiles

No entiendo por qué hay gente que se sorprende de que cuando Vista tiene funcionando Aero (efectos visuales a su máximo esplendor) consuma más batería. Simplemente es aplicar la física. Según el artículo en CNet, del cual he sacado este comentario:

When Aero is turned off, battery life is equal to or better than Windows XP systems. But with it turned on, battery life suffers compared with Windows XP.

sin Aero, las baterías duran más que un XP normal. De todos modos, el tema de las baterías en portátiles está un poco verde aún, es uno de los puntos negros que hace que los portátiles sean más portables que otra cosa, y reza para que no te explote.

sábado, mayo 05, 2007

¿Portátiles a 10$?

Hace un tiempo comentaba que si se hicieran portátiles más baratos se comprarían más y eso llegaría a compensar por un precio más elevado, incluso generar más beneficios a nivel global. Lo que no me podía imaginar era que llegaran a costar tan baratos. En la India, están preparando dos prototipos de aquí a dos años para alcanzar un precio de 10$. Haciendo cuentas, el precio de fabricación sería de unos 47$, sin embargo, estimando una demanda de un millón de portátiles, el precio podría ser reducido a 10$.

La verdad es que cuesta creerlo, yo confío en que se pueden bajar los precios con una fuerte demanda pero esto me parece un poco exagerado.

Fuente de la noticia

viernes, febrero 16, 2007

Habilitando a PHP 4.0 para tratamiento de imágenes en linux

Por fín he conseguido que php encuentre las librerías necesarias para el tratamiento de imágenes jpeg. La verdad es que no era muy difícil, pero como el tiempo es escaso, lo cuento por si alguien se encuentra en la misma situación.

Necesito trabajar con imágnes, ya sabéis, subir imágenes y redimensionarlas, todo ello con PHP 4.0 y con linux SUSE 10.1. Para ello hay que tener instaladas una serie de librerías, buscando por ahí encontraba cómo hacerlo pero se presuponían una serie de cosas. Al final, ha posido ser instalando las librerías libjpeg, libjpeg-devel, libpng, libpng-devel, ZLIB y GD desde YAST y recompilando PHP.

Para recompilar PHP he tenido que hacerlo del siguiente modo, ya que hay que informar de dónde están las librerías jpng:

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php --with-mysql --with-jpeg --with-jpeg-dir=/usr/local --with-zlib --with-png --with-gd

Una vez configurado ejecutas:

make
make install

y ya lo tienes.

domingo, enero 14, 2007

Páginas Maestras - Design pattern

Los frames han pasado a la historia. Actualmente se utiliza un sistema más flexible para estructurar nuestra web. Este sistema consiste en la definición de una página compuesta por secciones fijas o variables y todas las paginas de la aplicacion están basadas en ellas.

Este patrón de diseño permite reorganizar el layout de la aplicación con sólo modificar la página maestra en la cual se basan nuestras páginas.

En función de la tecnología utilizada, tendremos más o menos fácil la implementación, aunque Microsoft ha facilitado enormemente esta labor en la nueva versión de Visual Studio 2005 y ASP Net 2.0.

Con esta solución de Microsoft, se pueden diseñar y configurar las páginas maestras tanto a nivel de página específica como de toda la aplicación. Gracias a este patrón de diseño, unido con hojas de estilos y un diseño en capas, podríamos cambiar el layout y el aspecto de una aplicación completa con sólo tocar dos ficheros.

Por último, os remito a dos artículos muy interesante donde se describe más a fondo y con ejemplos el patrón basado en páginas maestras.

Ejemplo1 desde www.designpatternsfor.net
Ejemplo2 desde www.codeproject.com