27/10/2008. Investigación L.A.C.A. BIENVENIDOS. 3 de Junio de 2008 Buenos Aires. Guillermo Defino Células UAI. http://uaicel.uai.edu.

Documentos relacionados
Programación de Objetos.Net C# LDP / DUOC-AV

Prólogo del autor... xv. Agradecimientos... xvii. Parte 1. Métodos anónimos... 3

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

Resultados de Aprendizaje

Capa de Persistencia y Acceso a Datos con ADO.NET Entity Framework

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Funcionalidad del lenguaje integrado de consultas (LINQ), con ejemplos en Visual Basic.NET

ADO.NET. Arquitectura de ADO.NET

10550 Programming in Visual Basic with Microsoft Visual Studio 2010

Programación en Internet. Proceso selectivo de promoción interna para el acceso a escalas del grupo A, subgrupo A1. Ref. PI-02/12

Oracle 12c DISEÑO Y PROGRAMACIÓN

CURSO DE SQL SERVER 2005

1

Programación en Java. Programación en OO

ADMINISTRACIÓN DE BASE DE DATOS

SQL (Structured Query Language)

Introducción a Microsoft.NET Framework

CONSULTAS DE RESUMEN SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

ST31_Querying Microsoft SQL Server

Programa de actualización profesional ACTI.NET. Desarrollo de Aplicaciones Web con ASP.NET MVC 5.0 y C#

Lenguaje de Consulta Estructurado S Q. Lenguaje de Consulta Estructurado. Wael Najjar /

- Bases de Datos - - Diseño Físico - Luis D. García

Bases de Datos Relacionales

XQuery. Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo. XQuery

PROGRAMANDO BASES DE DATOS PostgreSQL INTRODUCCIÓN INTRODUCCIÓN A LAS BASES DE DATOS (L1)

Presentación 4: ADO.NET

Base de Datos Oracle 10g: Introducción a SQL Código: D Duración: 5 días (40 horas)

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Procedimientos para agrupar y resumir datos

DESCRIPCIÓN ESPECÍFICA NÚCLEO: Núcleo Sector Comercio y Servicios.

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

Repaso de Conceptos Básicos de Bases de Datos

ÍNDICE INTRODUCCIÓN...13

EXPLOTACIÓN DE BASES DE DATOS CON ACCESS

De uno a uno : Ejemplo de una llave primaria a otra llave primaria De uno a muchos : Ejemplo de una llave primaria a una Regular o Foránea.

I.- Objetivo. II.- Introducción

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Convirtiendo arboles de expresión lambda en diferentes strings.

MS_10266 Programming in C# with Microsoft Visual Studio 2010

Como manejador de base de datos elegimos utilizar Absolute Database, que es un

Trainning in.net technology. Formacion.Net Advanced Fernando Lencinas

Nociones de performance

EL LENGUAJE DE BASES DE DATOS SQL (DDL, DML, TRIGGERS Y STORE PROCEDURES)

Fundamentos de Oracle

Célula UABC-Live.net. Universidad Autónoma. de Baja California. Facultad de Ciencias Químicas. e Ingeniería.

Tu Educación en Manos de Profesionales

10776 Developing Microsoft SQL Server 2012 Databases

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Formato para prácticas de laboratorio

50401 Designing and Optimizing Database Solutions with Microsoft SQL Server 2008

8283: Administración y programación en Microsoft SQL Server 2012

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Bases de Datos: Structured Query Language (SQL)

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Oracle básico (IV): Programación en PL/SQL

BASES DE DATOS EN VISUAL BASIC ACCESS + SQL

Entity Framework 6 Para qué sirve?

SQL Server SQL, Transact SQL Diseño y creación de una base de datos (con ejercicios prácticos corregidos)

Microsoft Visual Basic.NET

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

A.1. Definiciones de datos en SQL

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

4994 Introduction to Programming Microsoft.NET Framework Applications with Microsoft Visual Studio 2005

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Base de datos Procedimientos Almacenados y Funciones

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

Microsoft SQL Server 2005

Curso Online de Microsoft

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Índice de contenidos Iniciación a VB.NET Bases de Datos

MANUAL BÁSICO DEL LENGUAJE SQL

TUTORIAL DATA WAREHOUSE SQL Server: ETL Parte II

Índice. iii. Objetivos... 24

SQL Server SQL, Transact SQL Diseño y creación de una base de datos

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

Laboratorio Informix. Stored Procedures Triggers

Curso: Programación con Microsoft Visual C SHARP 2010.

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

Acceso a Base de Datos

Java Inicial (20 horas)

Parte III. Características del proyecto. Web corporativa. Aplicación gestión. Comandas. Gestión cocina.

Unidad. Lenguaje SQL. (Structured Query Language)

GALA. ADO Modo Conectado. Modelo de Base de Datos Relacional. m018a Curso Manejo de Datos con Visual Basic 2010, 24 h

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados

ADMINISTRACION DE BASES DE DATOS EN ORACLE

DIPLOMADO SQL SERVER 2012

MS_20461 Querying Microsoft SQL Server

Querying Microsoft SQL Server 2012

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

BASES DE DATOS AVANZADAS Transacciones en MYSQL

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

FUNCIONES EN SQL SERVER

Consultas con combinaciones

8 SQL SERVER 2008 RA-MA

XPERTO EN DISEÑO DE PÁGINAS WEB

Guía de Laboratorio Base de Datos I.

Transcripción:

Investigación L.A.C.A. BIENVENIDOS 3 de Junio de 2008 Buenos Aires Guillermo Defino Células UAI http://uaicel.uai.edu.ar/ 1

Un problema práctico 5 Stored Procedures Sistema Objeto Recursos DataAccess Agenda Qué es LINQ Standard Query Operations DLINQ Conclusiones 2

Qué es LINQ? La programación hoy en día Desarrollo Orientado a Objetos Datos en tecnologías no OO. Distintos entornos de Desarrollo No Intellisense, late bound, verbose T-SQL vs..net Framework Impedance Mismatch Database World Transactions Nulls - 3-value logic Normalized Data Declarative Queries Transparency Programming World Exception Handling Different nulls Objects Imperative operations Encapsulation The LINQ Project C# VB Others.NET Language Integrated Query Standard Query Operators DLinq (ADO.NET) XLinq (System.Xml) <book> <title/> <author/> <year/> <price/> </book> Objects SQL WinFS XML 3

Arquitectura from c in db.customers where c.city == "London" select new { c.name, c.phone } Application LINQ Query Objects SubmitChanges() DLinq (ADO.NET) Services: - Change tracking - Concurrency control - Object identity SQL Query Rows SQL or Stored Procs select Name, Phone from customers where city = 'London' SQLServer Una consulta hoy en día SqlConnection c = new SqlConnection( ); c.open(); SqlCommand cmd = new SqlCommand( @"SELECT c.name, c.phone FROM Customers c WHERE c.city = @p0" ); cmd.parameters.addwithvalue("@po", "London"); DataReader dr = c.execute(cmd); while (dr.read()) { string name = dr.getstring(0); string phone = dr.getstring(1); DateTime date = dr.getdatetime(2); } dr.close(); Queries entre comillas Argumentos literales Resultados no tipados No hay checkeos en compilación 4

Una consulta con LINQ public class Customer { public int Id; public string Name; public string Phone; } Table<Customer> customers = db.customers; var contacts = from c in customers where c.city == "London" select new { c.name, c.phone }; Clases que describen tablas Las tablas son colecciones El query es nativo del lenguaje Validación en tiempo de compilación En qué esta basado LINQ? En las innovaciones introducidas por C# 2.0 y C# 3.0 5

Objetivos de C# 3.0 Integración de OOP, Relacional y Xml. Basarse en los fundamentos de C# 2.0. Compilar bajo el CLR 2.0 No atar los lenguajes a APIS especificos. Compatibilidad hacia atrás. En qué esta basado LINQ? Innovaciones C# 3.0 Métodos de Extensión Agregar metodos a clases (incluso selladas) Notación de cascada de puntos (tipica en OOP) Fácil de escribir Expresiones Lambda Notación más clara y funcional Se pueden omitir los tipos de datos, se infieren. Puede ser una expresión o una secuencia de sentencias Inicialización de Objetos Ya no es necesario declarar tantas sobrecargas del c tor como inicializaciones posibles hay del objeto. Inicialización de Collections Tipos Anónimos Sirven para el resultado de las querys Inferencia de Tipos Codificación más clara Posibilidad de trabajar con tipos anónimos 6

Expresiones Lambda C#3.0 Una expresión Lambda es una forma más simple de escribir métodos anónimos, en vez de: F f = delegate(int r) { return Math.PI*r*r; }; Escribir: F f = r => Math.PI*r*r; También soporta tipos por inferencia, idéntico a expresiones delegadas. Diferencia trivial, pero comparemos estas dos: Heights (ages, delegate(int a) { return 50+a*0.07; }); Heights (ages, a => 50+a*0.07); Las expresiones Lambda expressions son de Lisp (1960); in fact 1941 Agenda Qué es LINQ Standard Query Operations DLINQ Conclusiones 7

Standard Query Operations Accediendo Objetos con LINQ Expresiones de Consulta con LINQ from id in source { from id in source where condition } [ orderby ordering, ordering, ] select expr group expr by key [ into id query ] Empieza con from Puede contirnuar con un into Seguido de cero o mas from o where (opcional) orderby Termina con un select o con un group by Operaciones de Consulta de LINQ Restricción Proyección Ordenación Agrupación Cuantificación Partición Conjuntos Elementos Agregación Conversion Casting Where Select, SelectMany OrderBy, ThenBy GroupBy Any, All Take, Skip, TakeWhile, SkipWhile Distinct, Union, Intersect, Except First, FirstOrDefault, ElementAt Count, Sum, Min, Max, Average, Fold ToArray, ToList, ToDictionary OfType<T> 8

Una Consulta con LinQ Query Expressions (c#) Queries traducen a invocaciones de métodos Where, Join, OrderBy, Select, GroupBy, from c in customers where c.city == "Hove" select new { c.name, c.phone }; customers.where(c => c.city == "Hove").Select(c => new { c.name, c.phone }); Expresiones Lambda 9

Agenda Qué es LINQ Standar Query Operations DLINQ Conclusiones DLINQ Datos Relacionales con DLINQ Mapeo a través de atributos Mapeo manual o automatico (built-in tool) Persistencia Control de cambios automático DataContext Bases de Datos fuertemente tipadas 10

Caracteristicas Language Integrated Query Checkeos en tiempo de compilación, IntelliSense Sintaxsis tipo SQL Soporte para jerarquias y relaciones Carga de objetos inteligentes Lazy o Inmediata Accediendo a datos relacionales con DLINQ 11

Ejemplos de DLinQ Conectarse a una Base de Datos. private static String connstring=@"attachdbfilename= <blabla>\data\northwnd.mdf'; Server='.\SQLEXPRESS'; Integrated Security=SSPI"; private Northwind db = new Northwind(connString); Northwind es una subclase de DataConnection, especialmente generada por la Base de datos Northwind. Northwind es una Base de Datos de ejemplo usada por Microsoft. DLinQ: from-where-select Consulta var q = from c in db.customers where c.city == "London select c; foreach (var cust in q) Console.WriteLine(cust.CompanyName); Ejecutar q no realiza una consulta a la base de datos. Solo cuando el bucle foreach requiere el resultado de q, la consulta será realizada. 12

Características Updates automáticos Usando optimistic concurrency Transacciones Integradas con System.Transactions Update único con LINQ 13

DLinQ: Update único var q = from c in db.customers where c.customerid == "ALFKI select c; Customer cust= db.customers.first(c=>c.customerid=="alfki"); cust.contacttitle = "Vice President"; db.submitchanges(); Nada ocurre sobre la base actual hasta que db.submitchanges() es llamado. Este lanza una excepción si el registro cust sobre la base ha sido actualizado por otros (optimistic concurrency) Agenda Qué es LINQ Standar Query Operations DLINQ Conclusiones 14

Conclusiones Para más información Data Access and Storage Developer Center: The LINQ Project http://msdn.microsoft.com/netframework/future/linq/ C# 3.0 Hands On Lab LINQ Hands On Lab http://staff.southworks.net/blogs/johnny http://www.ajlopez.net 15

Programas MSDN Desarrollador Cinco Estrellas Estás avanzando en el camino de las estrellas? www.dce2005.com Plan MAS Capacitación gratuita y becas laborales www.microsoft.com/argentina/mas WebCasts en nuestro idioma www.microsoft.com/spanish/msdn/latam/mediacenter/ Grupos de Usuarios, información, y mucho más en MSDN: www.microsoft.com/spanish/msdn/argentina Preguntas 16

Muchas gracias por tu atención Tu potencial. Nuestra pasión. Guillermo Defino Carlos Martínez Maximiliano Eskinja Facundo Bustos Sebastián Luna Miguel Costa http://ilaca. /blogspot.com 17