Załącznik nr 1 do zapytania ofertowego nr 1/POKL/2015 Dotyczy zapytania ofertowego nr 1/POKL/2015, z dnia 12.01.2015 r. w ramach projektu PWP Paragon i Attero finansowanego ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Programy Szkoleń C1: Obsługa programistyczna na platformie.net urządzeń telekomunikacyjnych (poziom podstawowy i średniozaawansowany) Podstawy programowania.net (10 dni: wykład i warsztaty) Wstęp do.net Architektura.NET Rodzaje aplikacji.net Wersje.NET Wersje C# Global Assembly Cache Deasemblacja kodu Visual Studio Rodzaje projektów Logiczna i fizyczna struktura projektu Najważniejsze widoki, komendy oraz skróty klawiszowe w Visual Studio Uruchomienie oraz debugowanie aplikacji Resharper Wstęp do obiektowości LINQ Klasy Struktury Konstruktory Pola Właściwości Zdarzenia Polimorfizm Delegaty Metody anonimowe Indeksery Interfejsy Metody rozszerzające Wyrażenia lambda LINQ to Objects LINQ to XML
C# 2.0 C# 3.0 C# 4.0 Typy generyczne Iteratory Delegaty Metody anonimowe Inicjalizatory obiektów oraz kolekcji Automatycznie implementowane właściwości Anonimowe typy, niejawne typowanie Wyrażenia lambda, drzewa wyrażeń Metody rozszerzające LINQ Metody częściowe Nazwane, opcjonalne parametry Kowariancja i kontrawariancja Dynamic (DLR) C# 5.0 Metody asynchroniczne Zawansowane elementy platformy.net Refleksja Komunikacja rozporoszona (WCF, Web API) Programowanie współbieżne Programowanie współbieżne (wątki, pule wątków, TPL, PLINQ) Programowanie asynchroniczne (APM, EAP, TAP) Wzorce projektowe Programowanie aspektowe Programowanie funkcyjne Service Locator Przegląd kontenerów IoC Event Broker Testy jednostkowe - nunit Szablony T4 Programowanie aplikacji webowych ASP MVC (5 dni: wykład i warsztaty) Aplikacje webowe w ASP.MVC Budowanie aplikacji przy użyciu ASP.NET MVC Strukturyzacja aplikacji Routing Implementacja modeli Implementacja kontrolerów Implementacja widoków (Razor) Organizacja zasobów JS, CSS
Obsługa bazy danych Różne rodzaje źródeł danych Źródła danych (Data Sources) Entity Framework Zaawansowane mechanizmy ASP.NET MVC Mechanizmy autentykacji i autoryzacji Budowanie elastycznych aplikacji Implementacja Web API Przechwytywanie żądań Testowanie i debugowanie aplikacji ASP.NET MVC Poprawianie wydajności przy użyciu Ajaxa Poprawianie wydajności przy użyciu JavaScript i jquery Debugowanie w.net (5 dni: wykład i warsztaty) Diagnostyka w VS I. Co nam daje VS debugger? omówienie konfiguracji debuggera, ustawianie breakpointów/tracepointów, analiza wyjątków (1st chance, 2nd chance), debugowanie kodu współbieżnego (paraller stacks, threads, paraller tasks), badanie działania GC (object pinning, praca z dumpami, analizy pamięci w VS 2013). II. Profiler vs. debugger i profilery dostępne w VS III. IntelliTrace IV. Zbieranie danych na produkcji Windbg i Perfview I. Debugger natywny (Windbg) spojrzenie na.net z perspektywy systemu operacyjnego, kiedy należy sięgnąć po debugger natywny? zapoznanie z SOS i prezentacja przydatnych komend w przykładowej aplikacji. II. Perfview kiedy i jak używać perfview? Perfview w diagnostyce CPU, Perfview w diagnostyce wycieków pamięci i pracy GC3. Użycie poznanych technik I. Diagnostyka aplikacji wielowątkowych (deadlocks, unsafe-threading) II. Diagnostyka "wyjątkowych" wyjątków (czyli wyciąganie informacji o pierwotnej przyczynie błędów) III. Diagnostyka wycieków pamięci (pamięć zarządzana i natywna) IV. Znajdywanie przyczyn wolnego działania aplikacji (CPU, IO)
C2: Programowanie aplikacji na urządzeniach mobilnych Aplikacje mobilne na system Android (10 dni: wykład i warsztaty) Wprowadzenie Omówienie i przygotowanie środowiska pracy (Android Studio) Specyfika systemu budującego Gradle Struktura projektu Podstawy tworzenia Zasoby aplikacji Omówienie komponentów logiki Cykl życia Zależności komponentów logiki Uprawnienia aplikacji Możliwości struktury zasobów Tworzenie specyficznych zasobów Odwołanie i użycie zasobów Projektowanie wyglądu Edytor graficzny Podstawowe elementy widoku Połączenie z logiką Tworzenie rozbudowanych widoków Operacje w tle Listy i Adaptery Dobre wzorce użycia ActionBar i Menu Wyskakujące komunikaty AsyncTask Loadery Service oraz IntentService Komunikacja Zapisywanie informacji Preferences - małe dane System plików Baza danych SQLite Komunikacja z zewnętrznymi serwerami Pobieranie danych z API Parsowanie Pobieranie plików Powiadomienia i dźwięki Komunikacja z innymi aplikacjami i systemem Czujniki Użycie pomocnych bibliotek Usługi Google Przygotowywanie do publikacji Podpisywanie Dobre praktyki
C3: Programowanie aplikacji na platformie.net Zaawansowane zagadnienia.net (10 dni: wykład i warsztaty) Zaawansowany C# i CLR Zarządzanie pamięcią Refleksja typów Przeciążanie operatorów Dziedziczenie Indeksatory Typy generyczne i nullowalne Współpraca z kodem niezarządzanym Manipulacja danymi za pomocą LINQ Zmiany w C# 3.0 LINQ to Objects LINQ to DataSet LINQ to SQL LINQ to XML Zaawansowane Windows Forms Tworzenie aplikacji MDI Lokalizacja aplikacji Komponenty i kontrolki Techniki OwnerDraw i formularze nieprostokątne Rozbudowane komponenty drukowania Operacje Drag-n-Drop oraz obsługa schowka Zaawansowana instalacja Programowanie współbieżne Asynchroniczne wywołanie metod Rodzaje wątków Rodzaje Timer ów Synchronizatory Typowe scenariusze synchronizacji Zaawansowane aplikacje ASP.NET Zaawansowane kontrolki ASP.NET Zabezpieczanie kanału komunikacyjnego przez SSL Budowanie dynamicznych aplikacji Web Tworzenie różnych typów kontrolek aplikacji Web Optymalizacja wydajności aplikacji Web Personalizacja i tematy w aplikacjach Web Budowanie stron Web Part i składników Web Part Wprowadzenie do ASP.NET AJAX Ćwiczenia: rozwiązywanie złożonych problemów związanych z zadaniami firmy