Programowanie .NET - kurs zaawansowany

LICZBA DNI: 4 (32h)

KOD KURSU: NET/ADV

# c#

Autor szkolenia:
Rafał Kaszczuk

O szkoleniu

DLA KOGO?

Szkolenie kierowane jest do programiostó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

WYMAGANIA

Umiejętność posługiwania się środowiskiem Visual Studio,

Znajomość założeń programowania obiektowego,

Podstawowa znajomość języka C#

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 komerycyjnych projektów

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

Program

  • Podstawowe kolekcje: listy, słowniki
  • Kolejki, stosy
  • Kolekcje współbieżne – ConcurrentBag, ConcurrentQueue, ConcurrentDictionary
  • Definiowanie własnych kolekcji
  • Tworzenie klas generycznych
  • Definiowanie metod generycznych
  • Delegaty
  • Wyrażenia lambda
  • Anonimowe delegaty i domknięcia w C#
  • Tworzenie anonimowych obiektów
  • Func / Action
  • Wprowadzenie do wzorca Method Chaining
  • Definiowanie własnych interfejsów Fluent
  • Omówienie zalet interfejsów Fluent i przypadków zastosowania
  • 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
  • Idea stosowania refleksji
  • Pobieranie informacji o składowych typów
  • Tworzenie obiektów z wykorzystaniem mechanizmu refleksji
  • Wykorzystanie atrybutów
  • Zastosowanie wielowątkowości w aplikacjach
  • Zarządzanie cyklem życia wątku – tworzenie, usypianie, kończenie
  • Synchronizacja wątków:
    • lock (Monitor)
    • Semaphore
    • ReaderWriterLock
    • WaitEventHandle
  • Zakleszczenia
  • Pule wątków
  • Dobre praktyki związane z wielowątkowością
  • Wykorzystanie Task Parallel Library
  • Użycie async, await
  • Idea przetwarzania współbieżnego
  • Instrukcje Parallel LINQ
  • Pętle współbieżne
  • Wydajność przetwarzania współbieżnego
  • Gniazda sieciowe
  • Wykorzystanie klas TcpClient i TcpListener do komunikacji sieciowej
  • Wykorzystanie wielowątkowości w programowaniu sieciowym
  • Wykorzystanie komunikacji http w usługach sieciowych
  • Użycie HTTPWebRequest / HTTPWebResponse
  • Zastosowanie uproszczonego interfejsu obsługi http – WebClient
  • Idea i zalety programowania aspektowego
  • Wprowadzenie do biblioteki PostSharp
  • Definiowanie własnych aspektów
  • 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
  • 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
  • Znaczenie modułu logowania w systemach produkcyjnych
  • Poziomy logowania
  • Tworzenie pliku konfiguracyjnego NLog
  • Definiowanie celów oraz reguł logowania
  • Formatowanie wyjściowe logów

POLITYKA COOKIES:

Korzystamy z plików cookies, by móc jak najlepiej dostosować stronę do Twoich potrzeb oraz wyświetlać Ci przydatne i adekwatnych dla Ciebie reklamy w serwisie i poza nim. Możesz kontrolować ustawienia ciasteczek w swoich ustawieniach swojej przeglądarki. Odwiedzając tę stronę, wyrażasz zgodę na wykorzystywanie przez nas plików cookies.