Szkolenie: Programowanie .NET - kurs zaawansowany
Szkolenie "Programowanie .NET - kurs zaawansowany" wprowadzi uczestników w zaawansowane zagadnienia programowania w C# na platformie .NET. Szkolenie stanowi konytunację kursu podstawowego.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:4 dni (32h)
Kod kursu:NET/ADV
Programowanie .NET - kurs zaawansowany
Cele szkolenia
Zdobycie wiedzy na temat zaawansowanych aspektów platformy .NET oraz języka C#
Przygotowanie uczestników do efektywnej i wydajnej pracy z platformą .NET
Przekazanie wiedzy z zakresu dobrych praktyk w procesie wytwarzania oprogramowania z użyciem języka C#
Zaznajomienie uczestników z najpopularniejszymi bibliotekami używanymi w pracy ze środowiskiem .NET
Dla kogo?
Szkolenie kierowane jest do programistów chcących pogłębić swoją wiedzę z zakresu platformy .NET i języka C# oraz osób programujących dotychczas w innych językach chcących rozpocząć pracę ze środowiskiem .NET
Zalety
Zajęcia ukierunkowane jest na poznanie zaawansowanych zagadnień związanych z językiem C# oraz zdobycie praktycznych umiejętności z zakresu programowania współbieżnego i sieciowego
Zakres szkolenia obejmuje najważniejsze tematy oraz biblioteki, których znajomość konieczna jest do sprawnej i wydajnej pracy z platformą .NET
Uczestnicy szkolenia stawią czoła najczęściej pojawiaj ącym się w codziennej pracy problemom i zadaniom
Dzięki skupieniu się na zagadnieniach specyficznych dla platformy .NET, szkolenie pozwala na wsparcie procesu migracji programistów z innych technologii
Bardzo duży nacisk na praktyczną stronę programowania
Program szkolenia dopasowany do najnowszych trendów rynkowych
Poza samą technologią .NET omówione zostaną najpopularniejsze biblioteki używane w większości komercyjnych projektów
Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Wymagania
Umiejętność posługiwania się środowiskiem Visual Studio
Znajomość założeń programowania obiektowego
Podstawowa znajomość języka C#
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Kolekcje
Podstawowe kolekcje: listy, słowniki
Kolejki, stosy
Kolekcje współbieżne - ConcurrentBag, ConcurrentQueue, ConcurrentDictionary
Definiowanie własnych kolekcji
Typy generyczne
Tworzenie klas generycznych
Definiowanie metod generycznych
Kowariancja i Kontrawariancja
Typy anonimowe
Delegaty
Wyrażenia lambda
Anonimowe delegaty i domknięcia w C#
Tworzenie anonimowych obiektów
Func/Action
Typ dynamic i Dynamic Language Runtime
Metody rozszerzające
Method Chaining
Wprowadzenie do wzorca Method Chaining
Definiowanie własnych interfejsów Fluent
Omówienie zalet interfejsów Fluent i przypadków zastosowania
LINQ
Czym jest LINQ
Przegląd podstawowych operatorów LINQ
LINQ to Objects
Łączenie wyrażeń LINQ z wykorzystaniem Method Chaining
Operatory projekcji
Agregacja
Grupowanie
Złączenia
Zalety stosowania LINQ
Własne operatory i rozszerzenia
Mechanizm refleksji
Idea stosowania refleksji
Pobieranie informacji o składowych typów
Tworzenie obiektów z wykorzystaniem mechanizmu refleksji
Wykorzystanie atrybutów
Wielowątkowość
Zastosowanie wielowątkowości w aplikacjach
Zarządzanie cyklem życia wątku - tworzenie, usypianie, kończenie
Synchronizacja wątków
Zakleszczenia
Pule wątków
Dobre praktyki związane z wielowątkowością
Metody asynchroniczne
Wykorzystanie Task Parallel Library
Użycie async, await
Wprowadzenie do przetwarzania współbieżnego
Idea przetwarzania współbieżnego
Instrukcje Parallel LINQ
Pętle współbieżne
Wydajność przetwarzania współbieżnego
Wprowadzenie do programowania sieciowego
Gniazda sieciowe
Wykorzystanie klas TcpClient i TcpListener do komunikacji sieciowej
Wykorzystanie wielowątkowości w programowaniu sieciowym
Komunikacja HTTP
Wykorzystanie komunikacji HTTP w usługach sieciowych
Użycie HTTPWebRequest/HTTPWebResponse
Zastosowanie uproszczonego interfejsu obsługi HTTP - WebClient
Programowanie aspektowe (PostSharp)
Idea i zalety programowania aspektowego
Wprowadzenie do biblioteki PostSharp
Definiowanie własnych aspektów
Kontener IoC (opcjonalne)
Wzorzec Inversion of Control
Wprowadzenie do kontenera Autofac
Rejestrowanie składowych kontenera
Rozwiązywanie zależności
Automatyczne wstrzykiwanie zależności
Zalety i przypadki użycia wzorca IoC
Testy jednostkowe (opcjonalne)
Idea testów jednostkowych i ich wpływ na niezawodność kodu
Porównanie najpopularniejszych bibliotek do testów jednostkowych dostępnych w środowisku .NET - MS Test, NUnit, XUnit
Tworzenie testów jednostkowych, klasa Assert
Uruchamianie testów jednostkowych, wprowadzenie do Test Explorer
Użycia rozszerzeń FluentAssertions
Wprowadzenie do metodyki Test-driven development
Biblioteka logująca NLog (opcjonalne)
Znaczenie modułu logowania w systemach produkcyjnych
Poziomy logowania
Tworzenie pliku konfiguracyjnego NLog
Definiowanie celów oraz reguł logowania
Formatowanie wyjściowe logów