The linq project
This presentation is the property of its rightful owner.
Sponsored Links
1 / 13

The LINQ Project PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

The LINQ Project. Rafał Skoczylas. Plan prezentacji. Co to jest LINQ? Przykłady Podsumowanie LINQ-i ;). Co to jest LINQ? (1/2). W tradycyjnym podejściu: zapytania SQL pisze się w cudzysłowach brak sprawdzania poprawności w czasie kompilacji brak mocnego typowania

Download Presentation

The LINQ Project

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


The linq project

The LINQ Project

Rafał Skoczylas


Plan prezentacji

Plan prezentacji

  • Co to jest LINQ?

  • Przykłady

  • Podsumowanie

  • LINQ-i ;)


Co to jest linq 1 2

Co to jest LINQ? (1/2)

  • W tradycyjnym podejściu:

    • zapytania SQL pisze się w cudzysłowach

    • brak sprawdzania poprawności w czasie kompilacji

    • brak mocnego typowania

    • brak podpowiadania kodu (IntelliSense itp.)

    • i wiele innych braków oraz problemów


Co to jest linq 2 2

Co to jest LINQ? (2/2)

  • LINQ - Language INtegrated Query – nowy projekt Andersa Hejlsberga

  • Zapytania stają się częścią języka

  • Zunifikowany sposób dostępu do

    • Obiektów (IEnumerable)

    • Baz Danych

    • XML


Przyk ad kolekcje i zapytania

Przykład: Kolekcje i zapytania

using System.Query;

[...]

Student[] students = School.GetStudents();

// query methods

var q1 = students.

where(s => s.Age ==23).

select(s => s.Name);

// query expressions

var q2 = fromsinstudents

wheres.Age ==23

selects.Name;


Przyk ad projekcje

Przykład: Projekcje

[...]

Student[] students = School.GetStudents();

var q1 = fromsinstudents

wheres.Avg>= 4.75

select newScholarship(s.AlbumNumber, s.Avg);

var q2 = fromsinstudents

wheres.Avg>= 4.75

select new { s.AlbumNumber, s.Avg };

foreach (var s in q2)

Console.WriteLine(s.AlbumNumber);


Przyk ad baza danych

Przykład: Baza Danych

using System.Data.DLinq;

Northwind db = newNorthWind(@"F:\northwind.mdf");

var q = from c in db.Customers

where c.City == "London"

select c.CompanyName;


Przyk ad xml 1 2

Przykład: XML (1/2)

using System.Xml.XLinq;

XElement e =

newXElement("LibraryList",

newXElement("Library",

new XAttribute("Name", "PJWSTK")

)

);

<LibraryList>

<Library Name="PJWSTK" />

</LibraryList>


Przyk ad xml 2a 2

Przykład: XML (2a/2)

using System.Xml.XLinq;

Student[] students = School.GetStudents();

XElement e = newXElement("Stypendia",

from s in students

where s.Avg >= 4.75

select newXElement("Student",

newXAttribute("NumerIndeksu", s.AlbumNumber),

newXAttribute("Średnia", s.Avg)

)

);


Przyk ad xml 2b 2

Przykład: XML (2b/2)

<Stypendia>

<Student NumerIndeksu="1239" Srednia="4.77" />

<Student NumerIndeksu="1543" Srednia="4.82" />

<Student NumerIndeksu="1731" Srednia="4.79" />

<Student NumerIndeksu="1832" Srednia="4.98" />

<Student NumerIndeksu="2534" Srednia="4.76" />

<Student NumerIndeksu="2374" Srednia="4.99" />

[...]

</Stypendia>


Przyk ad tips and tricks

Przykład: Tips and Tricks

var q1 = fromcinthis.Controls

wherec.Enabled == false

selectc;


Podsumowanie

Podsumowanie

  • Słuszny kierunek na przyszłość

  • Wiele mechanizmów zapożyczonych z innych technologii:

    • FoxPro

    • Ruby

    • Python

    • LISP

    • Delphi


Linq i

LINQ-i ;)

  • The LINQ Projecthttp://msdn.microsoft.com/netframework/future/linq/

    • C# LINQ Tech Preview Update for Visual Studio 2005 RTM Release

    • C# 3.0 Language Specification

    • 101 LINQ Sampleshttp://msdn.microsoft.com/vcsharp/future/linqsamples/

  • Anders Hejlsberghttp://en.wikipedia.org/wiki/Anders_Hejlsberg


  • Login