SlideShare una empresa de Scribd logo
Nuevas Formas de Pensar en Datos con LINQ y Visual Studio 2008Julio CasalSoftware DeveloperJohn Galt Solutions
Qué Veremos Hoy?La filosofía de LINQSintaxis para queries LINQQueries sobre colección en memoryAcceso a bases de datosIntegración XML
Nivel 200Experiencia PreviaC# ó VB IntermedioSintaxis para queries SQLHabilidades XML intermedias
AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
Data…es nuestro trabajoConsultar y manipulardatossiempre ha sidouna parte fundamental de nuestrostrabajoscomodesarrolladoresEl formato de los datos cambia, perolasnecesidades clave son lasmismas
USE empl REPLACE ALL salary WITH (salary * 1.1) FOR supervises > 0  LIST ALL fname, lname, salary FOR Supervises > 0Data Access(DBASE 1980s)La consulta y manipulación de datosesuna pate fundamental de la experiencia en el modelo de programación
Teníalimitaciones, pero era útilAPIs de Acceso a Datos(finales de 1990s/inicios de 2000s)SqlCommandcmd = new SqlCommand( 	@"SELECT fname, lname, salary	      FROM Empl 	      WHERE supervises > @p0");cmd.Parameters.AddWithValue("@po", 0);SqlConnection c = new SqlConnection(…);c.Open(); DataReaderpeople = c.Execute(cmd);  while (people.Read()) {     string fname = (string) people[“fname”];     string lname = (string) people[“lname”];double salary = (double) people[“salary”]; }dr.Close();
Mapeo Objecto / Relacional(en los últimos años)  public class Employee {      public string FirstName;      public string LastName;      public double Salaray;  }IList employees = session.CreateCriteria(typeof(Employee))                               .Add(Expression.Gt(“supervises", 0)                            .List(); foreach(Employee employee in employees) {      string fname = employee.FirstName;     string lname = employee.LastName;     double salary = employee.Salary; }Mapeadatosrelacionaleshacia/desdeobjetos
Integraciónmásclara de reglas de negocio y validacionesPero Aún Existen Retos…Cómotraerdatos no-relacionales?XML, RSS, Web Services, REST, AD, Files, etc.Cómointeractuar con objetosplanos?Cómointeractura y consultarmodelos de dominiopersonalizado?Cómopermitirdarle forma y transformar los datos?Soportar composición flexible de queriesCómopermitiresto con códigolimpio en un mundotantotipificadocomodinámico?
LINQOperaciones de Consultas, Asignación y Transformaciónpara .NETConvierte a la consulta de datos un concepto de programación fundamentalTrabaja con todos los tipos y formas de datosBases de datos relacionalesXMLObjetos PlanosTrabaja con todos los lenguajes .NETLas nuevas versiones de VB y C# tienen soporte integrado en el lenguaje
Queries integrados en el código(C#/VB)Qué es LINQ?Tipos fuertesBeneficios del IntelliSenseColecciones de objectsDatosrelacionalesXMLQueries UnificadosLanguage INtegratedQueries
Términos y CaracterísticasInferencia de TiposTiposAnónimosExpresiones LambdaMétodos de ExtensiónDos sintaxispara queriesQueryExpressionMethodQueries
QueryExpressionsSELECT c.FullName, Age = getdate() – c.BirthDayFROM Customers cWHERE c.BirthDay = getdate()ORDER BY c.BirthDayvar todaysBirthday =	from c in db.Customers	where c.BirthDay == DateTime.Today 	orderby c.BirthDay	select new {		c.FullName, Age = DateTime.Today – c.BirthDay };
demoDe C# 2.0 a  LINQ
AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
LINQ to SQLGeneración implícita de queriesGeneración explícita de queriesSoporte completo a CRUD
Mapeando los DatosFilas como objetos de negocioTablas como coleccionesBases de Datos como DataContextBase de DatosDataContextTablaColección
demoExplorandoLINQ to SQL
AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
Beneficios de LINQ to XMLNo hay barrera conceptual XML vs. codeAprovecha experiencia con DOMFacilita los requerimientos de compatibilidad
Objetos de Ayuda LINQ to XMLXDocumentXNamespaceXCommentXElementXAttribute
demoTrabajando con Datos XML
AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
Nuevas Características de VBDim x = 5Variables locales implícitasMétodos de extensiónInicializadores de objetosTipos anónimosExpresiones de Queries<Extension()> _ Sub Rand (col As IEnumerable)New Point With { .x = 1, .y = 2 }New With { c.Name, c.Phone }From … Where … Select
Beneficios de VB con LINQ to XMLLiterales XMLDim doc = <root><results/></root>If doc.<results>.Count() > 5 Then …Console.WriteLine(<book>.@name)Propiedades XMLNamespaces ImportadosImports <xmlns:ns=http://testuri.org”>
demoTrabajando con XML, VB y ASP.NET
ResumenLINQ habilitaacceso a datosdeclarativoLos queries son ahora parte del lenguajeUnifica acceso a datos entre orígenes de datos
Publicaciones relacionadas con LINQMás en:www.microsoft.com/learning/books
Quieres saber más?Centro de información de LINQhttp://msdn.microsoft.com/data/ref/linqEl blog másdidácticosobre LINQ y VS 2008http://weblogs.asp.net/scottguBlogs de los creadoreshttp://blogs.msdn.com/adonethttp://blogs.msdn.com/dataMi bloghttp://msguayaquil.com/blogs/julioc
Preguntas?
Nuevas formas de pensar en datos con LINQ y Visual Studio 2008

Más contenido relacionado

PPTX
Un Vistazo A Windows Presentation Foundation
PPTX
Reglas de Oro para el Desarrollo con Windows Vista
PPT
SOA en la Práctica: WCF &amp; WSSF
PPT
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
PPT
Rapid Application Development con Visual Studio 2005
PDF
Planificando las bases de una aplicación windows phone
PPTX
5-Unidad 2: Diseño de Vista-2.2 Para Web
PDF
Taller MVVM Imagine Camp Medellín (Intermedio)
Un Vistazo A Windows Presentation Foundation
Reglas de Oro para el Desarrollo con Windows Vista
SOA en la Práctica: WCF &amp; WSSF
VS 2005 Y SQL Server 2005 Juntos Son Aun Mejores
Rapid Application Development con Visual Studio 2005
Planificando las bases de una aplicación windows phone
5-Unidad 2: Diseño de Vista-2.2 Para Web
Taller MVVM Imagine Camp Medellín (Intermedio)

La actualidad más candente (18)

PDF
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
ODP
Introducción a Visual Basic
PPTX
Santiago
PPS
Lanzamiento Visual Studio 2008
PPTX
Cruz soriano
PPSX
Cruz soriano
PDF
Arquitecturas Dirigidas por la Experiencia
PPTX
EQUIPO 2,2A PARTE DE LAS AGUILAS
PPTX
Santiago
PDF
Windows Phone 8 en Campus Party
PPT
Arquitectura java web
PPT
Aplicaciones En Capas
PPTX
Bisual basic 6,0
PPTX
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
PPT
Aspnet Futures Msdn
PPTX
CodeCamp 2010 | FBI- Fácil Business Intelligence
PPTX
[Webinar] SOA ágil con WSO2
PDF
Orquestando Procesos de Negocio de manera ágil con Bonita BPM (v1.0)
Estrategias para desarrollo crossplatform en Windows Phone 8 y Windows 8
Introducción a Visual Basic
Santiago
Lanzamiento Visual Studio 2008
Cruz soriano
Cruz soriano
Arquitecturas Dirigidas por la Experiencia
EQUIPO 2,2A PARTE DE LAS AGUILAS
Santiago
Windows Phone 8 en Campus Party
Arquitectura java web
Aplicaciones En Capas
Bisual basic 6,0
Sesión 10: Desarrollo de Aplicaciones Web Con Web Dynpro & Flex
Aspnet Futures Msdn
CodeCamp 2010 | FBI- Fácil Business Intelligence
[Webinar] SOA ágil con WSO2
Orquestando Procesos de Negocio de manera ágil con Bonita BPM (v1.0)
Publicidad

Destacado (14)

PPTX
SerializacióN Part 2
PPTX
Windows7 Security
PPTX
Propueta educativa de robotica
PPT
IntroduccióN A Visual Studio 2008
PDF
Linq En Visual Basic 2008
PDF
SOA and WCF (Windows Communication Foundation) basics
PPTX
Framework .NET 3.5 10 Linq
PPTX
Analisis propuestageneral
PDF
Inicio de Programación VB .Net
PDF
Introducción a Xamarin Forms con XAML
PDF
NetConfUY: Maximizando la productividad del desarrollo móvil
PDF
Entendiendo el .NET Framework
PPT
Introduccion a LINQ
SerializacióN Part 2
Windows7 Security
Propueta educativa de robotica
IntroduccióN A Visual Studio 2008
Linq En Visual Basic 2008
SOA and WCF (Windows Communication Foundation) basics
Framework .NET 3.5 10 Linq
Analisis propuestageneral
Inicio de Programación VB .Net
Introducción a Xamarin Forms con XAML
NetConfUY: Maximizando la productividad del desarrollo móvil
Entendiendo el .NET Framework
Introduccion a LINQ
Publicidad

Similar a Nuevas formas de pensar en datos con LINQ y Visual Studio 2008 (20)

PPT
Desarrollo en Capas con .Net
PDF
Brochure PEA DE24 (1) de la carrera de Sistemas
PPTX
Text Mining con R en SQL Server 2016
PPT
Introduccion A Linq 1205779028184546 5
PDF
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
PPT
ADO NET Entity FrameWork
PPTX
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
PPTX
Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...
DOCX
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
PPTX
13-Unidad 2. Operaciones Linq
PPTX
PPT
Sql server 2005_envio
PPTX
Linq con visual studio 2008
PDF
Linq to sql 3
PDF
Integración de Datos sin límites con Pentaho
DOCX
Repoteadores De Mysql2
DOCX
Repoteadores De Mysql2
PDF
Sql server integration services novedades y migracion
PPTX
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
PPTX
Arquitecturas y posicionamientos tecnológicos
Desarrollo en Capas con .Net
Brochure PEA DE24 (1) de la carrera de Sistemas
Text Mining con R en SQL Server 2016
Introduccion A Linq 1205779028184546 5
Buenas prácticas de codificación para capas de acceso a datos de aplicaciones...
ADO NET Entity FrameWork
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...
BD_EQ1_INVESTIGACION_APORTACION_SQLSERVER2008EXPRESS_TODOS
13-Unidad 2. Operaciones Linq
Sql server 2005_envio
Linq con visual studio 2008
Linq to sql 3
Integración de Datos sin límites con Pentaho
Repoteadores De Mysql2
Repoteadores De Mysql2
Sql server integration services novedades y migracion
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
Arquitecturas y posicionamientos tecnológicos

Más de juliocasal (8)

PPTX
Productividad en el Equipo de Desarrollo de Software
PPTX
Expression Studio en Acción
PPTX
Escribiendo Código con Visual Studio Team System
PPT
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
PPTX
Creando Interfaces Espectaculares
PPT
Asp .Net Ajax: Patrones
PPTX
Introducción al Desarrollo para SharePoint con Visual Studio 2008
PPTX
Integrando Nuevas Tecnologías Web
Productividad en el Equipo de Desarrollo de Software
Expression Studio en Acción
Escribiendo Código con Visual Studio Team System
Desarrollando Una Mejor Experiencia De Usuario Con Ajax
Creando Interfaces Espectaculares
Asp .Net Ajax: Patrones
Introducción al Desarrollo para SharePoint con Visual Studio 2008
Integrando Nuevas Tecnologías Web

Nuevas formas de pensar en datos con LINQ y Visual Studio 2008

  • 1. Nuevas Formas de Pensar en Datos con LINQ y Visual Studio 2008Julio CasalSoftware DeveloperJohn Galt Solutions
  • 2. Qué Veremos Hoy?La filosofía de LINQSintaxis para queries LINQQueries sobre colección en memoryAcceso a bases de datosIntegración XML
  • 3. Nivel 200Experiencia PreviaC# ó VB IntermedioSintaxis para queries SQLHabilidades XML intermedias
  • 4. AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
  • 5. Data…es nuestro trabajoConsultar y manipulardatossiempre ha sidouna parte fundamental de nuestrostrabajoscomodesarrolladoresEl formato de los datos cambia, perolasnecesidades clave son lasmismas
  • 6. USE empl REPLACE ALL salary WITH (salary * 1.1) FOR supervises > 0 LIST ALL fname, lname, salary FOR Supervises > 0Data Access(DBASE 1980s)La consulta y manipulación de datosesuna pate fundamental de la experiencia en el modelo de programación
  • 7. Teníalimitaciones, pero era útilAPIs de Acceso a Datos(finales de 1990s/inicios de 2000s)SqlCommandcmd = new SqlCommand( @"SELECT fname, lname, salary FROM Empl WHERE supervises > @p0");cmd.Parameters.AddWithValue("@po", 0);SqlConnection c = new SqlConnection(…);c.Open(); DataReaderpeople = c.Execute(cmd); while (people.Read()) { string fname = (string) people[“fname”]; string lname = (string) people[“lname”];double salary = (double) people[“salary”]; }dr.Close();
  • 8. Mapeo Objecto / Relacional(en los últimos años) public class Employee { public string FirstName; public string LastName; public double Salaray; }IList employees = session.CreateCriteria(typeof(Employee)) .Add(Expression.Gt(“supervises", 0) .List(); foreach(Employee employee in employees) { string fname = employee.FirstName; string lname = employee.LastName; double salary = employee.Salary; }Mapeadatosrelacionaleshacia/desdeobjetos
  • 9. Integraciónmásclara de reglas de negocio y validacionesPero Aún Existen Retos…Cómotraerdatos no-relacionales?XML, RSS, Web Services, REST, AD, Files, etc.Cómointeractuar con objetosplanos?Cómointeractura y consultarmodelos de dominiopersonalizado?Cómopermitirdarle forma y transformar los datos?Soportar composición flexible de queriesCómopermitiresto con códigolimpio en un mundotantotipificadocomodinámico?
  • 10. LINQOperaciones de Consultas, Asignación y Transformaciónpara .NETConvierte a la consulta de datos un concepto de programación fundamentalTrabaja con todos los tipos y formas de datosBases de datos relacionalesXMLObjetos PlanosTrabaja con todos los lenguajes .NETLas nuevas versiones de VB y C# tienen soporte integrado en el lenguaje
  • 11. Queries integrados en el código(C#/VB)Qué es LINQ?Tipos fuertesBeneficios del IntelliSenseColecciones de objectsDatosrelacionalesXMLQueries UnificadosLanguage INtegratedQueries
  • 12. Términos y CaracterísticasInferencia de TiposTiposAnónimosExpresiones LambdaMétodos de ExtensiónDos sintaxispara queriesQueryExpressionMethodQueries
  • 13. QueryExpressionsSELECT c.FullName, Age = getdate() – c.BirthDayFROM Customers cWHERE c.BirthDay = getdate()ORDER BY c.BirthDayvar todaysBirthday = from c in db.Customers where c.BirthDay == DateTime.Today orderby c.BirthDay select new { c.FullName, Age = DateTime.Today – c.BirthDay };
  • 14. demoDe C# 2.0 a LINQ
  • 15. AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
  • 16. LINQ to SQLGeneración implícita de queriesGeneración explícita de queriesSoporte completo a CRUD
  • 17. Mapeando los DatosFilas como objetos de negocioTablas como coleccionesBases de Datos como DataContextBase de DatosDataContextTablaColección
  • 19. AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
  • 20. Beneficios de LINQ to XMLNo hay barrera conceptual XML vs. codeAprovecha experiencia con DOMFacilita los requerimientos de compatibilidad
  • 21. Objetos de Ayuda LINQ to XMLXDocumentXNamespaceXCommentXElementXAttribute
  • 23. AgendaAcceso a Datos en EvoluciónEntendiendo LINQ to SQLEntendiendo LINQ to XMLExplorando LINQ y XML en VB
  • 24. Nuevas Características de VBDim x = 5Variables locales implícitasMétodos de extensiónInicializadores de objetosTipos anónimosExpresiones de Queries<Extension()> _ Sub Rand (col As IEnumerable)New Point With { .x = 1, .y = 2 }New With { c.Name, c.Phone }From … Where … Select
  • 25. Beneficios de VB con LINQ to XMLLiterales XMLDim doc = <root><results/></root>If doc.<results>.Count() > 5 Then …Console.WriteLine(<book>.@name)Propiedades XMLNamespaces ImportadosImports <xmlns:ns=http://testuri.org”>
  • 26. demoTrabajando con XML, VB y ASP.NET
  • 27. ResumenLINQ habilitaacceso a datosdeclarativoLos queries son ahora parte del lenguajeUnifica acceso a datos entre orígenes de datos
  • 28. Publicaciones relacionadas con LINQMás en:www.microsoft.com/learning/books
  • 29. Quieres saber más?Centro de información de LINQhttp://msdn.microsoft.com/data/ref/linqEl blog másdidácticosobre LINQ y VS 2008http://weblogs.asp.net/scottguBlogs de los creadoreshttp://blogs.msdn.com/adonethttp://blogs.msdn.com/dataMi bloghttp://msguayaquil.com/blogs/julioc