Cieľ kurzu: zoznámenie sa s technológiou LINQ, ktorá umožňuje jednoduchú prácu v prostredí .NET s objektovými aj neobjektovými dátami – bez nutnosti poznania príslušných dotazovacích jazykov. LINQ je syntaktickým rozšírením jazykov C# a VB.NET. Abstrahuje od dátových zdrojov, poskytujúc intuitívny, deklaratívny a uniformný interface ku kolekciám objektov, SQL databázam a XML dokumentom. Účastníci sa naučia, ako aplikovať túto technológiu v reálnych aplikáciách, spolu s benefitmi vyplývajúcimi z jej použitia pre nich – najmä zvýšenej produktivity v práci. Na záver si prejdeme aj jeho rozšírenie pre paralelné spracovanie – PLINQ, ako aj ďalšie možnosti použitia v súvisiacich technológiách.
Vstupné požiadavky: skúsenosti s vývojom aplikácií na platforme .NET v jazyku C# alebo VB.NET, základy dotazovania sa v jazyku SQL
Trvanie: 2 dni
Obsahová náplň:
Úvod do LINQu
- LINQ a prístup k dátam
- Štandardné operátory dotazov
- Query Expressions
- Rozšíriteľnosť
- LINQ to Objects
- Oneskorené vykonanie
- LINQ to XML
- Funkcionálna konštrukcia
- Dotazovanie sa na XML
- LINQ to SQL
- LINQ to SQL Demo
- Mapovanie LINQ to SQL
- Entity Framework
LINQ, C# a VB.NET
- Prehľad a história LINQu
- Extension metódy
- Operátory ako extension metódy
- Funkcionálne programovanie s lambdami
- Základy lambda výrazov
- Vytváranie lambda výrazov
- Volanie lambda výrazov
- LINQ výrazy
- Expression Trees
- LINQ Remoting
- Query Expressions
- Syntax Query Comprehension
- Type Inference a kľúčové slovo var
- Anonymné typy
- Inicializéry
- Partial metódy
LINQ dotazy
- Štruktúra LINQ dotazov
- Dvojitá syntax dotazov
- Oneskorené vykonanie
- Situácie vznikajúce pri oneskorenom vykonaní
- Kľúčové slová let a into
- Zoskupovanie
- Zoskupovanie a projekcia
- Vnorené dotazy
- Joiny
- Zoskupené a agregované joiny
- Triedenie
- Kompozícia
- Dynamické dotazy
- LINQPad
- Volanie stored procedúr na SQL Serveri
- Vkladanie, aktualizovanie a mazanie dát
Štandardné operátory LINQu
- Definícia
- Filtrovanie
- Triedenie
- Sety
- Kvantifikátory
- Projekcia
- Projekcia one-to-many
- Rozdelenie a separácia
- Zlučovanie
- Zoskupovanie
- Generovanie
- Rovnosť
- Elementy
- Konverzia
- Konkatenácia
- Agregácia
Paralelný LINQ – PLINQ
- Úvod do paralelného LINQu
- Lambda výrazy v PLINQu
- Sparalelizovanie LINQ dotazov
- Partitioning LINQ dotazov
- Interface
IParallelEnumerable
- Na čo si dať pozor pri paralelnom LINQu
- Kombinovanie sekvenčných a paralelných LINQ dotazov
- Spracovanie výnimiek v paralelných dotazoch
- Zrušenie spracovania paralelného dotazu
- Meranie výkonu paralelných dotazov
- Nastavenie vlastnej úrovne paralelizácie
- Vlastné paralelné agregačné funkcie
- Kontrola nad poradím spracovania
- Vynútenie paralelizmu
Prehľad súvisiacich technológií
- Práca s XML dátami pomocou „LINQ to XML“
- Rozširovanie LINQu o ďalšie dátové zdroje
- ADO.NET Entity Framework