Zaawansowane Elementy Języka C#
Moduł 2 - LINQ
Agenda
- Co to jest LINQ?
- Historia LINQ
- Operatory LINQ
- PLINQ
- MoreLINQ

LINQ
- Sekwencja
- Element

Sekwencja


Uporządkowany ciąg znaków, symboli, nazw, zdarzeń itp., stanowiący strukturę układu, systemu.
Plusy Korzystania
z LINQ


- Zmniejszenie ilości kodu
- Ekspresyjność kodu
- Łączenie zapytań
- Statyczna kontrola typów
Składnia Fluent

Składnia Query

Składnia Hybrid

Moduł 2 LINQ
LINQ - WHERE

Moduł 2 LINQ
LINQ - SELECT


Moduł 2 LINQ
LINQ - Quantifier Operators
LINQ - Quantifier Operators
- Contains
- Any
- All
- SequenceEqual
LINQ - Contains

LINQ - Any

LINQ - All

LINQ - SequenceEqual

Moduł 2 LINQ
LINQ - Elements Operators
LINQ - Elements Operators
- First
- Last
- Single
LINQ - Sortowanie i Grupowanie
- OrderBy
- OrderByDescending
- ThenBy
- ThenByDescending
- GtoupBy
LINQ - First

LINQ - Last

LINQ - Single

Moduł 2 LINQ
LINQ - Sortowanie i Grupowanie
LINQ - Sortowanie i Grupowanie
- OrderBy
- OrderByDescending
- ThenBy
- ThenByDescending
- Reverse
- GroupBy
LINQ - OrderBy / ThenBy

LINQ - OrderByDescending / ThenByDescending

LINQ - Reverse

Moduł 2 LINQ
LINQ - Agregacja
LINQ - Agregacja
- Count
- LongCount
- Sum
- Min
- Max
- Average
- Aggregate
LINQ - Count / LongCount

LINQ - Sum

LINQ - Min

LINQ - Max

LINQ - Average

LINQ - Aggregate

Moduł 2 LINQ
LINQ - Partycjonowanie i Generowanie
LINQ - Partycjonowanie i Generowanie
- Take
- TakeWhile
- Skip
- SkipWhile
- Empty
- Range
- Repeat
LINQ - Take

LINQ - TakeWhile

LINQ - Skip

LINQ - SkipWhile

LINQ - Empty

LINQ - Range

LINQ - Repeat

Moduł 2 LINQ
LINQ - PLINQ i MoreLINQ







Moduł 3 - Programowanie Obiektowe
Programowanie obiektowe

- 4 Filary programowania obiektowego
- Interfejsy
- Klasy Abstrakcyjne
- Kompozycje
Programowanie obiektowe

- Abstrakcja
- Hermetyzacja
- Polimorfizm
- Dziedziczenie
Elementy nie wchodzące
w skład modułu

- SOLID
- Domain Driven Desing
- Architektura

Paradygmaty Programowania

- Programowanie Obiektowe
- Programowanie Funkcyjne
- Programowanie Strukturalne

Krótka historia
programowania obiektowego



Programowanie obiektowe
to nie tylko C#




- Java
- C++
- Ruby
- Python
- PHP
- JavaScript
Moduł 3 - OOP
Zależności Klas
Zależności Klas

Zależności Klas

Silna Zależność

- Kod staje się ciężko testowalny
- Ograniczona możliwość ponownego
użycia kodu - Brak możliwości podmiany elementów
składowych klasy
Słaba Zależność

- Kod jest łatwy do testowania
- Wzrasta możliwość ponownego użycia kodu
- Łatwo można podmienić elementy składowe klasy

Moduł 3 - OOP
Interfejsy
Interfejsy

- Wszystkie składowe są domyślnie abstrakcyjne
- Klasa może implementować wiele interfejsów
Interfejsy

Advanced C#
By eduweb
Advanced C#
- 247