martes, septiembre 13, 2005

Language Integrated Query Framework - LINQ Project

Algo emocionante fue cuando vi a las 2 personas que más admiro, Anders Hejlsberg y Don Box juntos. Anders Hejlsberg se presentó en el Keynotes de PDC para anunciar el nacimiento del proyecto LINQ (LINQ Project), Language Integrated Query. Algo que he estado esperando hace muchos meses. Después salió Don Box y Chris para hablar de Indigo, luego Scout habló de Atlas.

Language Integrated Query - LINQ Project
Las aplicaciones modernas operan en datos de diferentes formas:
Tablas relacionales, documentos XML, y objetos en memoria, cada uno de estos dominios pueden tener profundas diferencias en semántica, tipos de datos, y capacidades, y mucha de la complejidad en las aplicaciones de hoy es el resultado de estas incompatibilidades.
La siguiente versión a Visual Studio .NET 2005, conocida con el nombre de desarrollo ORCAS, tiene el objetivo de unificar los modelos de programación a través de la potencialidad del “Integrated Query” en C# y por ende en Visual Basic o los demás lenguajes de programación soportados por el .NET Framework (no en un 100%), un framework de acceso a datos fuertemente tipado, y un API novedoso para manipular y consultar XML.
Esta sesión se introduce a cada una de estas áreas y guía a través de cómo se relacionan.

Cuando XQuery estaba todavía programada para ser enviada con Visual Studio .NET 2005, algo llamado Common Query Architecture, se supuso que había sido incluido en Visual Studio .NET 2005. Esto incluía al Query Instruction Language(QIL), en el cual las expresiones XPath, XQuery, vistas XSLT y XML son compiladas abajo y la cual se alimenta más adelante en el Common Query Runtime (CQR) para la optimización y generación adicional de MSIL y código de maquina. Notar el parecido al MSIL y al CLR.

Michael Brundage, quien inventó el Common Query Runtime, manifiesta que hace el CQR para los lenguajes de consulta XML lo que el CLR hace para los lenguajes de programación tradicionales. Proporciona una infraestructura rica, común para compilar y ejecutar consultas XML y ver la definición del lenguaje. Parecido al CLR, el Common Query Runtime (CQL) tiene compiladores para cada lenguaje de consulta XML (como XSLT y XQuery), un formato intermedio común (QIL) y múltiples motores de ejecución (Sobre XML y SQL)

El Common Query Runtime es implementado en el namespace System.Xml.Query y está planeado ser liberado en Visual Studio .NET 2005, SQL Server 2005 y Windows Vista.

Relational schema format: un abstracto de la patente:
Donde se refiere al mapeo, el esquema RSD es una vista lógica de los metadatos requeridos para realizar mapeos eficientes y proporcionar lo siguiente:
Suficientes metadatos sobre el dominio relacional para permitir a los motores CQR (Common Query Runtime) generar y/o ejecutar eficientemente operaciones de CRUD (Create, Read, Update, y Delete) contra la base de datos basadas en las acciones realizadas en el dominio de objetivo, fácilmente legible, fácilmente editable. La capacidad de dividir el archivo RSD en segmentos para mejorar la flexibilidad y para permitir extensiones lógicas al esquema relacional, y capacidad de describir cualquier base de datos relacional ANSI.
Cuando la consulta es presentada a través de por ejemplo XML, el motor CQR (Common Query Runtime) compila la consulta en IQL (Query Instruction Language), la optimiza, y genera sentencias SQL que se ejecutan contra la base de datos.

- Articulo relacionado: Entrevista a Anders Hejlsberg, del pasado, presente y futuro del lenguaje C#
- Articulo relacionado: El LINQ Project - FAQ