Szkolenie: Programowanie .NET - kurs zaawansowany
Zaawansowany kurs programowania .NET w C# przygotowuje do pracy z kolekcjami, LINQ, wielowątkowością, asynchronicznością, programowaniem sieciowym, testami jednostkowymi i nowoczesnymi bibliotekami .NET
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:4 dni (32h)
Kod kursu:NET/ADV
Programowanie .NET - kurs zaawansowany
Cele szkolenia
Szkolenie przygotowuje do samodzielnego projektowania i implementowania zaawansowanych rozwiązań w środowisku .NET z wykorzystaniem języka C#
Szkolenie uczy stosowania dobrych praktyk programistycznych oraz efektywnego wykorzystania bibliotek i narzędzi dostępnych na platformie .NET
Szkolenie rozwija umiejętność rozwiązywania problemów związanych z programowaniem współbieżnym, asynchronicznym i sieciowym w C#
Szkolenie pokazuje, jak wykorzystywać nowoczesne techniki i wzorce projektowe w codziennej pracy programisty .NET
Dla kogo?
Programiści C# z doświadczeniem w programowaniu obiektowym, chcący rozwinąć umiejętności w zakresie zaawansowanych technik .NET
Osoby programujące w innych językach, posiadające podstawową znajomość C# i Visual Studio, planujące migrację do środowiska .NET
Specjaliści IT realizujący projekty wymagające pracy z wielowątkowością, asynchronicznością lub komunikacją sieciową
Efekty kształcenia
Uczestnik projektuje zaawansowane aplikacje z użyciem kolekcji, LINQ i typów generycznych
Uczestnik analizuje i wdraża mechanizmy wielowątkowości oraz asynchroniczności w .NET
Uczestnik implementuje komunikację sieciową i obsługuje protokoły HTTP w aplikacjach .NET
Uczestnik stosuje wzorce projektowe oraz techniki programowania aspektowego
Uczestnik testuje i weryfikuje poprawność kodu przy użyciu narzędzi do testów jednostkowych
Uczestnik konfiguruje i wykorzystuje narzędzia do logowania i kontroli zależności
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
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi

