Adresaci szkolenia

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.

Zakres szkolenia

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.

Szkolenie obejmuje:

  • Zintegrowany język zapytań LINQ
  • Programowanie wielowątkowe
  • Programowanie współbieżne
  • Komunikacje sieciową
  • Programowanie aspektowe

Cel szkolenia

Głównym celem szkolenia jest:

  • 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.

Mocnymi stronami szkolenia są bardzo duży nacisk na praktyczną stronę programowania oraz 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.

Wymagania

Od uczestników wymaga się:

  • umiejętności posługiwania się środowiskiem Visual Studio,
  • znajomości założeń programowania obiektowego,
  • podstawowej znajomości języka C#.

Parametry szkolenia

4 dni (4*7 godzin netto). Wielkość grupy: maks. 8-10 osób

Program szkolenia

  1. Kolekcje

    1. Podstawowe kolekcje: listy, słowniki

    2. Kolejki, stosy

    3. Kolekcje współbieżne – ConcurrentBag, ConcurrentQueue, ConcurrentDictionary

    4. Definiowanie własnych kolekcji

  2. Typy generyczne

    1. Tworzenie klas generycznych

    2. Definiowanie metod generycznych

  3. Kowariancja i Kontrawariancja

  4. Typy anonimowe

    1. Delegaty

    2. Wyrażenia lambda

    3. Anonimowe delegaty i domknięcia w C#

    4. Tworzenie anonimowych obiektów

    5. Func / Action

  5. Typ dynamic i Dynamic Language Runtime

  6. Metody rozszerzające

  7. Method Chaining

    1. Wprowadzenie do wzorca Method Chaining

    2. Definiowanie własnych interfejsów Fluent.

    3. Omówienie zalet interfejsów Fluent i przypadków zastosowania

  8. LINQ

    1. Czym jest LINQ

    2. Przegląd podstawowych operatorów LINQ

    3. LINQ to Objects

    4. Łączenie wyrażeń LINQ z wykorzystaniem Method Chaining

    5. Operatory projekcji

    6. Agregacja

    7. Grupowanie

    8. Złączenia

    9. Zalety stosowania LINQ

    10. Własne operatory i rozszerzenia

  9. Mechanizm refleksji

    1. Idea stosowania refleksji

    2. Pobieranie informacji o składowych typów

    3. Tworzenie obiektów z wykorzystaniem mechanizmu refleksji

    4. Wykorzystanie atrybutów

  10. Wielowątkowość

    1. Zastosowanie wielowątkowości w aplikacjach

    2. Zarządzanie cyklem życia wątku – tworzenie, usypianie, kończenie

    3. Synchronizacja wątków:

      1. lock (Monitor)

      2. Semaphore

      3. ReaderWriterLock

      4. WaitEventHandle

    4. Zakleszczenia

    5. Pule wątków

    6. Dobre praktyki związane z wielowątkowością

  11. Metody asynchroniczne

    1. Wykorzystanie Task Parallel Library

    2. Użycie async, await

  12. Wprowadzenie do przetwarzania współbieżnego

    1. Idea przetwarzania współbieżnego

    2. Instrukcje Parallel LINQ

    3. Pętle współbieżne

    4. Wydajność przetwarzania współbieżnego

  13. Wprowadzenie do programowania sieciowego

    1. Gniazda sieciowe

    2. Wykorzystanie klas TcpClient i TcpListener do komunikacji sieciowej

    3. Wykorzystanie wielowątkowości w programowaniu sieciowym

  14. Komunikacja http

    1. Wykorzystanie komunikacji http w usługach sieciowych

    2. Użycie HTTPWebRequest / HTTPWebResponse

    3. Zastosowanie uproszczonego interfejsu obsługi http – WebClient

  15. Programowanie aspektowe (PostSharp)

    1. Idea i zalety programowania aspektowego

    2. Wprowadzenie do biblioteki PostSharp

    3. Definiowanie własnych aspektów

  16. Kontener IoC (opcjonalne)

    1. Wzorzec Inversion of Control

    2. Wprowadzenie do kontenera Autofac

    3. Rejestrowanie składowych kontenera

    4. Rozwiązywanie zależności

    5. Automatyczne wstrzykiwanie zależności

    6. Zalety i przypadki użycia wzorca IoC

  17. Testy jednostkowe (opcjonalne)

    1. Idea testów jednostkowych i ich wpływ na niezawodność kodu

    2. Porównanie najpopularniejszych bibliotek do testów jednostkowych dostępnych w środowisku .NET – MS Test, NUnit, XUnit

    3. Tworzenie testów jednostkowych, klasa Assert

    4. Uruchamianie testów jednostkowych, wprowadzenie do Test Explorer

    5. Użycia rozszerzeń FluentAssertions

    6. Wprowadzenie do metodyki Test-driven development

  18. Biblioteka logująca NLog (opcjonalne)

    1. Znaczenie modułu logowania w systemach produkcyjnych

    2. Poziomy logowania

    3. Tworzenie pliku konfiguracyjnego NLog

    4. Definiowanie celów oraz reguł logowania

    5. Formatowanie wyjściowe logów

Pytania?

* Wymagane.


Konsultant on-line
Skorzystaj z usług naszego konsultanta on-line.
Naciśnij przycisk ‘Skorzystaj’ aby przejść do okienka czatu
Kontakt
ul. Nowogrodzka 62c
02-002 Warszawa
Telefon +48 22 2035600
Fax +48 22 2035601
Email