Siguiendo el post de César del 11 de marzo sobre el evento de Microsoft “The Evolution Show (Lanzamiento Windows Server 2008, Visual Studio 2008 y SQL Server 2008)” celebrado hace ya casi un mes, os comento algunas de las novedades que nos proporcionará Katmai (el codename o frikinombre de SQL Server 2008).
A día de hoy lo que tenemos disponible es la sexta CTP. Algunas de las fabulosas nuevas funcionalidades que enumeramos más abajo no estarán disponibles hasta el verano que es cuando se supone que se publicará la RTM, la supuesta versión final.
Microsoft se esfuerza en destacar las siguientes de entre las nuevas características de SQL 2008:
-
Uso de una sintaxis consistente para consultar diferentes conjuntos de datos…
Es decir, LINQ, que en verdad fue una de las estrellas del evento en lo que a desarrollo se refiere.
-
Mapeo de estructuras de datos a entidades de negocio usando ADO .NET Entity Framework (ahora mismo en beta 3).
Este framework incluirá LINQ To Entities que se unirá al resto de “sabores” de LINQ disponibles desde la salida de .Net Framework 3.5 en noviembre de 2007.
-
Extensión de las posibilidades de almacenamiento de datos con los nuevos tipos de datos geométricos, geo-espaciales y de contenido no estructurado.
- SQL Server 2008 Compact Edition y Synchronization Services para el desarrollo de aplicaciones de movilidad y otras soluciones con capacidades de almacenamiento de datos on-line y off-line.
En lo que se refiere al primer punto nos hartamos de presenciar demos con diferentes formas de consumir datos de fuentes heterogéneas (BDs relacionales, .Net DataSets, XML Documents, colecciones, objetos en memoria…) y de cómo construir aplicaciones con sus clásicas tres capitas atacando a SQL Server (LINQ To SQL) con muy pocas líneas y en cuestión de minutos. Microsoft apuesta fuerte por LINQ y sus capacidades son muchas y variadas, pero todo esto sería materia de otro post.
LINQ Project “Home” Page
101 LINQ Samples
ADO .NET Entity Framework tiene muy buena pinta, demasiado buena. Su objetivo no es sólo ser un ORM, incluirá LINQ to Entities como tal, sino proveer de toda una serie de servicios de consulta y reporting. Se trata de resolver la diferencia de visión entre los mundos relacionales y orientados a datos (lo que alguien ha bautizado poéticamente Object-Relational impedance mismatch), de abstraerse de la forma en que los datos son almacenados y preocuparse sólo de consumirlos.
MSDN Overview
Anatomy of the ADO .NET Entity Framework .pdf
CodePlex Samples
La inclusión de contenido no estructurado como un nuevo tipo de dato tiene también posibilidades muy interesantes. Hasta ahora las opciones se reducían a almacenar estos contenidos en BLOBs, o en el File System guardando en tabla sus correspondientes apuntadores, rutas o la forma de acceder a ellos. Con el nuevo tipo FILESTREAM este contenido se guarda también en un sistema de ficheros pero podemos tratarlo como un campo más en nuestras consultas ocupándose el motor de base de datos de la transaccionalidad, de su inclusión en las políticas de back-up y de las mismas posibilidades de gestión de los datos de cualquier otro campo. Claro que esto no es más que una abstracción, ya que T-SQL seguirá usando BLOBs para acceder a estos contenidos y que la API de Win32 también tiene acceso a los ficheros donde se guarden estos datos no estructurados.
SQL2008UnstructuredData.doc
También tuvimos ocasión de ver en acción los nuevos tipos GEOMETRY para datos espaciales planos y GEOGRAPHY para datos espaciales geodésicos y unas cuantas funciones para manipularlos de diferentes formas y ejecutar operaciones aparentemente complejas. En concreto poder obtener la distancia entre Madrid y Melbourne con una simple llamada a una función en la lista de campos de una sentencia select o recalcular y visualizar en un mapa el contorno de las aguas territoriales de Australia con un tiempo de respuesta razonable parece bastante espectacular, sobre todo para quien trabaje con mapas.
SpatialData.doc
Como digo al principio, esto no es más que una breve puntualización de lo que hemos podido ver en directo y con un sesgo claramente desarrollador, pero SQL Server 2008 incorpora una gran cantidad de novedades para administración y sobre todo para Business Intelligence que pueden ser de igual o mayor interés.
Como últimos apuntes señalar la enorme utilidad del Intellisense LINQ, que nos ayuda, en tiempo de diseño, a evitar errores en la sintaxis de las sentencias de consulta chequeando tipos y deletreo de campos. Por cierto, que para habilitar esto LINQ tiene la curiosa exigencia de poner la clausula from en primer lugar.
Y, por fin, también tenemos Intellisense en el editor de consultas lo cual era largamente demandado por desarrolladores SQL, que tenían que instalarse o usar complementos y herramientas de terceros del estilo SQL Prompt de RedGate o TOAD. Claro que sólo funciona para las sentencias SELECT y siempre que hayas escrito el from antes.