Web Platform Installer: Disponible la RC!

Ya tenemos disponible para descarga la primera release candidate del Web Platform Installer. Se trata de una simple herramienta que instala todos los componentes de un entorno web típico Microsoft: IIS 7, Visual Studio Web Developer 2008 Express Edition, SQL Server Express Edition y .NET Framework. Por supuesto, el proceso de instalación nos permitirá elegir que componentes queremos instalar.

Podéis descargaros el instalador de este enlace.

XAMLX & XAML: Adiós a XOML!

Como sabéis, en el pasado PDC 2008 en Los Ángeles se presentó la primera CTP de Visual Studio 2010 y de .NET Framework 4.0. Como parte de .NET Tx 4.0, tendremos una nueva versión de Windows Workflow Foundation (4.0) que entre otras novedades, supondrá la despedida de la extensión XOML. en WF 4.0, cuando creemos workflows o actividades customizadas se generará un archivo XAML (Extensible Application Markup Language) en lugar del tradicional archivo XOML. Además, con WF 4.0 y de acuerdo a la idea de que sea perfectamente complementario a Windows Communication Foundation (WCF), aparecerá también un nuevo tipo de archivo con extensión XAMLX que contendrá la declaración del servicio WCF y la implementación del servicio WF.

Logo_NET

Más información en el blog de WF.

WSS 3.0 & MOSS: TechNet Virtual Labs!

Preparando un nuevo seminario sobre SharePoint (una nueva vuelta de tuerca más: SharePoint + Business Intelligence), me encontré con una serie de virtual labs sobre la plataforma Microsoft Office 2007 (cliente y servidor) en la que podemos evaluar muchas de sus capacidades:

2007 Microsoft Office System: Virtual Lab Express

2007 Microsoft Office System

Office Groove 2007

Deployment and Migration

Windows SharePoint Services 3.0

Office SharePoint Server 2007

Business Intelligence

WSS 3.0 & MOSS: Un regalito por Navidad!

Finalmente, después de comenzar esta iniciativa el mes pasado, y como adelanto a la Navidad, me gustaría realizar por adelantado un regalo a la comunidad Geek en general y a la de SharePoint en particular (materializada en SUGES en España). Se trata de un documento PDF de más de 400 páginas que recoge un recopilatorio de los posts más relevantes que sobre plataforma SharePoint hemos escrito en el blog del CIIN desde los inicios del mismo haya por el mes de septiembre de 2006. La verdad es que hasta yo mismo me he sorprendido de la extensión del documento, no había tomado conciencia hasta hoy de lo mucho que hemos escrito sobre SharePoint.

image

Espero que esta guía sirva de ayuda a todos los que trabajan con la tecnología SharePoint y que le facilite la búsqueda de soluciones a problemas que se encuetran en el día a día con esta tecnología que no para de crecer y evolucionar y que se ha convertido en producto estrella y transversal para Microsoft. Podéis descargaros la guía de la página del proyecto SUGES en Codeplex a través de este enlace.

Microsoft Office 2007: Disponible el Add-In Get Started Tab en castellano!

Interesante Add-In que Microsoft ha puesto a disposición de los usuarios de Microsoft Office 2007: Get Startet Tab para Microsoft Word, Excel y Power Point 2007 y para los idiomas español, alemán, italiano, francés, portugués, danés, holandés, polaco y noruego. Este add-in, que en castellano se denomina Guía de Inicio,añade una nueva pestaña a la ribbon de Office desde la que los usuarios podrán acceder a contenido gratuito de Office como cursos de formación, vídeos demostrativos, y otros recursos pensados para asegurar un rápido aprendizaje de las aplicaciones de Microsoft Office.

Enlaces de descarga del add-in:

Y este es el aspecto de la Guía de Inicio en Microsoft Word:

image 

Fuente: Blog de Bart Wessels.

MOSS: Webcasts y HOLs gratuitos sobre desarrollo WCM!

Por cortesía de Microsoft, y a través de la campaña Do Less. Get More. Develop on SharePoint enfocada a que los desarrolladores de ASP.NET 2.0 adquieran los conocimientos básicos sobre desarrollo en SharePoint, tenemos a la vista una serie de Webcasts y HOLs gratuitos sobre desarrollo para WCM (Web Content Management) en MOSS 2007:

Patterns & Practices: Disponibles las Application Architecture 2.0 Pocket Guides!

El otro día Jorge Serrano nos hablaba de la disponibilidad de la Beta2 del Application Architecture Guide 2.0, pues bien, parece que Microsoft se está dando prisa en la elaboración de esta guía de patrones y buenas prácticas en cuanto a que tenemos disponibles para descarga las versiones de bolsillo (más de 100 páginas por guía) de las guías de patrones y buenas prácticas clasificadas por temáticas:

Application_Architecture_KB

image[15] image[19]

SQL Server 2008: Sparse Columns!

Una de las mejoras que introduce SQL Server 2008 en cuanto a tipos de datos se refiere es la de una mejor implementación de las denominadas sparse columns, es decir, aquellas que almacenan de manera frecuente valores nulos. Dos son las características fundamentales de las sparse columns en SQL Server 2008:

  • No consumen espacio en disco (vs versiones anteriores).
  • La clave está en el uso del atributo SPARSE en la definición de las columnas.

Para ver el comportamiento de las sparse columns, vamos a partir de un escenario en el que a priori tiene sentido la definición de este tipo de columnas: tablas con un número muy elevado de columnas (por ejemplo, 1000 columnas). Nuestra base de datos (BD) de pruebas tendrá dos tablas, una en la que no se usa el atributo SPARSE en la definición de las columnas, y otra en la que sí se utiliza:

  • Creamos en primer lugar la tabla en la que no utilizamos el atributo SPARSE en la definición de sus columnas.

CREATE TABLE TableWithoutSparseColumns (

   DocID INT IDENTITY, DocName VARCHAR (100), DocType INT,

   c0001 INT NULL, c0002 INT NULL, c0003 INT NULL, c0004 INT NULL, c0005 INT NULL,

….

c0991 INT NULL, c0992 INT NULL, c0993 INT NULL, c0994 INT NULL, c0995 INT NULL,

   c0996 INT NULL, c0997 INT NULL, c0998 INT NULL, c0999 INT NULL,c1000 INT NULL

   );

GO

  • Creamos a continuación la tabla en la que marcamos con el atributo SPARSE sus columnas

CREATE TABLE TableWithSparseColumns (

   DocID INT IDENTITY, DocName VARCHAR (100), DocType INT,

   c0001 INT SPARSE NULL, c0002 INT SPARSE NULL, c0003 INT SPARSE NULL, c0004 INT SPARSE NULL, c0005 INT SPARSE NULL,

….

   c0991 INT SPARSE NULL, c0992 INT SPARSE NULL, c0993 INT SPARSE NULL, c0994 INT SPARSE NULL, c0995 INT SPARSE NULL,

   c0996 INT SPARSE NULL, c0997 INT SPARSE NULL, c0998 INT SPARSE NULL, c0999 INT SPARSE NULL,c1000 INT SPARSE NULL

   );

GO

Una vez creadas las tablas, lo primero que vamos a comprobar es que efectivamente el espacio ocupado por la tabla que no utiliza el atributo SPARSE en la definición de las columnas ocupa más espacio que la tabla que si las utiliza. Para ello:

  • Insertamos datos en las dos tablas:

INSERT INTO TableWithSparseColumns (DocName, Doctype) VALUES (‘aaaa’, 1);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0945) VALUES (‘bbbb’, 2, 46);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0334) VALUES (‘cccc’, 3, 44);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0233, c0234) VALUES (‘dddd’, 4, 12, 34);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0233, c0234,c0235,c0236) VALUES (‘eeee’, 4, 12, 34, 46, 66);

GO

 

INSERT INTO TableWithoutSparseColumns (DocName, Doctype) VALUES (‘aaaa’, 1);

INSERT INTO TableWithoutSparseColumns (DocName, Doctype, c0945) VALUES (‘bbbb’, 2, 46);

INSERT INTO TableWithoutSparseColumns (DocName, Doctype, c0334) VALUES (‘cccc’, 3, 44);

INSERT INTO TableWithoutSparseColumns (DocName, Doctype, c0233, c0234) VALUES (‘dddd’, 4, 12, 34);

INSERT INTO TableWithoutSparseColumns (DocName, Doctype, c0233, c0234,c0235,c0236) VALUES (‘eeee’, 4, 12, 34, 46, 66);

GO

  • Comprobamos el espacio que ocupan los datos guardados mediante el siguiente script:

SELECT [avg_record_size_in_bytes], [page_count] FROM sys.dm_db_index_physical_stats (

   DB_ID (‘SPARSE_DB’), OBJECT_ID (‘TableWithoutSparseColumns’), NULL, NULL, ‘DETAILED’);

 

SELECT [avg_record_size_in_bytes], [page_count] FROM sys.dm_db_index_physical_stats (

   DB_ID (‘SPARSE_DB’), OBJECT_ID (‘TableWithSparseColumns’), NULL, NULL, ‘DETAILED’);

GO

El resultado que se obtiene es el esperado: la tabla en la que hemos utilizado el atributo SPARSE ocupa mucho menos espacios en bytes y número de páginas que la tabla en la que no se ha utilizado.

image

Si hacemos un SELECT de algunas de las columnas con valores nulos, vemos en cambio que ambas tablas almacenan el valor nulo. Sin embargo, en el caso de la tabla en la que se ha usado el atributo SPARSE, estos valores nulos no ocupan espacio en disco.

image

Finalmente, otra de las novedades que viene con las sparse columns de SQL Server 2008 es la posibilidad de marcar todas las columnas marcadas con el atributo SPARSE con el atributo XML COLUMN_SET, lo que nos permitirá devolver de manera sencilla los valores no nulos que tengamos insertados en la tabla. La definición de la tabla sería la siguiente:

drop TABLE TableWithSParseColumns

 

CREATE TABLE TableWithSparseColumns (

   DocID INT IDENTITY, DocName VARCHAR (100), DocType INT,

   c0001 INT SPARSE NULL, c0002 INT SPARSE NULL, c0003 INT SPARSE NULL, c0004 INT SPARSE NULL, c0005 INT SPARSE NULL,

   c0991 INT SPARSE NULL, c0992 INT SPARSE NULL, c0993 INT SPARSE NULL, c0994 INT SPARSE NULL, c0995 INT SPARSE NULL,

   c0996 INT SPARSE NULL, c0997 INT SPARSE NULL, c0998 INT SPARSE NULL, c0999 INT SPARSE NULL,c1000 INT SPARSE NULL,

   SparseColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS);

GO

Para comprobar la utilidad de XML COLUMN_SET FOR ALL_SPARSE_COLUMNS:

  • Insertamos datos en la tabla.

INSERT INTO TableWithSparseColumns (DocName, Doctype) VALUES (‘aaaa’, 1);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0945) VALUES (‘bbbb’, 2, 46);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0334) VALUES (‘cccc’, 3, 44);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0233, c0234) VALUES (‘dddd’, 4, 12, 34);

INSERT INTO TableWithSparseColumns (DocName, Doctype, c0233, c0234,c0235,c0236) VALUES (‘eeee’, 4, 12, 34, 46, 66);

GO

  • Ejecutamos la siguiente sentencia T-SQL.

select * from TableWithSparseColumns

Y este es el resultado obtenido:

image

Y hasta aquí llega lo que os quería contar sobre las SPARSE COLUMNS en SQL Server 2008. Espero que el post os haya resultado interesante.

SharePoint, Silverlight, and Virtual Earth: SharePoint Silverlight Map Control!

Aunque ya sabía y había visto ejemplos de que con estas tres tecnologías «hermanas» se pueden conseguir resultados espectaculares, hacía falta disponer de un proyecto de referencia que demostrase su uso conjunto…y como no, ese proyecto existe y se encuentra alojado en Codeplex. Se trata del SharePoint Silverlight Map Control y consiste en un control de Silverlight que puede ser hosteado en SharePoint (versiones on-premise u online) que muestra un mapa de Virtual Earth completados con datos de una lista de SharePoint (los datos se obtienen a través de los servicios web de SharePoint). La verdad es que el control tiene una pinta estupenda y surge para integrar de manera sencilla Virtual Earth en un sitio de SharePoint. En este caso Silverlight es la plataforma de aplicaciones usada para llamar los servicios web de SharePoint, y colocar dichos datos, mediante JavaScrip, en el mapa de Virtual Earth.

silverlight

Podéis bajaros el código del control de este enlace.

WSS 3.0 & MOSS: SharePoint Reviews!

A través del blog de Joel Oleson acabo de descubrir un nuevo portal de SharePoint realmente interesante en cuanto al enfoque con el que se ha concebido. Se trata de SharePoint Reviews, un directorio de soluciones SharePoint con revisiones de expertos.

image

Tal y como nos comenta Joel en su blog, SharePoint Reviews se trata de un sitio independiente cuyo objetivo es ayudar a resolver problemáticas que surjan en torno a SharePoint, falta de herramientas y soluciones, etc. Para ello, SharePoint Reviews arranca con una base de unas 200 web parts y soluciones de SharePoint revisadas y clasificadas por categorías.