### Wymagania (prerequisites)
* Wymagania: brak
* Mile widziane: umiejętność programowania w dowolnym języku obiektowym
### Opis (description)
Celem wykładu jest przedstawienie systemu operacyjnego Windows widzianego
oczami programisty z szerokiej perspektywy technologii .NET.
Pracownia daje okazję do zmierzenia się z szeregiem typowych zadań
programistycznych w środowisku Windows.
### Program (program)
1. Omówienie wewnętrznych mechanizmów Windows (uchwyty, komunikaty)
2. Interfejs programowania Win32
3. Technologia COM (Component Object Model)
4. Omówienie fundamentów .NET Framework
* język CIL, kompilacja JIT
* bezpieczeństwo, walidacja i weryfikacja kodu pośredniego
5. Omówienie języka C#, rozszerzenia języka w wersji 2.0, 3.0 i 4.0
* klasy, delegacje, zdarzenia
* refleksja, atrybuty
* typy generyczne
6. Przegląd biblioteki standardowej platformy .NET, m.in:
* kolekcje, strumienie, procesy, wątki
* mechanizm LINQ (Language Integrated Query),
* Dynamic Language Runtime
* podsystem System.Windows.Forms, czyli programowanie aplikacji desktop,
* ADO.NET, czyli komunikacja z serwerami baz danych,
* obiektowe wzorce dostępu do danych: LinqToSQL, Entity Framework
* ASP.NET, czyli usługi aplikacyjne i aplikacje internetowe,
* Silverlight, czyli technologia budowania aplikacji RIA
* integracja różnych języków platformy .NET
### Literatura (references)
* Wiktor Zychla: Windows oczami programisty, MIKOM 2003
* Charles Petzold: Programming Windows
* Tom Archer, Andrew Whitechapel: Inside C#
* Bruce Eckel: Thinking in C# (Release Candidate)
* Daniel Solis: Illustrated C# 2008