Czas trwania
3 dni
Abstrakt
Szkolenie obejmuje zaawansowane aspekty platformy .net. W trakcie jego trwania uczestnicy będą ćwiczyć przedstawiane zagadnienia na wielu praktycznych przykładach. Ponadto zostaną pokazane przydatne wzorce i praktyki, które pozwolą na budowę lepszych rozwiązań.
Zagadnienia
Zaawansowane elementy językowe |
Generyki |
Zjawisko inferencji |
Generyki vs niegeneryki – porównanie wydajności |
Delegaty, metody anonimowe i lambdy |
Wstęp do programowania funkcyjnego |
Closures w C# |
Czym są? |
Jakie mogę powodować problemy? |
Kowariancja i Kontrawariancja |
Klasy anonimowe |
Iteratory |
Maszyna stanów generowana przez kompilator |
Nieskończone sekwencje |
Strumieniowanie |
Inicjalizatory |
Extension methody |
Expression trees – analiza i generowanie kodu |
Dynamic – dynamiczność w C# |
Async i await – metody asynchroniczne |
Przydatne narzędzia |
Reflector – dissasembler .Neta |
ILSpy – disassembler .Neta |
Narzędzia SysInternals |
LINQ |
Przegląd operatorów |
Zaawansowane konstrukcje LINQ |
Własne operatory i rozszerzenia LINQ |
Rodzaje LINQ |
Wstęp LINQ to XML |
Wstęp LINQ to Entity Framework |
Wstęp do NHibernate |
Wybrane zaawansowane aspekty platformy .net |
Resourcy |
Konfiguracja i ustawienia |
Serializacja |
Lokalizowalność |
Zaawansowania refleksja |
Generowanie kodu |
Partial methods |
Templaty T4 |
Wstęp do programowania współbieżnego |
Prymitywy .Net |
Póla wątków i timery |
Thread Parallel Library |
Struktury |
Taski |
PLINQ |
Częste problemy i rozwiązania |
Wzorce |
Lokalizacja komponentów |
ServiceLocator |
Dependency Injection |
Progamowanie aspektowe |
EventBroker |
Wstęp do testowania |
NUnit i MsTest – narzędzia do testowanie jednostkowego |
NSubstitute – narzędzie do tworzenia mocków |
Współpraca z innymi językami |
Współpraca z kodem niezarządzalnym |
Współpraca z innymi językami .Net |
Projekty cross platformowe |
Jak pisać jeden kod, a wykorzystać go na wielu platformach |
Silverlight, WPF, WP7, Metro |
Profilowanie i badanie wydajności aplikacji |
Profilowanie kodu |
Badanie wycieków pamięci |
Zaawansowanie debuggowanie |
Tips & Tricks debuggera |
Zmiana miejsca wywołania |
Oznaczanie instancji klas |
Odwijanie stosów podczas obsługi błędów |
Wykonywanie kodu podczas debuggingu |
Wstęp do WCF |
Adres – gdzie jest serwis i jak go hostować |
Binding – jakie dostępne są protokoły komunikacji z serwisem |
Kontrakt – co mogę zrobić z tym serwisem |
Rodzaje operacji |
Obsługa błędów |
Instancyjność serwisów |
Korzystanie z serwisów w kodzie klienckim |
WPF, Silverlight |
Model rozszerzalności WCF |