Google Chrome: Más curiosidades!

Está claro que Google Chrome se ha convertido en la noticia tecnológica de la semana desde que salió a la luz el lanzamiento de la primera beta el pasado martes 2 de septiembre, y está generando un gran número de opiniones, profundos análisis, aspectos curiosos en cuanto a funcionamiento, etc. Siguiendo con las curiosidades en torno Google Chrome, aquí os dejo otra bastante interesante y que a más de uno le va a gustar…y es que podemos ver como es por dentro utilizando Visual Studio e incluso probarlo…sorprendidos?? Pues aquí os dejo el enlace a la página de chromium en la que se detallan los requerimientos, configuraciones y pasos a seguir para ver como funciona internamente la última novedad salida de Google….¡Realmente curioso!…por cierto, compilar la solución lleva unos 40 minutos…

Citizen Service Platform: Primera release en Codeplex!

Como sabéis, Microsoft ha realizado una apuesta firme de cara a contribuir a la administración electrónica mediante la aplicación de las nuevas tecnologías…y como prueba, aquí tenéis una gran noticia: Se acaba de liberar en Codeplex la primera release del Citizen Service Platform (CSP). Se trata de una plataforma que estará compuesta por soluciones al servicio de los ciudadanos y basadas en tecnologías clave de Microsoft como SharePoint, Microsoft Dynamics CRM y la plataforma Windows Live para entornos de administración local y regional.

Podéis encontrar más información del proyecto CSP en la propia página de Codeplex y en los siguientes enlaces:

Como muestra de uso de las tecnologías comentadas, podéis echar un vistazo a las plantillas de Agenda Management que utilizan MOSS.

SharePoint y LINQ (I)!

Recientemente en uno de los proyectos en los que estamos trabajando surgió la necesidad de consultar datos de una lista de SharePoint y mostrarlos ordenados en base a uno de los campos de la misma. La primera alternativa en la que pensamos para solventar esta necesidad fue la de CAML, pero entre medias también pensamos que LINQ era otra opción interesante. La primeras preguntas que nos surgieron aquí fueron ¿cómo está la integración de SharePoint y LINQ?, ¿puedo consultar datos de una lista de SharePoint mediante LINQ? La respuesta a al primera pregunta es que «más o menos», mientras que la respuesta a la segunda es que sí…y ahora os explicaré los motivos de estas respuestas. A la hora de consultar datos de SharePoint, tenemos dos alternativas:

  • Usar LINQ To SharePoint, que es una extensión de LINQ que traduce consultas LINQ a consultas CAML en SharePoint. El problema de esta extensión es que parece que está descontinuada, puesto que desde la versión alfa de noviembre de 2008 no ha habido nuevas versiones.
  • Aprovecharnos la potencia que nos la clase List<T> que nos permitirá construir un objeto consultable mediante LINQ a partir de los elementos de una lista de SharePoint (que  no es consultable mediante LINQ).

En este post os voy a mostrar el segundo punto y como superar algunas limitaciones a trabajar con objetos de tipo List<SPListItem>. Lo pasos iniciales que he seguido son los siguientes:

  • Añadir unos datos de prueba a una lista tipo Links de SharePoint.
  • Crear un proyecto de aplicación de consola de Visual Studio 2008.
  • Añadir la referencia a Windows SharePoint Services 3.0.
image image image
  • En el código de la aplicación de consola, añadiremos las referencias necesarias para poder utilizar objetos de SharePoint por un lado, así como colecciones genéricas por otro.

//Espacios de nombres necesarios

using Microsoft.SharePoint;

using System.Collections.Generic;

  • A continuación añadimos el código necesario para poder realizar la consulta a la lista de SharePoint:
    • Creamos una instancia de un objeto SPSite a partir de la url de nuestro sitio SharePoint.
    • A partir del objeto SPSite, creamos una instancia de un objeto SPWeb.
    • A partir del objeto SPWeb, creamos una instancia de un objeto SPList especificando además que sea la lista Links.
    • Definimos un objeto de tipo List<SPListItem> que si permite consultas con LINQ.
    • Añadimos elementos al objeto List<SPListItem> recorriéndonos la lista origen.
    • Realizamos una consulta LINQ.
    • Mostramos el resultado ejecutando la consulta con un foreach (recordar que LINQ aplica evaluación diferida de consultas).

            //Acceso al sitio de SharePoint

            SPSite spsSite = new SPSite(«http://win-amr7ey1djky/»);

            SPWeb spwWeb = spsSite.OpenWeb();

            SPList splList = spwWeb.Lists[«Links»];

 

            //Construimos un objeto que se pueda consultar con LONQ           

            List<SPListItem> lItems = new List<SPListItem>();

            foreach (SPListItem splItem in splList.Items)

            {

                lItems.Add(splItem);

            }

 

            //Consulta LINQ

            var LinqQuery = from l in lItems

                            orderby l.Title

                            select l;

 

            //Visualizamos los resultados

            Console.WriteLine(«***************Resultado Consulta LINQ # 1***************»);

            foreach (var l in LinqQuery)

            {

                Console.WriteLine(l.Name);

 

            }         

 

            Console.ReadLine();

  • Sin más, mostramos el resultado:

image

Pero, no todo es tan bonito como parece…si os fijáis en el código, únicamente estoy mostrando la propiedad Name de la lista. ¿Se pueden mostrar más propiedades de la lista? La respuesta es que sí, pero no todas…esto lo he podido comprobar gracias al intellisense de Visual Studio. Por ejemplo, para esta lista no se muestra información como el usuario creador del ítem, la fecha de modificación, etc.

image

Entonces, ¿mi gozo en un pozo? La respuesta es que sí y que no…sí, porque no tengo accesibles todas las propiedades de manera indirecta, pero no porque si las tengo accesibles indirectamente gracias a que el objeto que almacena el resultado de la consulta LINQ ofrece una propiedad Xml en la que tenemos todos los campos de la lista de SharePoint…absolutamente todos. El código para comprobarlo es el siguiente:

            Console.WriteLine(«***************Resultado Consulta LINQ # 2***************»);

            foreach (var l in LinqQuery)

            {

                Console.WriteLine(l.Xml);

 

            }

            Console.ReadLine();

Y el resultado que se visualiza por pantalla es:

image

Por lo tanto, tengo toda la información de cada ítem de la lista…en formato Xml, pero esto es tratable…con lo que lo tengo todo. Y hasta aquí llega este post sobre SharePoint y LINQ. Espero que os haya resultado interesante.

ASP.NET MVC: Publicada la Preview # 5!

Siguiendo con la gran oleada de novedades iniciada el mes pasado en plataforma Microsoft, el equipo de ASP.NET MVC ha anunciado recientemente la disponibilidad de una nueva preview de ASP.NET MVC. La nueva preview (número cinco) esta preparada para su uso con .NET Framework 3.5 y .NET Framework 3.5 SP1, así como Visual Studio 2008, Visual Studio 2008 Sp1 y Visual Studio Web Developer 2008 Express SP1 Edition.

Podéis leer más sobre las novedades de esta preview en este post del blog de Scott Guthrie. Podéis descargaros la preview en este enlace (como no, se trata de un proyecto de Codeplex).

Modificación del tamaño máximo de las plantillas en SharePoint

Una de las limitaciones que por defecto tiene SharePoint es el tamaño máximo de las Site Templates, que tiene puesto el limite en 10 Mg, y si estas trabajando en un sitio, subiendo imágenes, modificando las master page, almacenando información, etc.y después lo quieres mover a otro sitio guardándolo como plantilla da el siguiente error:

image

Para evitar esto y poder modificar el tamaño máximo de las Site Templates, tenemos que ejecutar el comando stsadm.exe con los siguientes parámetros:

stsadm -o setproperty -propertyname max-template-document-size -propertyvalue size_in_bytes

Y sustituir el valor size_in_bytes por el tamaño que queramos que tengan las plantillas en bytes, y que no podrá superar los 500 Mg (524288000 bytes).

Espero que este truco os sirva de utilidad.

Pablo

Google Chrome: ¿Alguién da más?

Supongo que muchos ya estaréis al tanto de la que se avecina: Google va a liberar hoy su propio navegador (en versión beta). La verdad es que la noticia me ha pillado por sorpresa, y ya está causando comentarios de todo tipo…me ha gustado especialmente el artículo de la edición digital de El Mundo: Google desafía a Microsoft y lanza su propio navegador. ¿Qué como será este nuevo navegador? Pues aparte de leer la noticia anterior, os recomiendo este comic que ha creado Google para el lanzamiento.

image

La versión beta del navegador estará disponible hoy para descarga en 100 países…ni que decir tiene que la pienso probar.

SharePoint y SSRS 2008 (II)!

Una vez que hemos visto como configurar SQL Server Reporting Services 2008 (SSRS 2008) en modo integrado con SharePoint, necesitaremos instalar las herramientas y funcionalidades que nos permiten explotar esta integración. Para obtenerlas, necesitamos instalar Microsoft SQL Server 2008 Reporting Services Add-in for SharePoint Technologies (Reporting Services Add-in) liberados recientemente. Los pasos de instalación de estos Add-in son realmente sencillos:

  • Tras ejecutar el msi, simplemente pulsamos Next en la primera pantalla que aparece.
  • Aceptamos los términos suscritos en la licencia correspondiente.
  • Especificamos la información de registro (Nombre del usuario y Empresa).
SSRS_2008_WSS_27 SSRS_2008_WSS_28 SSRS_2008_WSS_29
  • En la siguiente pantalla simplemente pulsamos Install.
  • A continuación se inicia el proceso de instalación. Cuando finalice, pulsaremos Next.
  • En la siguiente pantalla simplemente pulsamos Finish.
SSRS_2008_WSS_30 SSRS_2008_WSS_31 SSRS_2008_WSS_32

Una vez instalados los Add-Ins, ya podemos pasar a la acción y empezar a realizar las configuraciones necesarias en el entorno de SharePoint. Como sabéis, SharePoint pasa a hacer las veces del Report Manager de SSRS…y en una integración de SSRS con SharePoint, si intentamos acceder al Report Manager comprobaremos que no se permite el acceso:

SSRS_2008_WSS_33

Para configurar el entorno de SharePoint de acuerdo a esta integración con SSRS:

  • Nos vamos a la SharePoint 3.0 Central Administration.
  • En el menú Site Actions, pulsamos sobre Site Settings.
  • En la página de administración, pulsamos sobre la opción Site Collection Features.
  • En la siguiente pantalla veremos que aparece la feature de SSRS sin activar.
SSRS_2008_WSS_34 SSRS_2008_WSS_35 SSRS_2008_WSS_36
  • Activamos la feature.
  • Si volvemos a la página de Site Settings, veremos que aparece una nueva sección relativa a la gestión de programaciones compartidas de SSRS.
  • Si volvemos a la página principal de la administración central, y a continuación nos vamos a la sección Application Management, veremos que aparece una nueva sección de configuración relativa a SSRS.
SSRS_2008_WSS_37 SSRS_2008_WSS_39 SSRS_2008_WSS_40

Por lo tanto, el siguiente paso es configurar en la administración central de SharePoint las settings de la integración con SSRS:

  • En primer lugar, pulsamos sobre la opción Grant database access. En la correspondiente página de configuración, especificamos el nombre del servidor (en mi caso la propia máquina). Al pulsar OK, se nos pedirá que especifiquemos las credenciales de la cuenta de ejecución de SSRS.
  • A continuación nos vamos a la opción Manage integration settings. En la página que se abre, especificamos la url del servicio web de SSRS y el tipo de autenticación.
SSRS_2008_WSS_41 SSRS_2008_WSS_42 SSRS_2008_WSS_44
  • La última de las opciones de configuración, Set server defaults, nos permite especificar aspectos típicos de la ejecución de SSRS:
    • El limite en el número de snapshots a utilizar.
    • El timeout máximo para el procesamiento de informes.

SSRS_2008_WSS_45

Y con esto ya tendríamos configurada la integración de SSRS 2008 y SharePoint. De este modo, ya estamos listos para empezar a crear informes en el entorno de SharePoint y ver que elementos nos proporciona para gestionar estos informes. Lógicamente, esto lo veremos en el siguiente post de la serie.

Disponible nueva CTP del lenguaje F#!

Microsoft acaba de liberar una nueva CTP del lenguaje F# tal y como podéis leer en el nuevo MSDN F# Developer Center. Podéis descargaros la CTP de este enlace. Tal y como comenta Don Syme en su blog,  esta CTP supone un importante paso en la evolución del lenguaje F# y su soporte completo dentro de la plataforma .NET.

Entre las características de este nuevo lenguaje, podemos citar: es simple, tipos seguros, esciente, escalable y por supuesto orientado a objetos….todas estas características son esperables dado su carácter de lenguaje .NET. Finalmente, os reproduzco las novedades de esta nueva CTP

  • Scripting now has added support, both in the language, compiler and Visual Studio. From simple touches such as “File -> New File -> F# Script” to the improved F# Interactive Tool Window and the new, MSBuild-based resolution rules for assembly references, our aim here is to put nothing between you and your ability to explore a problem space with F#.
  • The new and improved F# Project system enables large-scale, tool-based software development with F#. Teams can now develop large applications and libraries using standard Visual Studio techniques. This also makes F# easier to approach for developers familiar with Visual Studio.
  • The new F# Language Service gives more intuitive and reliable intellisense, type tips and smoother background compilation, all essential tools to assist in writing correct software

Os recomiendo leer el post de Don Syme para conocer de primera mano todas las novedades de la CTP y de la evolución de F#.

Best Practices Resource Center for MOSS + Otras novedades en SharePoint!

Parece que últimamente la plataforma SharePoint está dando mucho que hablar por la cantidad de nuevos recursos y novedades que está generando Microsoft y la comunidad en torno a esta tecnología. Si el otro día os hablaba del Performance and Capacity Planning Resource Center for SharePoint Server 2007, en esta ocasión os tengo que comentar que se ha creado un nuevo centro de recursos para MOSS: el Best Practices Resource Center for MOSS. En esta nueva fuente de recursos podréis encontrar buenas prácticas relativas a:

  • La creación de portales de publicación.
  • Creación de portales de colaboración.
  • Como hacer el planning de búsquedas en MOSS.

image

Además de este nuevo centro de recursos, durante estos días han aparecido nuevas herramientas destinadas a ayudarnos en el trabajo día a día con SharePoint:

Disponible el código fuente de .NET Framework 3.5 SP1!

El equipo de Reference Source Code Center ha anunciado la disponibilidad del código fuente de varios e los componentes de .NET Framework 3.5 SP1. Estos componentes los tendreis accesibles en el Reference Source Code Center (RSCC). Los componentes liberados son los siguientes:

mscorlib.dll

Microsoft.Visualbasic.dll

system.dll

System.Web.Routing.dll

system.data.dll

System.ComponentModel.DataAnnotations.dll

system.drawing.dll

System.Web.Abstractions.dll

system.web.dll

System.Web.DynamicData.Design.dll

system.web.extensions.dll

System.Web.DynamicData.dll

system.windows.forms.dll

System.Web.Extensions.Design.dll

system.xml.dll

 

Tal y como se comenta en el post del equipo de RSCC, ahora mismo están trabajando en la liberación de las fuentes de otros componentes, asíu como en la creación de un instalable de las mismas.