LINQ. (Language integrated query) Prezentace na 3IT353. Zpracovali: Martin Latiak, Michal Pěnka, Petr Spurný

Podobné dokumenty
Použití databází na Webu

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Nové prvky v C# 3.0. David Keprt

6 LINQ Strana LINQ Václav Pachta

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Jazyk C# - přístup k datům

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

KAPITOLA 1 Představení platformy Microsoft SQL Server 2008

Oracle XML DB. Tomáš Nykodým

Platforma Java. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/PJA: Seminář V. 27. říjen, / 15

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Ukládání a vyhledávání XML dat

Databázové systémy, MS Access. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1130_Databázové systémy, MS Access_PWP

Databázové a informační systémy

WWW dotazovací služby pro prostorová data URM. Jiří Čtyroký Útvar rozvoje hl. m. Prahy

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Operátory ROLLUP a CUBE

Business Intelligence

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Ukázka knihy z internetového knihkupectví

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Databázové systémy. Cvičení 6: SQL

BIOMEDICÍNSKÝ SYSTÉM PRO AGENTURY DOMÁCÍ PÉČE. Ondřej Krejcar, Dalibor Janckulík, Leona Motalová

Úvod do databázových systémů

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

programátor vs. vývojář

Obsah. Verze SQL Serveru

Stopařův průvodce po ADO.NET a LINQ aneb Foxařův průvodce po práci s daty v.net Milan Kosina

Seznámení s prostředím dot.net Framework

TÉMATICKÝ OKRUH TZD, DIS a TIS

Michal Krátký, Miroslav Beneš

Databázové a informační systémy Jana Šarmanová

13. blok Práce s XML dokumenty v databázi Oracle

Dotazování nad stromem abstraktní syntaxe

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Platformy / technologie. Jaroslav Žáček

Virtual Private Database (VPD) Jaroslav Kotrč

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Stručný obsah. Část I. Část II. Část III. Úvod do vývoje v prostředí Visual Studio 25. Návrh uživatelského rozhraní 127

Přizpůsobení JSTL pro Google App Engine Datastore

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

InterSystems Caché Post-Relational Database

Úvod do Groovy pro Java experty

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Stěhování aplikací. Michal Tomek, Sales Manager

SYBASE ADAPTIVE SERVER JAVA V DATABÁZI

Základy datových vazeb Silverlightu. Funkce Silverlightu 2. Podpora jazyků a technologie.net Framework

Databázové systémy úvod

Informační systémy ve zdravotnictví. 6. cvičení

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Programování v jazyku C# II. 5.kapitola

Databáze II. 1. přednáška. Helena Palovská

Tvorba informačních systémů

Reaktivní programování v.net

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin

Úvod do databázových systémů

KIV/ZIS cvičení 5. Tomáš Potužák

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

KIV/ZIS cvičení 6. Tomáš Potužák

Microsoft Office 2003 Souhrnný technický dokument white paper

ZADÁVACÍ DOKUMENTACE Comenis 2.0

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Vladimír

Sada 1 - PHP. 14. Úvod do jazyka SQL

Spark SQL, Spark Streaming. Jan Hučín

Michal Krátký, Miroslav Beneš

Databázové systémy a SQL

Vzorová úloha 1: Prokažte znalosti aplikace Microsoft Access na zvolené ukázkové databázi.

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

MBI - technologická realizace modelu

Databáze SQL SELECT. David Hoksza

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

Úvod do databázových systémů

Programovací jazyky Přehled a vývoj

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Platformy / technologie. Jaroslav Žáček

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Dolování v objektových datech. Ivana Rudolfová

Databáze. Velmi stručný a zjednodušený úvod do problematiky databází pro programátory v Pythonu. Bedřich Košata

Spark SQL, Spark Streaming. Jan Hučín

Úvod do databázových systémů

Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr

3. přednáška z předmětu GIS1 atributové a prostorové dotazy

Materializované pohledy

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Tvorba informačních systémů

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Transkript:

LINQ (Language integrated query) Prezentace na 3IT353 Zpracovali: Martin Latiak, Michal Pěnka, Petr Spurný

Struktura prezentace Co je to LINQ Obecné informace Proces dotazování Představení Standard Query Operator API Praktické příklady Databáze Amazon Podpora, využitelnost - shrnutí

Co je to LINQ Obecné informace Komponenta Microsoft.NET frameworku (součástí.net FW od verze 3.5) Má schopnost nativního dotazování pomocí jazyka podobnému SQL Definuje sadu operátorů (některé jsou novými klíčovými slovy) pro dotazování nad: Polemi (Arrays) Výčtovými třídami (Enumerable classes) XML Relačními databázemi Datovými zdroji třetích stran

Co je to LINQ Proces dotazování LINQ je programátorovi přístupný přes Standard Query Operator API (SQO API) Data nad kterými se dotazujeme by měla být reprezentována jako objekty U zdrojů, které nemají data v objektech nutné mapování Výsledek LINQ dotazu vždy jako sada objektů v paměti (možné převést na pole apod.)

Představení Standard Query Operator API Standardní operátory Select/SelectMany Where Join/GroupJoin Take/TakeWhile, Skip/SkipWhile OfType OrderBy, GroupBy Count, Sum/Min/Max/Average Konverzní operátory toarray, tolist, asenumerable atd.

Praktické příklady Jednoduché příklady na SQO API Pole Napojení na databázi LINQ to SQL Zdroje třetích stran LINQ to Amazon

Trocha cukříku syntactic sugar Syntactic sugar je rozšířením syntaxe jazyka bez přidané funkcionality usnadnění (oslazení ) programování S příchodem LINQu je obecně definováno několik rozšíření jazyků použitelných pod.net frameworkem: Anonymní typy Lambda výrazy Rozšiřující metody Syntaxe dotazů LINQ

Trocha cukříku syntactic sugar 2

Příklady Videa demonstrující příklady jsou ke stažení na adrese: http://files.spurny.it/linq.zip

Příklad 1: Pole

Příklad 2: Seznam (list) objektů

Příklad 3: Databáze Příklad na lokální databázi (*.sdf) Nutné namapování databáze do objektů utilita SqlMetal Možné generovat: Přímo zdrojový kód Mapovací XML soubor (pro možnost úprav) a poté zdrojový kód Nebo použití LINQ to SQL Designer (součástí MS Visual Studia)

Příklad 3: Databáze 2 LINQ to SQL Designer

Příklad 3: Databáze - SELECT

Příklad 3: Databáze INSERT, UPDATE

Příklad 4: LINQ to? Prakticky neomezená variabilita typu dat nad kterými se lze dotazovat LINQem Vznikají produkty třetích stran LINQ to Flickr LINQ to XSD, XML (M$) LINQ to Amazon

Praktické příklady Amazon (1) var query = from book in new Amazon.BookSearch() where book.title.contains("ajax") && (book.publisher == "Manning") && (book.price <= 25) && (book.condition == BookCondition.New) select book; var sequence = query.tosequence(); var groups = from book in query.tosequence() group book by book.year into years orderby years.key descending select new { Year = years.key, Books = from book in years select new { book.title, book.authors } };

Praktické příklady Amazon (2) foreach (var group in groups) { Console.WriteLine("Published in "+group.year); foreach (var book in group.books) { Console.Write(" "); ObjectDumper.Write(book); } Console.WriteLine(); } Published in 2006 Title=Ruby for Rails : Ruby Techniques for Rails Developers Authors=... Title=Wxpython in Action Authors=... Published in 2005 Title=Ajax in Action Authors=... Title=Spring in Action (In Action series) Authors=...

Vedúca myšlienka LINQ Zjednodušiť prístup k dátam Jednotný prístup bez ohľadu na zdroj dát SQL dotazy -> súčasť kódu SQL dotazovanie bez ohľadu na zdroj dát "It's my hope that in five to 10 years, programming languages simply will have queries as a concept built in, because that's just a must." - Anders Hejlsberg, achitekt LINQ

Použitie Hlavne v Data Access vrstve dáta -> objekty...ale nielen tam Front end Dotazy na datasety získané z back endu Dotazy na XML súbory Back end Dotazy na DB Množstvo providerov LINQ to Google Desktop, LINQ to Flickr, LINQ to Geospatial Data...

Záver Výkon Budúcnosť určia vývojári Optimistický pohľad Implementácie v iných prostrediach PHP LINQ Quaere (Java) JSLINQ (JavaScript)

Zdroje Wikipedia.org http://en.wikipedia.org/wiki/language_integrated_query Microsoft http://msdn2.microsoft.com/cs-cz/library/bb308959(enus).aspx Vyvojar.cz http://www.vyvojar.cz/articles/484-linq.aspx Fabrice's weblog http://weblogs.asp.net/fmarguerie Redmond Developer News http://reddevnews.com/features/article.aspx?editorialsid=707 LINQ performance http://blogs.msdn.com/ricom/archive/2007/06/22/dlinqlinq-to-sql-performance-part-1.aspx