Una de las nuevas funciones que me llamó la atención en Internet Explorer 8 cuando se lanzó fue Web Slices: la capacidad de un desarrollador web para dividir una página en fragmentos a los que un usuario puede suscribirse. Hay una breve descripción de lo que son aquí:
http://www.microsoft.com/windows/internet-explorer/features/easier.aspx
y una muy buena guía para implementarlos de Nick Belhomme aquí:
http://blog.nickbelhomme.com/web/webslice-for-ie8-tutorial_84

Siendo el geek de BI que soy, lo primero que pensé fue ver si se podían usar con los informes de Reporting Services. Después de todo, ¿no sería genial si pudiera suscribirse a una tabla en un informe de SSRS, o incluso mejor a una celda en una tabla, y recibir una notificación cuando ese valor cambie en lugar de tener que seguir haciendo ping en el informe usted mismo? ¡Por supuesto que sí! Aquí está cómo hacerlo…

El desafío de implementar segmentos web es lograr que SSRS genere el código HTML necesario al representar su informe. Primero consideré usar la nueva función de formato enriquecido disponible en SSRS 2008 que Teo Latchov describir aquí, pero resulta que no puede usarlo para crear componentes de segmento web porque SSRS no admite los atributos necesarios (consulte aquí para más detalles, al menos supongo que es por eso, porque no pude hacerlo funcionar). La única manera de hacer que funcionara era presentar el informe en formato XML y luego usar un archivo XSLT para tener un control total sobre el HTML generado por SSRS. No entraré en demasiados detalles sobre cómo funciona esto; de nuevo, Teo tiene una gran explicación en su libro»Servicios de informes de Microsoft SQL Server 2008 aplicados(revisión aquí – es un libro excelente) en las páginas 263-265. Para ser honesto, este no es un enfoque satisfactorio para mí, ya que implica mucho más esfuerzo para que el informe tenga el aspecto que desea y, por supuesto, debe tener control sobre cómo se representa el informe. Sin embargo, sigue siendo una prueba de concepto divertida 🙂

Lo primero que hice fue crear un informe SSRS simple en BIDS que me devolvió los valores de ventas por Internet desglosados ​​por país:

Luego presenté el informe en formato XML, examiné el XML generado y creé un archivo XSLT simple que generaría un informe HTML a partir de ese XML. Luego agregué el archivo XSLT a mi proyecto y le adjunté mi informe usando la propiedad DataTransform del objeto de informe, para que siempre se usara cuando el informe se representara como XML. Luego pude implementar el proyecto y, usando el acceso URL al informe para representarlo en XML y obtener el resultado procesado en HTML, pude ver lo siguiente en IE8:

Segmentos web de IE8

Aquí hay un ejemplo de URL de SSRS que hace esto:
http://myserver/reportserver?/Webslices/WebsliceDemo&rs:Command=Render
&rs:Formato=XML&rc:MIMEType=texto/html&rc:Extensión de archivo=htm

Luego volví a BIDS y edité el archivo XSLT para agregar las etiquetas necesarias para un Web Slice alrededor de la mesa principal. Cuando volví a IE y volví a abrir el informe después de la implementación, pude ver dos cosas nuevas. Primero, el botón Web Slice apareció en la barra de herramientas de IE:

barra de herramientas de segmento web

Y cuando moví el mouse sobre la tabla en el informe, se resaltó con un cuadro verde como un componente de Web Slice:

resaltando cortes web

Luego podría hacer clic en cualquiera para suscribirme a la Web Slice y agregarla a mis favoritos. Esto significaba que podía ver el contenido de la tabla en mi barra de marcadores siempre que quisiera:

websliceshow

Y cada vez que los datos cambien (puede controlar la frecuencia con la que IE sondea la página web original en las propiedades del componente web slice, así como en la definición del propio componente web slice), el texto de la barra de favoritos se pone en negrita:

imagen

Así que ahí estás. Incluso con las limitaciones impuestas por la representación en XML, puedo pensar en algunas aplicaciones útiles de este enfoque… tal vez las pruebe en una futura entrada de blog. ¡Déjame saber si tienes alguna idea!

Una última cosa: creo que sería genial (e involucraría relativamente poco trabajo de desarrollo) si SSRS admitiera la creación de componentes de Web Slice listos para usar. Si está de acuerdo, por favor vote:
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=443857

Puede descargar mi proyecto de prueba de concepto SSRS aquí:

http://cid-7b84b0f2c239489a.skydrive.live.com/embedrowdetail.aspx/Public/Webslices.zip