Pasión por la tecnología…

octubre 17, 2011

Office 365: ¿Tengo suficiente ancho de banda? (II)!

Archivado en: General — Juan Carlos González Martín @ 19:02

Siguiendo con el tema de como saber los requerimientos de ancho de banda mínimos para trabajar sin problemas con los servicios de Office 365 y ver si podemos tener problemas a este respecto, en esta ocasión os dejo un par de enlaces relativos a los requerimientos mínimos de ancho de banda para Lync los cuáles se deberían tener en cuenta a la hora de asegurar una productividad máxima cuando se vaya a utilizar Lync Online:

image

enero 2, 2011

Los números de 2010

Archivado en: General — Juan Carlos González Martín @ 09:50

Los duendes de estadísticas de WordPress.com han analizado el desempeño de este blog en 2010 y te presentan un resumen de alto nivel de la salud de tu blog:

Healthy blog!

El Blog-Health-o-Meter™ indica: Wow.

Números crujientes

Imagen destacada

El Museo del Louvre tiene 8,5 millones de visitantes al año. Este blog fue visto cerca de 80,000 veces en 2010. Si el blog fuera una exposición en el Louvre, tomaría 3 días para verla.

 

En 2010, publicaste 429 entradas nueva, haciendo crecer el arquivo para 1121 entradas.

Tu día más ocupado del año fue el 19 de octubre con 519 visitas. La entrada más popular de ese día fue Windows Vista: Error en el servicio Servicio de perfil de usuario al iniciar sesión. No se puede cargar el perfil de usuario!.

¿De dónde vienen?

Los sitios de referencia más populares en 2010 fueran google.es, geeks.ms, google.com.pe, google.com.mx y google.com.co.

Algunos visitantes buscan tu blog, sobre todo por sql server management studio 2008, infopath 2010, biztalk server 2009, sharepoint designer 2010 y sql server 2008 management studio.

Lugares de interés en 2010

Estas son las entradas y páginas con más visitas en 2010.

1

Windows Vista: Error en el servicio Servicio de perfil de usuario al iniciar sesión. No se puede cargar el perfil de usuario! abril, 2009
50 comentários

2

SQL Server 2008: Disponible SQL Server Management Studio Express! febrero, 2009
4 comentários

3

SharePoint 2010: Novedades en la instalación (I)! noviembre, 2009

4

SQL Server Reporting Services: Preguntas y Respuestas (II)! abril, 2008
6 comentários

5

SharePoint y Access 2007 (II)! febrero, 2009

octubre 20, 2009

SharePoint 2010: Algunas notas derivadas de la keynote y otras cosas!

Archivado en: General — Juan Carlos González Martín @ 10:12

Como lo prometido es deuda, aquí va un resumen rápido de algunas novedades en torno a SharePoint 2010 que pudimos ver de la mano de Tom Rizzo, Steve Ballmer y Jeff Teper en la keynote de la SharePoint Conference 2009. Aprovecho para comentaros que los vídeos de la keynote están disponibles para descarga y visualización bajo demanda en esta página. Lo primero a destacar, como ya ha comentado mi compañero Pablo Sousa, es que la beta pública no estará disponible hasta el mes de noviembre (parece que será a finales de mes)…sólo espero que los 7.400 asistentes a la conference no se enfaden ;-) …pero además, hay un rumor de que igual la RTM de SharePoint se retrasa hasta mayo-junio…veremos que pasa en los próximos meses. Bueno, en lo que a novedades se refiere (además de las ya comentadas por el blog del equipo de SharePoint), aquí va un pequeño listado de algunas (he añadido algunas cosas que ya conozco y que no se contaron en la Keynote):

A nivel de funcionalidad

Sin duda, lo mejor es que os leáis el post que os comentaba del blog del equipo de SharePoint (escrito por Jeff Teper). Dentro de las novedades y ya en la parte de demos realizadas por Tom Rizzo, destacaría:

  • Como no, la incorporación del Ribbon de Office 2007 a SharePoint 2010. El objetivo de introducir la Ribbon en SharePoint 2010 no ha sido otro que mejorar la experiencia de usuario y la usabilidad para conseguir reducir el número de clics necesarios para trabajar con SharePoint y simplificar al máximo la comunicación, colaboración dentro de la plataforma. Por supuesto, esta Ribbon es plenamente extensible desde la perspectiva de desarrollo (es igual de fácil que crear una Custom Action en SharePoint 2007). Una revisión a fondo de la Ribbon más que interesante la tenéis en este post de Liam Cleary.
  • En la misma línea va el sistema de ventanas modales que aparece por todos los lados: para crear/editar/visualizar un elemento de lista, para cargar un documento, para crear una aplicación web, etc. Realmente esta ventana modal no es más que un Div flotante en el que se muestra la página en cuestión.
  • Soporte para XHTML y cumplimiento de estándares WCAG…esto habrá que mirarlo con lupa.
  • Soporte de tipos de contenido cross-farms, es decir, podemos usar los tipos de contenido definidos en una granja dentro de otra lo que facilita la administración de las taxonomías que vayamos a definir.
  • Integración de sistemas LOB a través del concepto de External List y External Content Type, lo que permite de manera sencilla utilizar un modelo de BCS (Business Connectivity Services) creado desde SharePoint Designer 2010 o Visual Studio 2010 en sitios de SharePoint 2010. Lo interesante del BCS es que permite R/W frente a su predecesor (el BDC). Además, esta integración está disponible en los clientes de Office y en SharePoint WorkSpace 2010 (cliente offline de SharePoint 2010).
  • Integración con las versión web de los clientes de Office (también en SharePoint Online v2.0), lo que permitirá trabajar con documentos Office (Word, Excel, PowerPoint y OneNote) sin salirnos del contexto de SharePoint 2010.
  • A nivel de WCM:
    • Cambio de layout de página al vuelo al más puro estilo Microsoft PowerPoint.
    • Spell checker para facilitar la redacción de páginas de noticias.
    • Posibilidad de insertar web parts en el propio texto que se está escribienda.
    • Multimedia support a través de la Web Part para Silverlight y el reproductor de vídeo (al que se le pueden añadir skins) que se ha incorporador.
    • Document Sets, o lo que es lo mismo, la posibilidad de definir unidades atómicas de documentos que participen de las características de colaboración que tenemos disponibles para documentos únicos en SharePoint: aprobación, versionado, flujos de trabajo, etc.
    • Tipos de contenido empresariales, es decir, definir una serie de tipos de contenido en un Site Collection que se comporte como Hub y reutilizarlos.
  • Otras novedades como:
  • Vista móvil:
    • Se ha optimizado la vista móvil de sitios SharePoint a la vez que es más intuitivo trabajar con SharePoint 2010 desde este tipo de dispositivos.
    • Los dispositivos móviles se convierten en elementos naturales para trabajar en modo desconectado con SharePoint 2010.

Como novedad, si queréis ver SharePoint 2010 en acción, visitar este enlace.

A nivel de SharePoint Designer 2010

Los cambios en SharePoint Designer 2010 (SPD 2010) son tan notables, que hasta el bueno de Gustavo le empieza a gustar la herramienta. Algunos cambios en esta herramienta son:

  • Por supuesto, la incorporación de la Ribbon de la suite de Microsoft Office.
  • El rendimiento a la hora de conectarnos a un sitio de SharePoint 2010 ha mejorado notablemente.
  • La navegación ya no se basa en una estructura de carpetas, sino que está basada en agrupaciones de elementos relacionados de forma lógica.
  • Desde SPD 2010 podremos hacer cosas como:
    • Crear un flujo de trabajo vinculado a una lista o biblioteca.
    • Crear un flujo de trabajo re-utilizable (novedad) asociado a un tipo de contenido y que además se puede exportar a formato Visio para continuar con su diseño en Visio 2010. Al mismo tiempo, estos flujos de trabajo reutilizables se pueden guardar como una solución de SharePoint (.wsp) y llevarlo a Visual Studio 2010 para crear flujos de trabajo más complicado.
    • Crear un modelo de entidades del BCS sin código conectándonos a un sistema LOB (BDs, SAP, Siebel, etc) y definiendo las operaciones típicas de consulta, lectura, actualización, escritura y borrado en el sistema LOB.
    • Personalizar sitios de SharePoint 2010.
    • Crear nuevos sitios de SharePoint 2010.

Lo mejor es que veáis este post del equipo de SPD 2010 para aclarar dudas ;-) .

A nivel de desarrollo

  • Tendremos la posibilidad de crear entornos de desarrollo sobre Windows 7 / Windows Vista (entiendo que al menos con el SP1, por no decir el SP2) ya que podremos instalar y configurar SharePoint 2010 en estos sistemas operativos.
  • El BDC (Business Data Catalog) ha sido reemplazado por el BCS. Desde la perspectiva del desarrollador, podremos definir modelos de BCS desde Visual Studio 2010 al más puro estilo ADO.NET Entity Framework.
  • En el desarrollo de Web Parts tendremos dos opciones:
    • Visual, es decir, podremos ir viendo que estamos haciendo gracias al editor visual que incorpora VS 2010 y a la vez codificar el comportamiento de la WebPart. Para ver un poco más de detalle al respecto, os recomiendo este post de Liam Cleary.
    • Clásico y en modo SandBox o Entorno aislado (ya explicaremos este tema con más detalle).
  • Sandbox solutions, o lo que es lo mismo, la posibilidad de crear ciertos elementos típicos de SharePoint en los que se puede utilizar un subconjunto del modelo de objetos de SharePoint. Pero lo interesante de estas soluciones no es esto, sino que el usuario final las puede desplegar a nivel de colección de sitios a través de la user code solution gallery (las soluciones se suben como un .WSP que se activa desde esta galería). Y claro, esto mismo se podrá hacer en SharePoint Online  v 2.0. Para más información, daros una vuelta por este post de Daniel McPherson.
  • .WSP para las masas, lo que facilita la interoperabilidad entre SPD 2010 y VS 2010, y mejor aún, con soluciones .WSP de SharePoint 2007. Para que os hagáis una idea, se trata de que prácticamente todo sea un .WSP: una solución, una plantilla de sitio, un workflow de SPD 2010, etc.
  • Dispondremos de un modelo de objetos en cliente que nos permitirá acceder a un subconjunto de elementos de SharePoint 2010 sin tener que recurrir a llamar a los servicios web de SharePoint. Tendremos varias posibilidades de modelo de objetos en cliente:
    • Silverlight.
    • JavaScript.
    • .NET
  • Aparece un esperado LINQ To SharePoint, que nos permite definir consultas contra un modelo de entidades basado en listas y bibliotecas de SharePoint generado mediante SPMetal (veremos si aparece una forma directa en VS 2010). Las consultas LINQ To SharePoint se traducen en consultas CAML.
  • El despliegue de artefactos desde VS 2010 a SharePoint 2010 es realmente simple, incorporando un diseñador de paquetes y de características.
  • Server Explorer, lo que nos permite ver todo el contenido de un cierto sitio de SharePoint.
  • Mejor integración con Visual Studio Team System (bueno, Visual Studio 2010 Ultimate) para la parte de ALM.
  • Posibilidad de definir los denominados Mapped folders en nuestra estructura de proyecto para mapear carpetas conocidas como _layouts, images, y otras típicas del directorio 14 o añadir las nuestras propias.
  • Mejoras en la depuración de artefactos desplegados desde VS 2010 en SharePoint 2010: basta con pulsar F5 para empezar a depurar.
  • Además, podremos monitorizar si los artefactos que despleguemos están ralentizando de algún modo la carga de páginas de SharePoint gracias al Developer Dashboard (ya veremos como se activa).
  • Un recopilatorio excelente de novedades en el desarrollo en SharePoint 2010 lo podéis encontrar en este post de Corey Roth y en este otro post de Daniel McPherson.
  • Por último, como ya ha comentado Mario Cortés, ya enemos disponible en MSDN la sección de documentación relativa al desarrollo para SharePoint 2010:

image_thumb

A nivel de administración

Aquí os remito al post  relativo a estas novedades de mi compañero Pablo Sousa. Además, os recomiendo este excelente artículo de CMS Wire y este excelente overview de la Administración Central de SharePoint 2010.

Novedades en Business Intelligence (BI)

En lo que a BI se refiere, el equipo de SQL Server acaba de publicar las novedades relativas a BI y acceso a datos en SharePoint 2010 en las que ha estado trabajando. Las novedades más importantes son:

Además, en este post podéis encontrar todos los servicios y tecnologías relativas a BI que incorpora SharePoint 2010, algunos de los cuales son nuevos y otros se mejoran con respecto a SharePoint 2007:

  • Excel Services.
  • SQL Server PowerPoint y por supuesto, SQL Server en sí mismo.
  • PerformancePoint Services, que se integra de forma completa en SharePoint 2010.
  • Visio Services, o lo que es lo mismo, la posibilidad de publicar diagramas Visio vivos en sitios de SharePoint.

Y hasta aquí llega un pequeño resumen de algunas de las cosas que vienen con SharePoint 2010…en breve os iré contando más detalles interesantes.

diciembre 29, 2008

Lo nuevo en el BCL en .NET Framework 4.0!

Archivado en: General — Juan Carlos González Martín @ 16:31

Hacía tiempo que tenía en el tintero escribir este post en torno a algunas de las novedades que aparecen en la BCL (Base Class Library) de la primera CTP de .NET Framework 4.0…por cierto, parece que en breve tendremos una nueva CTP tanto de .NET Framework 4.0 como de Visual Studio 2010. Comencemos con algunas de las novedades de la actual CTP de .NET Framework 4.0:

  • Code Contracts, disponibles a través de System.Diagnostics.Conctracts, proporciona una manera agnóstica al lenguaje de expresar asunciones de código en programas .NET. Los contratos pueden tomar la forma de pre-condiciones, post-condiciones y objetos invariants actuando como documentación verificada de nuestras APIs internas y externas. Estos contratos se usan para mejorar el testeo a través de verificación del runtime, habilitar la verificación de contratos estáticos, y la generación de documentación. Más información sobre esta novedad en este enlace de Microsoft Research.
  • Parallel Extensions, se ha añadido el soporte de PLINQ (Parallel LINQ) a la BCL de .NET Framework 4.o, estructuras de coordinación de datos, y la Task Parallel Library (TPL). Se ha incluido una optimización del algoritmo de planificación de tareas ThreadPool, la clase estática Parallel, estructuras de datos como LazyInit<T>, CountdownEvent, Barrier, SemaphoreSlim, SpinLock, SpinWait, …Más información en Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio.
  • BigInteger, disponible a través de System.Numerics.BigInteger, se trata de un nuevo tipo de datos entero con precisión arbitraria y alto rendimiento. Soporta todas las operaciones estándar para tipos enteros, incluyendo manipulación de bits. Se puede usar desde cualquier lenguaje .NET, así como algunos de los nuevos como F# y IronPython para .NET.
  • Memory Mapped Files, disponible a través de System.IO.MemoryFiles, expone la funcionalidad de mapeado de memoria disponible en Windows como una API manejada de primer clase. Los archivos mapeados en memoria se pueden usar para editar de manera eficiente grandes archivos, así como crear memoria compartida para comunicación entre procesos. Además, se ha creado System.IO.UnmanagedMemoryAccesor para habilitar acceso aleatorio a memoria no manejada.
  • ResourceManager Improvements, disponible en System.Resources, se ha mejorado el gestor de recursos para facilitar la búsqueda de archivos de recursos independientemente de la cultura actual de la interfaz de usuario.
  • Compression Improvements, se han mejorado los algoritmos de comprensión disponibles en System.IO.Compression a través de unos mejores ratios de comprensión y posibilitando comprimir streams de más de 4 GB.
  • String Security Changes, las sobrecargas por defecto de algunos métodos  de System.String (StartsWith, EndsWith, IndexOf y LastIndexOf) se han cambiado para que sean agnósticos a la cultura por defecto. Además, se ha modificado ToUpper y ToLower para usar la cultura invariant en lugar de la actual.

Además de todas estas novedades, el equipo del BCL está pensando en otra serie de novedades tal y como podréis leer en este enlace.

noviembre 30, 2008

XAMLX & XAML: Adiós a XOML!

Archivado en: General — Juan Carlos González Martín @ 21:55

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.

noviembre 3, 2008

S+S: Windows Services Connector!

Archivado en: General — Juan Carlos González Martín @ 23:09

Como os comentaba en el último post relativo al PDC 2008, muchas fueron las novedades y anuncios realizados por Microsoft, algunos de los cuáles han pasado inadvertidos, pero son muy importantes en cuanto al futuro de varias plataformas y tecnologías de Microsoft. Una de estas novedades dentro de la estrategia S+ S de Microsoft es el Microsoft Services Connector, del que tenemos disponible una primera CTP, y que se trata de un componente de Windows Server® que permite conectar a usuarios de Directoria Activo (AD) a una serie de servicios de Live y de Microsoft Online Services (como Microsoft Dynamics CRM Online). Por lo tanto, este conector permite que los usuarios de nuestro DA puedan acceder de manera transparente a los servicios comentados como si estuvieses accediendo a servicios propios de la organización.

Microsoft Services Connetor deja en manos del cliente el control total de los usuarios y de las cuentas de usuario.

image

Más recursos sobre Microsoft Windows Services Connector:

junio 27, 2008

WSS 3.0 & MOSS: Configuración de los Alternate Access Mappings (II)!

Archivado en: General — Juan Carlos González Martín @ 22:36

Hace un par de semanas os comentaba que en SharePoint tenemos la posibilidad de definir rutas de acceso alternativas a la que por defecto tenemos disponible al crear una web application y un site collection de SharePoint (WSS 3.0 o MOSS). Como os comentaba, la clave de definir rutas alternativas en SharePoint está en las rutas de acceso alternativo de SharePoint. La idea de este post es comentaros como configurar las rutas de acceso alternativo (alternate access mappings) en una máquina que tiene instalado SharePoint y que si tiene un DNS definido.

Añadiendo un nuevo host a nuestro DNS

Lo primero que vamos es añadir un nuevo host a nuestro DNS, lo que nos permitirá definir una ruta de acceso alternativo a nuestros sitios de SharePoint y en base al dominio que tengamos establecido (y para el que tendremos definidas las correspondientes relaciones de confianza, si bien podríamos crear nuestras propias zonas mediante la consola de gestión de DNS):

  • Abrimos la consola de gestión de DNS (dnsmgmt):
  • Expandimos la sección Forward Lookup Zones, y seleccionamos la que se corresponde con el dominio que tengamos establecido (en mi caso LITWAREINC.COM).
  • Hacemos clic con el botón derecho y marcamos la opción New Host (A).
image image  

image

  • Especificamos el nuevo Host Name (en este caso intranet) que vincularemos al dominio y la dirección IP de la máquina (en este caso localhost, es decir, 127.0.0.1).
  • Repetimos el proceso para añadir un Host Name denominado Extranet.
image image  

image

Con esto ya conseguiríamos que el navegador de nuestra máquina entendiese las direcciones intranet.litwareinc.com y extranet.litwareinc.com. Ya sólo nos falta que al poner dicha direcciones en el navegador, seamos redirigidos a nuestro sitio de SharePoint.

Configurando los alternate access mappings

Como ya explicamos en el post anterior, las rutas de acceso alternativo de WSS 3.0 & MOSS se configuran desde la administración central de SharePoint:

  • A través de la pestaña Operations de la administración central de SharePoint, sección Global Configuration podemos acceder a la sección Alternate access mappings.
  • Aquí podremos ver todas las rutas de acceso alternativas que tenemos para las web applications de nuestra máquina.
image image
  • Para añadir una nueva ruta de acceso alternativo para una cierta web application, simplemente pulsamos sobre Edit Public URLs. En la página Edit Public URLs Zone seleccionamos la url de la web application deseada.
  • Como vemos en esta página, tenemos la posibilidad de definir otras cuatro URLs, además de la que por defecto hemos creado al definir la web application, para habilitar el acceso a nuestra web application. Cada zona está pensada para los 4 escenarios típicos de acceso a una web: Intranet, Internet, Custom y Extranet.
  • Configuramos la zona Intranet con ruta que añadimos en el host creado para la Intranet en la configuración del DNS.
  • Repetimos el proceso para la zona Extranet.
  • Guardamos la nueva configuración.
image image

Sin más, abrimos nuestro navegador y ponemos http://intranet.litwareinc.com:90 o http://extranet.litwareinc.com:90, podremos comprobar que las nuevas ruta están plenamente operativas:

image image  

image

Y hasta aquí la segunda parte de configuración de los Alternate Acces Mappings de SharePoint, cuando disponemos de un DNS. Este post se lo dedico a mi compañero Pablo Sousa, que es dentro del CIIN quien domina más SharePoint a nivel de administración. Espero que el post os haya resultado interesante.

mayo 29, 2008

ADO.NET EF: …enredando y más ejemplos (I)

Archivado en: General — Juan Carlos González Martín @ 22:59

En el último post sobre ADO.NET EF & LINQ To SQL os hablaba de que ya había algún ejemplo concreto para la Beta1 del SP1 de Visual Studio 2008. En concreto os hablaba del ejemplo ADO.NET Entity Framework Query Samples que está disponible en MSDN Code Gallery. El caso es que el equipo de ADO.NET nos comenta en una de sus últimas entradas que se han actualizado todos los ejemplos que había para ADO.NET EF a la Beta1 del SP1 de Visual Studio 2008. Entre los ejemplos actualizados, y que tendré que probar, está la herramienta eSqlBlast de la que os hablé hace tiempo y que me pareció espectacular…pero analizando un poquillo ADO.NET EF Query Samples, he podido comprobar que tal y como se comenta en la página del proyecto es una interesante herramienta de aprendizaje y de pruebas de los distintos tipos de consultas que podemos realizar contra un modelo de ADO.NET EF.

ADO.NET Entity Framework Query Samples

Una vez descargado el proyecto, y tras retocar la cadena de conexión a la BD NorthwindEF del App.Config, no basta con compilar y ejecutar la aplicación para empezar a probarla. La aplicación contempla tres grandes secciones:

image

  • Entity SQL over ObjectQuery<T>, que nos permite definir consultas utilizando servicios del objeto. Esta alternativa permite devolver estructuras de información del EDM a través del método CreateQuery asociado al objeto ObjectContext (y que implementa una interfaz de tipo ObjectQuery<T>), que acepta una instrucción eSQL o LINQ To Entities con parámetros que define una consulta que recuperará una cierta lista de entidades.
  • LINQ To Entities, que nos permite definir consultas LINQ contra el Entity Data Model definido. LINQ To Entities que nos dota de toda la potencia y capacidades de LINQ sobre ADO.NET Entity Framework, así como funcionalidad de ORM (Object Relational Model), de manera que los desarrolladores pueden materializar sus entidades en tipos del CLR y programar de forma más sencilla contra el EDM y la base de datos.
  • Query Builder Method, que se asienta en la capacidad que da la clase ObjectQuery para definir de forma más flexible consutas de LINQ To Entities o Entity SQL contra el EDM. Otro punto muy importante de ObjectQuery es que implementa una serie de query builder methods que facilitan la construcción de consultas de forma equivalente a lo que podemos hacer con eSQL.
image image  

image

Para cada tipo de consulta no sólo veremos su implementación en C# y el resultado, sino también la traducción interna que hace de la sentencia LINQ y el comando T-SQL (por si había dudas, la consulta que he probado en el ejemplo ya tiene su complejidad) que se envía a la BD.

image image

Cómo veis, ADO.NET EF Query Samples es una aplicación realmente pensada para agilizar el aprendizaje de distintas formas de realizar consultas a EDM’s.

Enredando un poquillo con ADO.NET EF

Para finalizar el post, os voy a contar algunas cosas que he podido probar de ADO.NET EF en la versión Beta1 del SP1 de Visual Studio 2008. Algunas de estas cosas ya nos las anticipo Unai en este post:

  • Nuevo diseñador, más ligero y funcional:
ADO_NET_EF_SP1_2 ADO_NET_EF_SP1_3  

ADO_NET_EF_SP1_4

  • Los ficheros de metadatos ya no aparecen físicamente en el directorio bin, sino que forman parte del ensamblado:

ADO_NET_EF_SP1_5

Además de esto, otra aspecto interesante que he intentado probar pero que no hay manera (no se la razón) es como llamar a un procedimiento almacenado…como esto espero contarlo en el próximo post, sólo os diré que una de las formas es mapeando el SP definido en la capa storage a una función importada en la capa conceptual…y hasta aquí puedo leer ;)

ADO_NET_EF_SP1_6 ADO_NET_EF_SP1_7  

ADO_NET_EF_SP1_8Y hasta aquí llega lo que os quería contar hoy sobre ADO.NET EF. Espero que el post os haya resultado interesante.

marzo 5, 2008

Microsoft Office Live Workspace: Por fin!

Archivado en: General,Office Live,SharePoint — Juan Carlos González Martín @ 23:19

Aunque fue ayer a través de un comunicado de prensa cuando Microsoft anunció la disponibilidad pública a nivel mundial de la Beta 1 de Office Live Workspace, no ha sido hasta hoy cuando me he enterado después de ver que en mi cuenta de correo tenía el siguiente mensaje: Your workspace is ready!…Nada más leerlo, me he puesto a probarlo…y para los que os animéis a experimentar, no tenéis más que acceder a Office Live Workspace. Lo primero que hay que hacer es completar el proceso de sign-up iniciado previamente (en mi caso hace 3 meses), tras aceptar las condiciones del contrato, por fin aparece el citado Workspace:

image

…lógicamente me dije, no nos vamos a quedar aquí y vamos a probar algunas de las cosillas que ofrece y que prometen (Por cierto, la plataforma huele mucho a mi querido SharePoint ;) ). Empecemos:

Crear un nuevo elemento

A través de la opción New podemos crear una serie de elementos típicos del espacio: Notas, Listas, Listas de Tareas, Listas de Eventos, Listas de contactos y documentos Word, Excel y PowerPoint. Vamos a elegir la creación de un documento de tipo Word…¿qué pasará?…no todo iba a ser tan fácil, lo primero que se recomienda es instalar es un update para Microsoft Office Live Workspace (no pasa nada, estamos en Beta1 :) ). Pues nada, descargamos la actualización y lo instalamos (por cierto, es una descarga de 20. 4 MB).

image image

image

Una vez instalada la actualización (que por cierto tarda lo suyo…se instalan unos cuantos hotfixes por el camino…y hay que reiniciar el PC, pero merece la pena por probar Office Live Workspace), probamos de nuevo indicando en este caso que ya tenemos instalado el update anterior y aceptando el aviso de seguridad correspondiente, con lo que a continuación se abre nuestro amigo Microsoft Office Word…hasta aquí todo va bien y esto parece mucho a SharePoint como ya os comentaba :) …Guardamos el documento para ver que pasa…le cuesta, se cuelga Word…mmm, vamos a darle tiempo…por fin aparecen las credenciales de Windows Live para poder guardar el documento en el Workspace…bien!…tras introducir las credenciales y esperar de nuevo un tiempo (mi módem Vodafone a veces no está para dar muchas alegrías :P PP), se empieza a visualizar la ventana de guardar documento, con la opción de poder guardarlo en el Workspace:

image image  

image

Hasta aquí todo bien, pero…¿se habrá guardado el documento realmente en el Workspace? Para salir de dudas, nos vamos al navegador…y ahí está…impresionante:

image

Una vez creado el documento, podremos hacer con el las típicas operaciones de moverlo entre workspaces, compartirlo o borrarlo…y por encima de estas funcionalidades, visualizar el documento directamente en el Workspace…fijaros en como queda…cool!!!!!

image

A nivel de documento, podremos editarlo en Microsoft office Word, añadirle comentarios, compartirlo o guardarlo en el historial de versiones

Crear un nuevo Workspace

Lo siguiente que he probado, y aquí lo dejo en cuanto a que nos permite hacer el Workspace, es la funcionalidad de creación de un nuevo Workspace para compararlo con la creación de Site Collections y Sites de SharePoint en cuanto a como se realiza el proceso y el tipo de plantillas disponibles…y la verdad es que hay unas cuantas plantillas (un total de 12)…en mi caso he escogido la Meeting Workspace…una vez que el proceso acaba, el resultado no es tan espectacular como esperaba (no huele tanto a SharePoint :P PPP) puesto que la plantilla base en si es la misma, pero incluye una serie de documentos tipo y elementos (lista de asistentes) que se consideran como típicos en un espacio de tipo Meeting…supongo que conforme siga evolucionando la plataforma esta plantilla y otras se irán enriqueciendo..pero como dije, Office Live Workspace promete y mucho.

image image

image

Y lo último Microsoft Office Live Add-In

Esto si que es lo último que pruebo, el Microsoft Office Live Add-In que permite integrar los clientes Office con Office Live Workspace…tras instalarlo (está disponible en el propio Workspace, y la instalación es bastante sencilla), y abrir Microsoft Office Word 2007, los añadidos que tenemos son los siguientes:

  • Open from Office Live
  • Save to Office Live

image

Y hasta aquí las primeras pruebas de Office Live Workspace…no se, pero me da a mi que voy a utilizar bastante estas funcionalidades :P PPP. Espero que el post os haya resultado intersante.

marzo 2, 2008

Extensibilidad de LINQ: LINQ Flavours!

Archivado en: .NET Framework 3.5,General,LINQ — Juan Carlos González Martín @ 11:59

Como sabéis, una de las grandes novedades de Visual Studio 2008 y de .NET Framework 3.5 es el Language Integrated Query (LINQ) que habilita la definición de consultas integradas en el lenguaje de programación y es una de las piedras angulares de las nuevas versiones de C# y VB. Precisamente, muchas de las innovaciones que se han introducido en estas nuevas versiones son la base de LINQ, y el resumen de las mismas es el siguiente:

image 

Ahora bien, además de apoyarse en estas innovaciones, LINQ define un modelo ampliable y extensible para definir nuestras propias consultas o API’s de consulta, de manera que podemos ir más allá de las extensiones para LINQ que por defecto vienen con Visual Studio 2008, .NET Framework 3.5 y ADO.NET Entity Framework:

image
  • LINQ To Objects y LINQ To XML para trabajar con fuentes de datos no relacionales.
  • Para ADO.NET tenemos:
    • LINQ To Datasets
    • LINQ To SQL
    • LINQ To Entities

Tras esta pequeña introducción, la idea de este post es hacer una recopilación y recorrido por las extensiones que para LINQ se han ido creando durante los últimos dos años, algunos de los cuales presentó Octavio Hernández en su charla dentro del lanzamiento de Visual Studio 2008, SQL Server 2008 y Windows Server 2008 (me hubiera gustado estar en el evento y asistir a esta charla).. Empecemos.

Proveedores de LINQ Personalizados

Como comentábamos, LINQ es un modelo completamente extensible y aquí están algunas de las extensiones que he ido descubriendo cuando he preparado seminarios de LINQ, en los propios cursos de LINQ,…

IEnumerable<T> data = …;
var q = from x in data.AsParallel() where p(x) orderby k(x) select f(x);
foreach (var e in q) a(e);
  • CLINQ (que no es Continuous LINQ, proyecto en Codeplex que he descubierto esta tarde…), en este caso nos referimos al proyecto CLINQ que Tomas Petricek, MVP de C#, inició para que el lenguaje C++ tuviese soporte para LINQ (de hecho, cualquier lenguaje que soporte la CLS puede añadir sus propias implementaciones de LINQ). Por ejemplo, mediante las extensiones desarrolladas por Tomas para C++, la consulta a una BD en C++ quedaría:
// create connection to database 
NorthwindData db(".. connection string .."); 

// declare database query 
Expr<Customers^> cvar = Var<Customers^>("c"); 
CQuery<String^>^ q = db.QCustomers 
  ->Where(clq::fun(cvar, cvar.City == "London")) 
  ->Select(clq::fun(cvar, 
      cvar.ContactName + Expr<String^>(", ") + cvar.CompanyName)); 

// execute query and output results 
for each(String^ s in q->Query) 
  Console::WriteLine(s);

Tomas ha creado una sección en Codeplex dedicada a extensiones para LINQ. De momento está incluido CLINQ, pero según el autor, poco a poco irá añadiendo alguna más.

  • LINQ To SharePoint, como no podía ser de otro modo, existe desde hace tiempo un proveedor de LINQ específicamente pensado para realizar consultas contra listas de SharePoint usando sintaxis LINQ. Esta extensión tiene su sección correspondiente en Codeplex, y además de habilitar consultas LINQ, dispone de una herramienta de creación de clases sobre las que definir consultas a partir de listas de SharePoint: SpMetal (misma idea que el SQLMetal de LINQ To SQL). Actualmente en Codeplex tenemos disponble la versión v0.2.4.0 alfa preparada para .NET Framework 3.5 y Visual Studio 2008. Un ejemplo de uso de esta extensión es el siguiente:
var ctx = new SharePointDataContext(new Uri(http://fileserver));
ctx.Credentials = new NetworkCredential(“dimitri”,”LinqToSharePoint”);

var books = ctx.GetList<Books>();

var res = from b in books
select new { b.Title, b.Author};

foreach (var u in res)
Console.WriteLine(u);

  • LINQ To Amazon, en este caso se trata de una extensión creada por uno de los autores del libro LINQ in Action, Fabrice Marguerie, que permite consultar libros de Amazon mediane LINQ. De hecho, esta extensión permite consultas LINQ contra un cierto catálogo de libros, obteniendo las estructuras XML que devuelven los servicios web de Amazon. Un ejemplo de uso de esta extensión sería el siguiente:
var query =
  from book in new Amazon.BookSearch()
  where
    book.Title.Contains(“ajax”) &&
    (book.Publisher == “Manning”) &&
    (book.Price <= 25) &&
    (book.Condition == BookCondition.New)
  select book;

var sequence = query.ToSequence();

  •  LINQ To NHibernate, esta extensión permite escribir consultas LINQ que son posteriormente traducidas a Criteria Queries que son ejecutadas por un objeto de Sesión NHibernate. Todo el código de este proyecto está accesible en este enlace…y aunque un poco fuera de tópico, fijaros en la sorpresa que os encontraréis si entráis en la página principal Hooked on LINQ: LINQ Reference Stuff…pero fijaros en el formato ;) :
Image Image

        Desde luego, las tazas son “molonas”, creo que me las voy a pedir por esto y porque merece la pena darle soporte a Hooked on LINQ. Están realizando un excelente trabajo.

  • DbLINQ Project, se trata de un proyecto en Code2Code en el que podéis encontrar las bases de un proveedor LINQ para bases de datos Oracle, MySQL y PostgreSQL. Como se comenta en la página del proyecto DbLINQ, se garantiza que las consultas simples funcionarán sin problemas, aunque no las complejas…precisamente la disponibilidad del código habilita que los desarrolladores puedan testear bien estas extensiones y evaluar, extender y corregir el comportamiento del proveedor al modelar consultas complejas. Las releases del código están en este enlace. Todo el proyecto se está desarrollando bajo licencia MIT para ser compatible con el proyecto Mono.
  • LINQ To LDAP, se trata de un proveedor capaz de enviar consultas LINQ a un directorio activo sobre LDAP partiendo de las expresiones de filtrado en LDAP que aparecen en la RFC 2254. Un ejemplo de uso de este proveedor creado por Bart de Smet’s es el siguiente:
var users = new DirectoryObject<User>(new DirectoryEntry(“LDAP://localhost”), SearchScope.Subtree);
var groups = new DirectoryObject<Group>(new DirectoryEntry(“LDAP://localhost”), SearchScope.Subtree);
var res1 = from usr in users select usr;
Console.WriteLine(“QUERY 1n=======”);
foreach (var w in res1)
     Console.WriteLine(“{0}: {1} {2}”, w.Name, w.Description, w.PasswordLastSet);
     Console.WriteLine();
var res2 = from usr in users where usr.Name == “A*” select usr;
Console.WriteLine(“QUERY 2n=======”);
foreach (var w in res2)
    Console.WriteLine(“{0}’s full name is {1}”, w.Name, w.Dn);
    Console.WriteLine();
  • LINQ To TFS, esta nueva extensión creada por Octavio Hernández,y de la que tuve conocimiento a raíz del post de Octavio, la podemos encontrar en Codeplex y se trata de un proveedor de LINQ preparado para consultar el repositorio de Team Foundation Server en el que se hace el almacenamiento y control de versiones de Work Items.
  • LINQ To Flickr, esta extensión al estilo de LINQ To Amazon permite consultar fotografías de Flickr por tag, fecha de creación, identificador de usuario o título. El autor de esta extensión es el egipcio

    Mohammed Hossam El-Din.

  • LINQ To JSON, se trata de una extensión para JSon.NET que permite crear y consultar objetos JSON mediante consultas de LINQ. Su creador es James Newton, y esta extensión permite trabajar con objetos JSON de manera similar a como LINQ To XML permite manipular estructuras XML.
JObject o = JObject.FromObject(new

{

  channel = new

  {

    title = “James Newton-King”,

    link = “http://james.newtonking.com”,

    description = “James Newton-King’s blog.”,

    item = from p in posts orderby p.Title

         select new

        {

          title = p.Title,

          description = p.Description,

          link = p.Link,

          category = p.Categories

        }

  }

});

  • BLINQ, en este caso no se trata de una extensión en sí, sino de una herramienta (descontinuada) que permite generar sitios ASP.NET para visualizar, crear y manipular datos obtenidos mediante LINQ a partir de un cierto esquema relacional.

Y como podéis ver en este recopilatorio Hosam Kamel, el listado completo de proveedores de LINQ que podemos encontrar en la red es este:

  • LINQ to Amazon.
  • LINQ to Active Directory.
  • LINQ to Bindable Sources (SyncLINQ).
  • LINQ to CRM.
  • LINQ to Geo – Language Integrated Query for Geospatial Data.
  • LINQ to Excel
  • LINQ to Expressions (MetaLinq).
  • LINQ to Flickr.
  • LINQ to Google.
  • LINQ to Indexes (LINQ and i40).
  • LINQ to IQueryable.
  • LINQ to JSON.
  • LINQ to LDAP.
  • LINQ to NHibernate.
  • LINQ to JavaScript.
  • LINQ to Lucene.
  • LINQ to Metaweb(freebase).
  • LINQ to MySQL, Oracle and PostgreSql (DdLINQ project).
  • LINQ to RDF Files.
  • LINQ to Sharepoint.
  • LINQ to SimpleDB.
  • LINQ to Streams.
  • LINQ to WebQueries.
  • LINQ to WMI.
  • LINQ to XtraGrid.

Está claro que el título del post de Hosam, LINQ To Everything, es muy apropiado.

Creación de proveedores de LINQ personalizados

Además de las extensiones comentadas, cualquier desarrollador puede crear las suyas propias. De hecho, estos son algunos ejemplos que muestran como habría que proceder:

  • Escribir un proveedor personalizado desde cero: en esta entrada tenéis un ejemplo.
  • Escribir proveedores personalizados partiendo del proyecto LINQExtender de Codeplex. El ejemplo en este caso está aquí.

Nota: Ambos ejemplos han sido realizados por Mehfuz Hossain.

…¿y existe LINQ fuera de la plataforma Microsoft? Buena pregunta, y la respuesta es que sí. De hecho, en el mundo Java ya ha aparecido LINQ for Java o Quaere. Como se comenta en este post, Quaere is a DSL que añade sintaxis de consultas tipo SQL en el desarrollo de aplicaciones Java basándose en el modelo del proyecto LINQ ;) …como muestra, un pequeño ejemplo de Quaere:

Integer[] numbersA = {0, 2, 4, 5, 6, 8, 9}; Integer[] numbersB = {1, 3, 5, 7, 8}; Iterable<Variant> pairs =    from("a").in(numbersA).from("b").in(numbersB).where(lt("a", "b")). select(create(property("a"),property("b"));

Sin más, hasta aquí llega este post en el que he intentado reflejar la extensibilidad de LINQ. Espero que os haya resultado interesante.

Página siguiente »

Tema Rubric. Blog de WordPress.com.

Seguir

Get every new post delivered to your Inbox.