Zajęcia, rok akademicki 2016/2017, semestr 2
Programowanie pod Windows
Regulamin pracowni i zasady zaliczania
Regulamin pracowni:
- warunkiem uzyskania zaliczenia przedmiotu jest uzyskanie odpowiedniej liczby punktów
za rozwiązywanie zadań ogłoszonych w zeszycie zaadń
- na kolejnych zajęciach, studenci na specjalnych formularzach deklarują numery rozwiązanych zadań;
prowadzący sprawdza w czasie zajęć minimum jedno zadanie każdemu studentowi
Uwagi:
- zeszyt zadań zawiera zadania, których suma to 100 punktów - wartość referencyjną dla
limitów punktowych (patrz niżej).
- brak rozwiązania lub rozwiązanie niekompletne, w przypadku gdy zadanie to zostanie
wybrane przez prowadzącego do wglądu, oznacza utratę co najmniej połowy zgromadzonych
do danej chwili punktów
- zadania można deklarować i oddawać w czasie trwania całych zajęć;
można więc ewentualne wątpliwości skonsultować z prowadzącym i dopiero wtedy zadeklarować
zadanie jako rozwiązane
Zasady zaliczania:
punkty |
ocena |
< 25 |
ndst |
25-50 |
dst |
50-75 |
db |
> 75 |
bdb |
Notatki do wykładu
Windows oczami programisty
Wydawnictwo Mikom, Warszawa 2003
Wersja akademicka Programowanie pod Windows
Materiały do pobrania
Kody źródłowe programów z podręcznika (komplet)
Zeszyt zadań
Pobierz zeszyt zadań, wersja 2017.01.01
Obowiązujące zadania
Do kiedy | Zestaw zadań | Uwagi |
14.03.2017 | 1.1 | |
21.03.2017 | 1.2 | |
28.03.2017 | 1.3 | |
11.04.2017 | 2.1 | |
25.04.2017 | 2.2 | |
25.04.2017 | 2.3 | |
09.05.2017 | 2.4 | |
09.05.2017 | 2.5 | |
23.05.2016 | 3.1 | |
30.05.2016 | 3.2 | |
06.06.2016 | 3.3 | |
13.06.2016 | 3.4 | |
13.06.2016 | 3.5 | |
Uwaga! Po terminie z kolumny "Do kiedy" zadania ze wskazanych rozdziałów nie będą przyjmowane.
Uwaga! Data obowiązywania dotyczy pracowni wtorkowych. Dla pracowni odbywających się w inne dni tygodnia terminem
obowiązującym jest dzień tygodnia w tym samym tygodniu co podany wtorek.
Punktowe rankinigi cząstkowe (grupa WZY)
Punktacja na 2017-04-19
Punktacja na 2017-05-30
Wykłady
- 2017.02.28
- Wykład organizacyjny
- Omówienie środowiska i narzędzi programowania
- Wprowadzenie do Win32 - okna, uchwyty, komunikaty
- Obsługa komunikatów
- 2017.03.07
- Tworzenie okien potomnych
- Komunikacja między oknami
- WM_COMMAND, SendMessage
- Subclassing okien potomnych
- GDI
- Dialog Description Language
- 2017.03.14
- Biblioteki natywne
- Biblioteki COM
- Tworzenie biblioteki COM w C++
- Konsumowanie biblioteki COM w VBA
- 2017.03.21
- Środowisko uruchomieniowe .NET - wprowadzenie
- Środowisko uruchomieniowe .NET - historia
- CIL, JIT
- Dekompilacja do CIL
- Weryfikacja
- 2017.03.28
- 2017.04.04
- Pola, metody, konstruktory, polimorfizm, przeciążanie metod
- Propercje (właściwości)
- Indeksery
- Interfejsy
- Delegacje (funkcje jako first-class citizens)
- Nazwane delegacje
- Anonimowe delegacje
- Lambda wyrażenia
- Zdarzenia (events)
- Refleksja
- Atrybuty
- 2017.04.11
- Dynamiczne tworzenie kodu
- Enumeratory
- yield
- C#2 Typy generyczne, ograniczenia typowe
- Typy generyczne w C++ vs C# vs Java - specyfika implementacji, plusy/minusy
- 2017.04.19
- C#3 rozszerzenia języka
- metody rozszerzające
- obiekty anonimowe
- niejawne typowanie (var)
- skrócona inicjalizacja obiektów i zbiorów
- lambda wyrażenia
- C#3 LINQ - uniwersalne, funkcyjne podejście do dostępu do danych
- Linq2Objects - metody rozszerzające dla interfejsu IEnumerable zaimplementowane w klasie System.Linq.Enumerable
- Linq2SQL - interfejs IQueryable z dedykowaną implementacją ewaluacji drzew wyrażeń
- 2017.04.25
- C#4, DLR, współpraca z COM early vs late binding vs dynamic
- System.Windows.Forms - przegląd materiału
- Model zdarzeniowy
- Jednowątkowość i wyzwania asynchroniczne - async/await
- 2017.05.09
- System.Windows.Forms - ciąg dalszy
- Layout - kontenery, kotwice, dokowanie
- Podstawowe formanty interfejsu użytkownika
- Formanty do reprezentacji zbiorów elementów - ComboBox/ListBox vs ListView/TreeView
- Leniwe ładowanie dużych zbiorów danych do formantu TreeView
- Interfejs użytkownika oparty na powiadomieniach
- 2017.05.16
- GDI+
- System.Windows.Forms - tworzenie własnych formantów
- dziedziczenie istniejącego formantu
- formant z własnym rysowaniem zawartości (dziedziczący z Control)
- formant kompozytowy (dziedziczący z UserControl)
- WPF - omówienie głównych pojęc
- 2017.05.23
- ciąg dalszy WPF
- przegląd formantów - szablonowanie elementów listy typu Combo, przycisk z szablonem widoku
- kontenery widoku
- dwukierunkowy data-binding, wzorzec MVVM
- interfejs INotifyPropertyChanged
- nietrywialne przykłady wiązania
- wiązanie akcji do przycisku (interfejs ICommand)
- wiązanie formantów zależnych - dwie listy typu Combo, wybór z pierwszej wpływa na wybór drugiej
- przykład z wykładu
- 2017.05.30
- System.Data - podsystem dostępu do danych
- SELECT, INSERT, UPDATE, obsługa relacji jeden-wiele
- kwerendy parametryczne, zagrożenie SQL Injection
- 2017.06.06
- Dapper.NET - przykład lekkiej technologii automatyzującej typowe operacje bazodanowe
- Linq2SQL jako przykład technologii ORM w podejściu Database First
- Entity Framework jako przykład technologii w podejściu Code First
- 2017.06.13
- Entity Framework Code First Migrations
- Xml - przegląd
- Xml - model DOM, język XPath
- Xml - strumieniowanie
- Xml + Xsd, modele, serializacja
Literatura
- Charles Petzold, Programming Windows 5th Edition
- Mark Russinovich, David Solomon, Windows Internals
- Bruce Eckel, Thinking in C#
- Andrew Troelsen, Język C# i Platforma .NET
- Daniel Solis, Illustrated C#