Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

April 2009 - Artículos

Liberado el SP2 de Windows Vista y Windows Server 2008!

Aunque la RC de Windows 7 está a la vuelta de la esquina, Microsoft acaba de liberar el SP2 de Windows Vista (que por cierto yo tengo instalado en su versión RTW desde hace un par de semanas, y francamente, el portátil va como un tiro) y Windows Server 2008. De momento, este SP2 sólo estará disponible a través de TechNet y y MSDN e incluirá todas las actualizaciones que ha ido realizando Microsoft desde el SP1 de Windows Vista y Windows Server 2008…os reproduzco algunas de las novedades que vienen con el SP2 de Windows Vista tal y como se citan en el post con la noticia:

  • Windows Search 4.0 for faster and improved relevancy in searches
  • Bluetooth 2.1 Feature Pack supporting the most recent specification for Bluetooth Technology
  • Ability to record data on to Blu-Ray media natively in Windows Vista
  • Adds Windows Connect Now (WCN) to simplify Wi-Fi Configuration
  • Windows Vista SP2 enables the exFAT file system to support UTC timestamps, which allows correct file synchronization across time zones.

Finalmente, comentar que el SP2 de Windows Vista estará disponible próximamente (no más allá de junio) de forma general.

Windows Vista Team Blog

Publicado 29/4/2009 22:39 por Juan Carlos González Martín | 5 comment(s)

BizTalk Server 2009: Disponible de manera global!

Hace unos días os comentaba que ya teníamos disponible a través de MSDN la nueva versión de BizTalk Server, y hoy mismo acaba de liberar de forma general y global la nueva versión de BizTalk: BizTalk Server 2009. Os dejo una serie de enlaces de interés en torno a las novedades en la nueva versión y la noticia oficial de liberación:

Home

Publicado 28/4/2009 23:59 por Juan Carlos González Martín | 1 comment(s)

Archivado en:

WSS 3.0 & MOSS: Preguntas & Respuestas (I)!

Sin duda, una de las ventajas de realizar formación tecnológica especializada es que aprenden tanto los alumnos como el profesor. Esto es algo que siempre me pasa cuando realizo formaciones de plataforma SharePoint, cada organización tiene una problemática diferente y también problemas diferentes por lo que resulta complicado tener respuesta para todo…pero es precisamente aquí donde aparece el gran reto: responder a las preguntas planteadas. Por eso, la idea de este post y siguientes es recopilar las preguntas y respuestas que me han surgido y me surgirán en torno a plataforma SharePoint. Empecemos.

Infraestructura e IT en SharePoint

Cuestiones de configuración típicas desde la administración central de SharePoint

Herramientas y Utilidades

Cuestiones sobre Content Deployment

Cuestiones sobre búsquedas en plataforma SharePoint

  • ¿Por qué tenemos 2 BD's de búsquedas en MOSS? ¿Para qué sirve cada una? Las dos BD's son necesarias para que las búsquedas de MOSS funcionen a la perfección:
    • Por un lado, la BD del servicio de búsquedas de WSS 3.0 registra todas las veces que se utiliza la ayuda. Por lo tanto, es "casi" testimonial, pero necesaria y no penaliza el rendimiento.
    • Por otro lado, la BD "buena" de MOSS es la del Shared Service Provider (SSP).

Cuestiones sobre permisos de las cuentas de servicio en SharePoint

  • ¿Qué privilegios tiene que tener la cuenta de búsqueda de MOSS? La respuesta es que depende (esta respuesta se la debo a mi compañero Pablo Sousa):
    • Si nos referimos a la la cuenta que se encarga de indexar tiene que tener por lo menos acceso de lectura a los orígenes de contenido que se quieran indexar, porque si no, no puede leer la información.

    • Si nos referimos al servicio de búsqueda , por defecto el usuario no tiene que dar ningún permiso, estas cuentas son simples cuentas de usuario sin ningún permiso, ya se encarga SharePoint de concedérselos. Aquí os dejamos una tabla donde viene especificado todas las cuentas y permisos que necesitan: http://claytonj.wordpress.com/2007/04/23/moss-2007-setup-accounts/

  • ¿Cuáles son las buenas prácticas en cuanto a cuentas de usuario para SharePoint? Es recomendable utilizar/crear un mínimo tres cuentas: Application Pool, Servicios y Búsquedas

Migración desde versiones previas de SharePoint a SharePoint 2007

Infopath & Infopath Form Services

Y hasta aquí llega este primer post sobre preguntas y respuestas en plataforma SharePoint. Espero que os haya resultado interesante.

Publicado 27/4/2009 17:39 por Juan Carlos González Martín | 6 comment(s)

Archivado en: ,

WSS 3.0 & MOSS: Actualizados los SDK (versión 1.5)!

Microsoft acaba de liberar una nueva actualización de los SDK de WSS 3.0 & MOSS (versión 1.5 de abril de 2009). Los enlaces tanto de las versiones descargables en CHM como de las versiones online de los SDK son los siguientes:

Publicado 26/4/2009 17:57 por Juan Carlos González Martín | con no comments

Archivado en: ,

Una primera mirada a WF 4.0 tras el PDC 2008!

Como muchos sabéis, con .NET Framework 4.0 vamos a tener una nueva versión de Windows Workflow Foundation (WF 4.0) que rompe radicalmente en lo que a arquitectura se refiere (el stack se ha re-hecho) y también en cuanto a como se diseñan los workflows…y como muestra os dejo una captura de pantalla del posible aspecto de este diseñador (digo posible, porque de momento solo lo he podido ver en videos):

image

Desde el PDC 2008 no había vuelto a ver ningún video sobre WF 4.0, pero por suerte tenemos un vídeo de WF 4.0 sobre una versión de Visual Studio 2010 más actualizada que la que yo tengo en la que Ron Jacobs nos hace una primera demo sobre WF 4.0.

Publicado 23/4/2009 23:54 por Juan Carlos González Martín | con no comments

Managed Extensibility Framework: Un ejemplo práctico (I)!

Hace ya un tiempo os hablé de una nueva librería .NET denominada Managed Extensibility Framework (MEF). MEF forma parte de la nueva versión del CLR (4.0) que vendrá con .NET Framework 4.0 y Visual Studio 2010, y habilita escenarios de re-utilización de aplicaciones y componentes, haciendo posible que aplicaciones .NET compiladas de forma estática puedan ser compuestas de forma dinámica. Como os comentaba, MEF está pensado para escenarios en los que se está implementando aplicaciones y frameworks extensibles o bien extensiones para aplicaciones.

MEF_Diagram 

El caso es que, tal y como os comentaba en este post sobre ADO.NET Data Services, últimamente estoy cacharreando bastante con las novedades de .NET Framework 4.0 y de Visual Studio 2010…y por supuesto, he podido ver a MEF en acción. La idea de este post es mostraros un primer ejemplo sencillo de como podemos extender aplicaciones mediante MEF.

MEF al detalle

Como hemos dicho, MEF permite habilitar escenarios en el que se pueden extender aplicaciones de forma dinámica…pero, ¿cómo es posible esto? Pues añadiendo “puntos de enganche” (hooks) en las aplicaciones para extenderlas con nuevos componentes (propios o de terceros):

  • Habilitando la declaración y consumo de puntos de extensibilidad de aplicaciones.
  • En la práctica, se trata de un simple Import/Export:
    • Añadimos puntos de importación dónde queramos extender la aplicación.
    • Añadimos puntos de exportación en las extensiones.

Por supuesto, otra gran ventaja de MEF es que permite extender las aplicaciones en tiempo de ejecución (las extensiones se pueden crear de forma dinámica sin necesidad de conocer la aplicación en la que se van a aplicar, y por supuesto, no tenemos que volver a compilar), y no en tiempo de compilación por lo que no hay acoplamiento. Para que os hagáis una idea de la potencia y utilidad de MEF, sólo comentaros que Visual Studio 2010 en sí mismo utiliza MEF para poder ser extendido con nuevas capacidades.

¿Cuál sería el uso práctico de MEF?  Por ejemplo, añadir nuevos módulos a una aplicación en tiempo de ejecución (Por ejemplo: se crean unos módulos de aplicación al principio y más tarde se añaden otros):

  • Podemos ir dejando los ensamblados en un directorio y que la aplicación, gracias a MEF, esté continuamente chequeando el directorio (Composition Container) en busca de nuevos ensamblados (catálogos) y los cargue sin necesidad de tener que referenciarlos.
  • También se podría monitorizar un cierto ensamblado buscando nuevos añadidos.
image image

MEF en acción

Para evaluar MEF en acción, vamos a crear un sencillo ejemplo utilizando un proyecto de aplicación de consola. A este proyecto le añadimos un elemento de tipo class file con el siguiente código: 

using System;  

namespace Without_MEF  

 

    //Class with a property implementing the interface  

    public class Doorman  

     

        public IGreeting Greeting { get; set; }   

        public void CustomerArrived()  

         

            Greeting.SayHello();  

         

     

    //Starting point -> Public interface  

    public interface IGreeting  

     

        void SayHello();  

      

    //First public class inheriting from the public interface  

    public class HappyGreeting : IGreeting  

     

        public void SayHello()  

         

            Console.WriteLine("Hello to all my god, happy, friends!");  

         

     

}

Cómo veis, el código es bastante simple:

  • Definimos una interfaz IGreeting de la que hereda las clases HappyGreeting.
  • A su vez definimos una clase Doorman que tiene una propiedad Greeting de tipo IGreeting.

¿Cómo usamos estas clases habitualmente en nuestro código? Pues instanciándolas. En nuestro caso, y para la aplicación de consola, sería:

            var doorman = new Without_MEF.Doorman();  

            doorman.Greeting = new Without_MEF.HappyGreeting();  

            doorman.CustomerArrived();  

            Console.ReadKey();   

Y la salida por pantalla correspondiente es la siguiente:

image

Si utilizamos MEF, un código tan simple como el anterior se simplifica aun más. Añadimos al proyecto un nuevo elemento de tipo class file, y además necesitaremos añadir una referencia a System.ComponentModel.Composition. A este archivo de clase le añadimos el siguiente código:

using System;  

using System.ComponentModel.Composition;   

namespace WithMEF  

 

    //We decorate Doormanwith Export in order to use from an application  

    [Export]  

    public class Doorman 

         

  //We have to import IGreeting       

  [Import(typeof(IGreeting))] 

        public IGreeting Greeting { get; set; } 

        public void CustomerArrived() 

        {

             Greeting.SayHello(); 

          

      

    //The original interface 

    public interface IGreeting 

   

        void SayHello(); 

     

    //We export HappyGreeting because we want to use it 

    [Export(typeof(IGreeting))] 

    public class HappyGreeting : IGreeting 

   

        public void SayHello()

       

            Console.WriteLine("Hello to all my god, happy, friends!"); 

       

    }

}

Como podéis ver en el código anterior:

  • Por un lado, estamos exportando la clase Doorman porque la queremos consumir en otra aplicación de forma que esta sea extendida. Para poder exportar la clase, tenemos que decorarla con el atributo [Export].
  • A su vez, dentro de Doorman estamos importando IGreeting decorando para ello la propiedad que implementa esta interfaz con el atributo [Import] en el que especificamos el tipo importado.
  • Lógicamente, tendremos que exporta HappyGreeting que implementa IGreeting decorándola con [Export] y especificando que es de tipo IGreeting.

¿Y ahora como utilizamos las características de MEF en nuestra aplicación? Pues utilizando un código tan sencillo como el siguiente:

                //Monitorizamos el ensamblado actual

                 var catalog = new AssemblyCatalog(Assembly.GetExecutingAssembly());  

                //Definimos un objeto contenedor 

                var container = new CompositionContainer(catalog);  

                //Buscamos el objeto exportable en el contenedor  

                var doorman = container.GetExportedObject<WithMEF.Doorman>();  

                doorman.CustomerArrived();

Cómo veis con MEF no tenemos que instanciar los objetos, sino que:

  • Definimos uno o varios catálogos desde donde nos traeremos los objetos definidos como exportables (Doorman en nuestro caso). Estos catálogos se pueden definir a partir de monitorizar un ensamblado (llamada al GetExecutingAssembly) o un cierto directorio.
  • Definimos un objeto de tipo CompositionContainer que contiene el catálogo o catálogos que nos permiten extender la aplicación.
  • Sin más, nos traemos el objeto exportable con GetExportedObject y ya lo tenemos listo en nuestra aplicación para usarlo sin que esta sea consciente de su naturaleza : no instanciamos, luego no hay acoplamiento.

Y hasta aquí llega este primer post sobre MEF. Espero que os haya resultado interesante.

Publicado 23/4/2009 23:33 por Juan Carlos González Martín | 3 comment(s)

SQL Server 2008: Como lanzar Report Builder 2.0 desde SharePoint!

Como os comentaba en este post, con el SP1 de SQL Server 2008 se sigue lanzando el Report Builder 1.0 desde el Repor Manager por lo que tendremos que realizar nosotros la configuración manual necesaria para que se lance el Report Builder 2.0 (os remito al post mencionado). ¿Y qué pasa en una instalación de SharePoint (WSS 3.0 & MOSS) en la que tengamos configurada la integración con SQL Server Reporting Services 2008 (SSRS 2008). Pues lo mismo, con el añadido de que tendremos que instalar el Microsoft SQL Server 2008 Reporting Services Add-in for Microsoft SharePoint Technologies. Empecemos.

Instalación del SP1 de SQL Server 2008 y el Report Builder 2.0 en un entorno con SharePoint

Como os comentaba, los pasos de instalación son los mismos que en un entorno en el que no tengamos SharePoint:

  • Instalamos el SP1 de SQL Server 2008.
  • Instalamos el Report Builder 2.0 SP1.

Instalación del Add-In de SSRS 2008 para SharePoint

Una vez que hemos instalado el SP1 de SQL Server 2008 y el Report Builder 2.0, ya estamos listos para instalar el Add-In de SSRS 2008 para SharePoint:

  • La primera pantalla nos informa de que ya existe una versión del Add-In, por lo que tendremos que confirmar que vamos a realizar la consiguiente actualización.
  • En la siguiente pantalla, simplemente pulsamos Next.
  • Tras confirmar el correspondiente acuerdo de licencia, pulsamos Next.
image image image
  • En la siguiente pantalla especificamos un nombre para la instalación (el nuestro propio) y el nombre de nuestra organización y pulsamos Next.
  • En la siguiente pantalla, pulsamos Install y ya estamos listos para que se lleve a cabo el proceso de instalación. 
image image image
 
  • Una vez que ha concluido el proceso de instalación, simplemente pulsamos Finish.
  image  

En el caso de una instalación de SSRS 2008 integrado con SharePoint, pasa lo mismo que veíamos en una instalación normal de SSRS 2008: desde Report Manager se lanza Report Builder 1.0 y no Report Builder 2.0. Como sucedía con el Report Manager, esto se puede solucionar realizando unos pasos adicionales en este caso:

image image image
  • En la siguiente pantalla pulsamos Install y a esperar unos pocos minutos para que se realice el proceso de instalación.
  • Una vez acabado el proceso, pulsamos Finish.
image image image

Ahora bien, al igual que ocurría con Report Manager, una vez realizadas todas estas instalaciones, tendremos que configurar de forma manual el lanzamiento de Report Builder 2.0 desde SharePoint:

  • Nos vamos a la administración central de SharePoint. En la pestaña Application Management, pulsamos Set Server defaults en la sección de Reporting Services.
  • Como ocurría en la configuración del Report Manager, tendremos una sección en la que especificar la url de lanzamiento del Report Builder que en este caso tiene la forma: 

/_vti_bin/ReportBuilder/ReportBuilder_2_0_0_0.application

  • Una vez configurado, nos vamos a una biblioteca que tengamos configurada con un content type de tipo Report Builder Report. 
image image image
  • Veremos que se lanza la aplicación ClickOnce de Report Builder y que tras pulsar Run, comienza el proceso de descarga.
  • Finalmente, aparece Report Builder 2.0 en nuestras pantallas.
image image image

Y hasta aquí llega este nuevo post sobre SSRS 2008 y SharePoint. Espero que os haya parecido interesante.

Publicado 22/4/2009 21:02 por Juan Carlos González Martín | 1 comment(s)

SQL Server 2008: Como lanzar Report Builder 2.0 desde el Report Manager!

En el último post sobre SQL Server 2008, os hablaba sobre la instalación del SP1 tanto de SQL Server 2008 como de Report Builder 2.0. Sin embargo, hay algo que la instalación de este SP1 no soluciona: lanzar el Report Builder 2.0 desde el Report Manager (como sabéis, esta es la aplicación web desde la que podemos gestionar los elementos de SQL Server Reporting Services que tenemos en el servidor: informes, modelos de datos, fuentes de datos, etc). Pero veamos que efectivamente esto es así:

  • Lanzamos el navegador y especificamos la url del Report Manager (normalmente algo así como /ReportServer">/ReportServer">http://<ServerName>/ReportServer.
  • Desde la página principal del Report Manager podemos crear informe con Report Builder a través del botón Generador de informes.
  • Si lo pulsamos, veremos para nuestra sorpresa que a pesar de que estamos en una máquina con el SP1 de SQL Server 2008 recién instalado, se lanza Report Builder 1.0 en lugar del esperado 2.0.
  • ¿Hay solución para esto? Pues sí, y es la misma que ya teníamos antes del SP1 de SQL Server 2008. Si abrimos una ventana del navegador y especificamos la siguiente url:

http://<servername>/ReportServer/ReportBuilder/ReportBuilder_2_0_0_0.application

image image image
  • Veremos que se lanza vía ClickOnce la aplicación de Report Builder.
  • Pulsamos Run una vez que termina el proceso de verificación de requisitos y esperamos a que se descargue la aplicación (como sabéis, esto sólo ocurre la primera vez que se lanza la aplicación).
image image image
  • Una vez que acaba el proceso de descarga, veremos que se abre el deseado Report Builder 2.0.
  • Por lo tanto, si pudiéramos especificar el parámetro anterior en algún sitio de la configuración de Report Server, solucionamos el pequeño inconveniente de que se lance Report Builder 1.0 en lugar de Report Builder 2.0…y la papeleta la solucionamos a través de las opciones de configuración del propio sitio de Report Manager…como podéis comprobar, en la pantalla de configuración tenemos un espacio en el que podemos especificar la url del Report Builder 2.0. Especificamos la url anterior y listo, ahora si se lanzará Report Builder 2.0 desde el report manager.
image image

Espero que este tip os sirva de utilidad.

Publicado 21/4/2009 12:27 por Juan Carlos González Martín | 4 comment(s)

Windows 7: En unas semanas tendremos la RC!

Aunque ya se sabía que para mayo tendríamos lista la release candidate (RC) de Windows 7, todavía no se sabía una fecha aproximada para su disponibilidad. Pues bien, ya se empiezan a ver los primeros posts en la red comentado que la fecha oficial para la RC será el 5 de mayo…vamos, que en dos semanas ya dispondremos de una versión de Windows 7 que ya veremos si se parece mucho o no a la RTM que saque Microsoft para el último cuatrimestre del año.

Aquí os dejo un par de enlaces a posts sobre el tema en la red:

Publicado 19/4/2009 16:59 por Juan Carlos González Martín | 2 comment(s)

Archivado en:

SQL Server 2008: Instalación del SP1 (también de Report Builder 2.0)!

Cómo sabéis, hace unos días se liberó el primer service pack (SP1) de SQL Server 2008, asique aprovechando los ratos ociosos del evento de movilidad que tuvimos en el CIIN con el amigo Eduardo, me puse a instalar tanto SQL Server 2008 SP1 como Report Builder 2.0 SP1 en una máquina sin SharePoint y en otra con SharePoint (WSS 3.0). Asique, aquí me tenéis contando la experiencia…ya veréis que es un Next –> Next.

Instalando SQL Server 2008 SP1

Tras descargar el SP1 de SQL Server 2008, los pasos de instalación son realmente sencillos:

  • En la primera pantalla, tras comprobar  que todas las actualizaciones se realizarán de forma correcta, pulsamos Next.
  • Aceptamos la correspondiente licencia y pulsamos Next.
  • Como la máquina tiene SQL Server 2008, elegimos los componentes a actualizar en nuestra instalación y pulsamos Next.
image image image
  • En la siguiente pantalla, simplemente se realiza un chequeo de aquellas aplicaciones y servicios a las que puede afectar la actualización y que necesariamente tienen que estar parados. Una vez acabado el chequeo, pulsamos Next.
  • En la siguiente pantalla simplemente se recoge un resumen de los componentes a actualizar. Pulsamos Next.
  • A continuación, esperamos unos minutos a que la actualización se realice (es bastante rápido) y una vez que acabe el proceso pulsamos Next. 
image image image
  • Una vez que comprobamos que la actualización se ha realizado con éxito, simplemente pulsamos Next.
  • Finalmente, concluimos el proceso pulsando Finish.
image image

Instalando Report Builder 2.0 SP1

Si instalar el SP1 de SQL Server 2008 es sencillo, más lo es el de Report Builder 2.0. Tras descargarlo del correspondiente enlace, los pasos de instalación son:

  • Confirmar que vamos a actualizar la versión existente de Report Builder 2.0 que tenemos instalada.
  • En la siguiente pantalla, simplemente pulsamos Next y lo mismo en la pantalla de aceptación de acuerdo de licencia. 
image image image
  • Especificamos el nombre de la compañía y el propio para la instalación y pulsamos Next. En este caso el único componente de la instalación es Report Builder 2.0, pulsamos Next.
  • En la siguiente pantalla especificamos de manera opcional la url del Report Server: /ReportServer">/ReportServer">http://<NombreServidor>/ReportServer.
image image image
  • Pulsamos Installa para que se inicie la instalación y listo. 
image image

Y hasta aquí llega este primer post en torno a la instalación de SQL Server 2008 SP1 y Report Builder 2.0 SP1. En breve, las próximas entregas.

Publicado 18/4/2009 18:38 por Juan Carlos González Martín | 3 comment(s)

Windows Vista: Error en el servicio Servicio de perfil de usuario al iniciar sesión. No se puede cargar el perfil de usuario!

Pues ese es el error o mensaje descriptivo que esta mañana me daba el sobremesa de la oficina cada vez que intentaba iniciar una sesión con mi usuario…tras varios reinicios (que otras veces funcionan), no había forma de solucionar el problema…por suerte gracias a Google y a que este problema es bastante común, encontré la solución que os reproduzco:

  • Al encender el ordenador, hay que forzar pulsando F8 que aparezcan los distintos tipos de inicio de Windows. Elegimos el modo seguro.
  • Una vez que hemos entrado en modo seguro, a través de la búsqueda o el ejecutar de Windows tecleamos regedit.
  • En el directorio del registro, buscamos HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
  • Tienen que aparecer dos registros idénticos salvo en qué uno de ellos termina en .bak y el otro no. Intercambiamos los papeles renombrando a .bak el registro que no tiene esta extensión.
  • Exportamos este registro para tener una copia de seguridad por si volvemos a tener el mismo problema.
  • Reiniciamos el equipo y ya podemos volver a entrar con nuestro perfil de usuario y respirar tranquilos.

Seguro que a más de uno este tip le vendrá bien…a mí desde luego me salvó de un buen apuro.

Publicado 16/4/2009 22:23 por Juan Carlos González Martín | 255 comment(s)

Archivado en:

De SharePoint o Office 14 nada: la próxima versión se llamará SharePoint 2010!

Al fin empezamos a ver movimiento, tras tanto secretismo, dentro del equipo de producto de SharePoint. Y es que se acaba de hacer público (veremos si se mantiene) a través del blog del equipo de producto de SharePoint que la nueva versión de SharePoint (del actual MOSS) se va a llamar SharePoint 2010. ¿Y WSS? Pues puede ser que se llame WSS 4.0, pero mi bola de cristal no lo vislumbra todavía ;-).

Publicado 15/4/2009 23:27 por Juan Carlos González Martín | con no comments

Archivado en: ,

Microsoft Office 2007 SP2: ¿Para el 28 de abril?

Parece que se confirma que para este finales de este mes tendremos el esperado service pack 2 (SP2) de Microsoft Office 2007 que afecta tanto a los clientes Office como a los servidores (WSS 3.0 & MOSS fundamentalmente, aunque también afectará a Project Server 2007. Sólo por repetir algunos de los cambios, en la parte de cliente tendremos cambios en los formatos de documento soportados. Tendremos soporte para ODF (Open Document Format), especificaciones propias de XPS y PDF de Microsoft. Veremos también mejoras en el rendimiento de Outlook (a ver si es verdad, que últimamente está dando un montón de problemas), la posibilidad de exportar modelos UML creados con Visio a XML, etc.

En la parte de servidor, tendremos mejoras en el ECM (Enterprise Conten Management) de MOSS, mejoras en el proceso de aprobación en Microsoft Office Project Server o mejoras en BD’s read only y archivos de indexación entre otros.

Por otro lado, también está cerca la versión RTM para descargar del SP2 de Windows Vista (yo ya tengo una versión RTW, que ya he visto que tiene algún fallito en mi Vista Ultimate 64 Bits). Lo dicho, estad alerta!

Publicado 15/4/2009 23:01 por Juan Carlos González Martín | 1 comment(s)

Jugando con ADO.NET Data Services CTP 1.5 (I)!

Desde hace unos días estoy trasteando (por no decir sufriendo) con la reciente CTP ADO.NET Data Services 1.5 (por suerte, a veces se ve la luz al final del túnel) y aunque el tema está un poco verde, ya se pueden enseñar algunas cosas. En este primer post (espero escribir alguno más) os voy a mostrar algunas novedades de ADO.NET Data Services que aparecerán tanto en la versión 1.5 como en la versión que venga con Visual Studio 2010 (se supone que aquí será la versión 2.0). En concreto, veremos el tema de la paginación en el servidor y como consumir el servicio desde una aplicación.

Definiendo el servicio y paginando en el servidor

Como sin duda sabéis, ADO.NET Data Services nos permite definir servicios de datos de tipo RESTFull sobre un cierto modelo de datos (ya sea de Entity Framework, de LINQ To SQL, de un archivo XML, objetos CLR en memoria, NHibernate, …). Realmente, se trata de una abstracción construida sobre WCF pensada para gestionar de manera centralizada los datos procedentes de este modelo a partir de proporcionar capacidades como:

  • Consultas, filtrado, ordenación, etc de datos del modelo.
  • Utilización en todo momento de protocolos estándar para exponer y acceder al modelo: HTTP + Atom. Esta es precisamente la idea de los servicios RESTFull. De hecho, ADO.NET Data Services usa HTTP como capa de mensajería lo que habilita usar comandos estándar HTTP para consumir los datos: GET, DELETE…y Atom para representar los datos devueltos.
  • Consultamos datos sin escribir código.

Estas capacidades las tenemos desde la versión 1.0 de ADO.NET Data Services. Sin embargo, en la primera versión hay una serie de problemas que se resolverán en las versiones 1.5 y 2.0. Por ejemplo:

  • Paginación de los datos, tanto en cliente como en el servidor, para evitar que el cliente consulte todas las entidades del modelo cada vez que realiza una consulta. Esto se resuelve en la versión 1.5, como veremos, con SetEntitySetAccessRule.
  • No tenemos conciencia del número de registros que tenemos en el servidor. En la versión 2.0, y seguramente en la 1.5, esto se solucionará con un nuevo operador Count que nos devuelve las filas del modelo, pero sin traerse todas las entidades en la consulta.

Pero pasemos a la acción…lo primero que vamos a hacer es definir un servicio de datos de ADO.NET Data Services v1.5 CTP1. Para ello:

  • Creamos, en Visual Studio 2008 (en Visual Studio 2010 es imposible, y lo digo por experiencia) un proyecto de tipo web.
  • A nuestro proyecto web le añadimos un Entity Data Model (EDM) de ADO.NET Entity Framework que creamos a partir de la BD AdventureWorks.
  • Una vez creado el EDM, añadimos al proyecto web un elemento de tipo ADO.NET Data Services v1.5 CTP1.
image image

Lo siguiente que haremos, es empezar a configurar el servicio de datos que acabamos de añadir. Para ello:

  • Editamos el archivo .cs asociado al servicio (que tenemos en la carpeta App_Code de nuestro proyecto web).
  • En la definición de la clase correspondiente, realizamos las modificaciones necesarias para que por un lado nuestro servicio permita consultar las entidades del EDM, y por otro se especifiquen las reglas para acceder a dichas entidades:

using System;  

using System.Data.Services; 

using System.Collections.Generic; 

using System.Linq;  

using System.ServiceModel.Web;  

public class WebDataService : DataService<AdventureWorksModel.AdventureWorksEntities>  

    // This method is called only once to initialize service-wide policies. 

    public static void InitializeService(IDataServiceConfiguration2 config) 

   

        // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.

        // Examples:

        config.SetEntitySetAccessRule("*", EntitySetRights.All);

        // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);

    }

}

  • Como se puede apreciar, AD.NET Data Services v1.5 añade una nueva implementación para IDataServiceConfiguration (se le añade el 2 al nombre) que permite estas nuevas capacidades de paginación en el servidor para mejorar la experiencia de usuario. A continuación, a través de SetEntitySetAccessRule, hemos especificado que exponemos todas las entidades (*) y con permisos CRUD para las mismas.
  • Si ejecutamos el proyecto, veremos como efectivamente se exponen todas las entidades de nuestro modelo.
  • También podremos consultar cualquier entidad del modelo sin más que poner /<NombreEntidad> a continuación de la url del servicio de datos:
image image
  • Ahora bien, consultar entidades de la forma anterior adolece de problemas de rendimiento si el número de registros en el servidor es muy elevado…la solución está en poder añadir el mecanismo de paginado en el servidor comentado…y es tan sencillo como añadir la siguiente línea en la configuración del servicio:

         config.SetResourceSetPageSize("Product", 4);  

  • De esta forma, al consultar la entidad Product el servicio nos devolverá cuatro productos y un enlace a los siguientes cuatro productos:

image

Consumiendo el servicio

Para consumir el servicio de ADO.NET Data Services creado en una aplicación (por ejemplo de consola), necesitaremos en primer lugar representar las entidades definidas en el servicio de datos. Para ello, deberíamos crearlas en nuestro proyecto, siendo dos las posibilidades que tenemos:

  • Crear estas entidades a mano desde cero en el correspondiente archivo .cs.
  • Utilizar la utilidad de comandos DataSvcUtil que tenemos en la carpeta bin del directorio de instalación de ADO.NET Data Services y que nos permite generar la representación de las entidades en el servicio en el correspondiente archivo .cs. DataSvcUtil nos da varias opciones para generar el archivo .cs (lo podéis comprobar tecleando DataSvcUtil /help), entre ellas especificar la uri de nuestro servicio de datos (es la que he utilizado en mi caso):

DataSvcUtil /out:"WebDataService.cs" /uri:"http://localhost:1382/ADO_NET_DATA_SERVICES_v1_5/WebDataService.svc/"  

  • Tecleando la sentencia anterior, en unos pocos segundos tendremos creado el archivo .cs que contiene las entidades definidas en el servicio de datos, y que añadiremos a nuestro proyecto.
image image image

Generado el archivo .cs que contiene la representación de las entidades de nuestro servicio de datos, ya estamos listos para consultarlo. Los pasos previos son:

  • Añadir la referencia en nuestro proyecto a los ensamblados Microsoft.Data.Services y Microsoft.Data.Services.Client.
  • Añadir las correspondientes sentencias using en nuestro archivo de código para poder utilizar estos ensamblados:

using System.Data.Services;

using System.Data.Services.Client;  

Para consultar el servicio de datos, tenemos dos posibilidades:

  • En el propio contexto del servicio de datos a partir de las clases WebDataContext y WebDataQuery que forman parte de Microsoft.Data.Services.Client. Simplemente, lo que tendremos que hacer es crear una instancia de un objeto WebDataContext que nos permite consultar las entidades del servicio de datos a partir de la Uri del mismo y a continuación crear una instancia de WebDataQuery en el que especificaremos (por ejemplo) la entidad a consultar en un estilo similar a las consultas que hacemos a través del navegador:

            Uri uService = 

                new Uri(http://localhost:1382/ADO_NET_DATA_SERVICES_v1_5/WebDataService.svc);

          DataServiceContext ctx = 

                new DataServiceContext(uService); 

            DataServiceQuery<Product> Products = ctx.CreateQuery<Product>("/Product"); 

            foreach (var product in Products)

            {

                Console.WriteLine(product.Name);

            }

            Console.ReadLine();

  • Utilizando el contexto del servicio de datos disponible con la clase DataServiceContext, lo que nos permite definir consultas LINQ facilitando la realización de estas consultas al servicio de datos. En este caso, el código para consultar el servicio es todavía más intuitivo:

            AdventureWorksEntities ctx2 = 

                new AdventureWorksEntities(uService);

            var q = from p in ctx2.Product

                    select p;

            foreach (var product in Products)

            {

                Console.WriteLine(product.Name);

             

La salida por pantalla generada por estas dos alternativas de consulta del servicio de datos es la siguiente:

image

Como podéis apreciar, se siguen devolviendo cuatro productos tal y como definimos en la configuración del servicio. Y nada, hasta aquí llega este primer post sobre ADO.NET Data Services. Espero que os resulte interesante.

Publicado 15/4/2009 18:37 por Juan Carlos González Martín | 3 comment(s)

WSS 3.0 & MOSS: Visualización de documentos word & PFF con TextGlow & PDFViewer!

Sin duda, una de las características fundamentales de la plataforma SharePoint es las capacidades de que dispone out-of-the-box para trabajar con cualquier tipo de documentos en general, y con documentos Office en particular. El caso, es que cuando trabajamos con documentos Office normalmente tendremos que disponer del cliente office para poder interactuar con ellos, por lo que aparentemente parece que “estamos saliendo de SharePoint”…y digo aparentemente porque para Office 2007 la integración es total. Lo mismo pasa si trabajamos con documentos no Office…pues bien, en este post os presento un par de soluciones que nos permite visualizar documento PDF y documentos Word sin salir del entorno de SharePoint:

  • PDF Viewer, se trata de un sencillo visor de archivos PDF en SharePoint a partir de un iFrame y un poco de JavaScript.
  • Para visualizar documentos word, tenemos TextGlow. Se trata de un visualizar creado por la empresa  Muhimbi basado en Silverlight.
TextGlow[5]

Espero que el post os haya resultado interesante.

Publicado 14/4/2009 23:50 por Juan Carlos González Martín | 6 comment(s)

Archivado en: ,

VisiFire: Componentes Silverlight gratuitos y open source para visualizar datos!

Una muestra más del movimiento open source en plataforma Microsoft lo tenemos en los excelentes controles Silverlight desarrollados por VisiFire que permiten crear y desplegar gráficos de datos Silverlight en cuestión de minutos, aportando una visualización enriquecida y dinámica. Estos controles son open source pues son independientes de la tecnología que tengamos en el lado del servidor, por lo que se pueden usar en ASP.NET, ASP, PHP, Coldfusion, Ruby on Rails o en HTML.

image image image

Finalmente, aquí os dejo un estupendo paso a paso de Randy Drisgill sobre como usar los componentes de VisFire.

Publicado 13/4/2009 23:15 por Juan Carlos González Martín | 2 comment(s)

SQL Server 2008: Tips, Tricks & How-To en SSRS 2008 (I)!

Después del último post de la serie dedicada a la creación de informes con SQL Server Reporting Services 2008 (SSRS 2008), he pensado que para seguiros comentando algunas de las cosas curiosas que me he encontrado al trastear con SSRS 2008 era mejor comenzar con una nueva serie en la que os detalle pequeños Tips, Tricks y How-To para SSRS. La idea es contaros uno o dos tips por post. Empecemos.

Cómo añadir ordenación interactiva a un informe de SSRS 2008

SSRS 2008 (al igual que su predecesor SSRS 2005) permite añadir capacidad de ordenación interactiva a los informes que se diseñen (muy parecido a la ordenación de Microsoft Excel). Para añadir ordenación interactiva a nuestro informe volvemos a la pestaña layout y seguimos los siguientes pasos:

  • Seleccionamos la primera celda de la cabecera de nuestro informe, hacemos clic con el botón derecho del ratón y seleccionamos Properties.
  • En la pantalla que se abre pulsamos sobre la sección Interactive Sort. Configuramos la ordenación interactiva de acuerdo a la siguiente Figura:
    • Habilitamos la ordenación interactiva en la celda en cuestión.
    • Especificamos que la ordenación se realice en base al valor seleccionado.
  • Sin más, previsualizamos el informe y vemos que nos ofrece la posibilidad de realizar ordenación de los registros del informe a través de la columna Product.
image image

Agrupando datos en un informe

SSRS 2008 no solo nos permite ordenar los registros de forma interactiva, sino que además nos ofrece la posibilidad de realizar agrupaciones de los registros en base a un cierto campo del informe. Por ejemplo, en el informe con el que estamos trabajando, podríamos agrupar los resultados por categoría de producto y a su vez a cada grupo le podríamos ir añadiendo sucesivos niveles de agrupamiento (por ejemplo, por subcategoría). Para añadir agrupaciones lógicas en el informe, volvemos a la pestaña Layout y seguimos los siguientes pasos:

  • Hacemos clic con el botón derecho del ratón sobre una celda de nuestro informe, nos vamos a la sección Add Group y luego Row Group -> Parent Group.
  • En la ventana que se abre seleccionamos el campo por el que queremos agrupar y marcamos las opciones de Add group footer y Add group header.
  • Nos situamos en la celda situada encima de la celda sobre la que hemos añadid el grupo y a través del menú contextual añadimos el campo correspondiente.
  • Eliminamos la columna Group1 que se ha añadid al crear este primer nivel de agrupamiento. Si hemos seguido los pasos anteriores de forma correcta, el informe en tiempo de diseño debería tener el siguiente aspecto:

image image image

Y hasta aquí llega la primera entrega de tips, tricks & How-To de SSRS 2008. Espero que os haya resultado interesante.

Publicado 12/4/2009 22:41 por Juan Carlos González Martín | 4 comment(s)

Windows Azure: Disponible una nueva versión del Azure Training Kit!

Si hace un momento os hablaba de una serie de ejemplos sobre servicios de WCF en la nube, ahora le toca al Azure Training Kit cuya nueva versión acaba de ser liberada por el equipo de Windows Azure. Aunque el equipo de Windows Azure ha venido actualizando contenidos conforme iban apareciendo nuevas capacidades en la plataforma, esta nueva versión del training kit es una actualización completa de la primera versión liberada en el pasado PDC 2008 en Los Ángeles. Entre las novedades que encontraremos en esta versión del training kit:

  • 11 hand-on labs incluyendo los relativos a PHP y código nativo en Windows Azure.
  • 28 demo scripts.
  • 9 presentaciones.

Podéis descargaros la nueva versión del training kit de este enlace.

image

 

Publicado 10/4/2009 19:52 por Juan Carlos González Martín | 1 comment(s)

Windows Azure: Ejemplos de servicios WCF en la nube!

Poco a poco vamos teniendo cada más ejemplos prácticos en torno a Windows Azure y Azure Services Platform. Este es el caso de una serie de servicios WCF y clientes Silverlight preparados para estar hosteados en Windows Azure. Para poder jugar con los ejemplos necesitaréis:

 En cuanto a los ejemplos en sí, este el listado de los que tenemos disponibles ahora  mismo:

Azure WCF Logos.png

Publicado 10/4/2009 19:32 por Juan Carlos González Martín | 2 comment(s)

SQL Server 2008: Disponible el SP1!

Después de poco más de un año desde el anuncio de la disponibilidad oficial de SQL Server 2008, Microsoft acaba de anunciar la disponibilidad del primer service pack (SP1) de su plataforma de datos. El SP1 disponible para descarga en el Download Center de Microsoft es en realidad una serie de Cumulative Updates así como actualizaciones menores para resolver los problemas detectados por la comunidad, es decir, el SP1 no viene con nuevas características. Algunas de las mejoras son las que os resumo a continuación:

  • Slipstream allows administrators to install SQL Server 2008 and Service Pack 1 in a single instance. This decreases the total time for an installation, including a fewer number of reboots thereby increasing productivity and deployment availability.
  • Service Pack Uninstall allows administrators to uninstall the service pack separately from the database release. This feature also improves DBA productivity, reduces the cost of deployment and improves overall supportability.
  • Report Builder 2.0 Click Once improves the existing SQL Server end-user report authoring application by easing deployment to business users.

Enlaces relacionados con el SP1 de SQL Server 2008

…si antes hablaba de que habría que ver si con el SP1 de SQL Server 2008 tendríamos alguna mejora en la integración de SQL Server Reporting Services 2008 (SSRS 2008), aquí tenemos un nuevo Add-In que seguramente ya permita crear informes con Report Builder 2.0 desde SharePoint.

Home

Publicado 8/4/2009 23:43 por Juan Carlos González Martín | 1 comment(s)

Más artículos Página siguiente >