Zajęcia, rok akademicki 2017/2018, 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
Repozytorium: Programowanie pod Windows
Zeszyt zadań
Repozytorium: Zeszyt zadań
Materiały do pobrania
Kody źródłowe programów z podręcznika (komplet)
Obowiązujące zadania
Do kiedy | Zestaw zadań | Uwagi |
06/13.03.2018 | 1.1 | |
13.03.2018 | 1.2 | |
20.03.2018 | 1.3 | |
27.03.2018 | 2.1 | |
10.04.2018 | 2.3 | |
17.04.2018 | 2.2 | Kolejność 2.3 i 2.2! |
24.04.2018 oraz 08.05.2018 | 2.4 | Przedłużenie terminu na "po majówce" |
08.05.2018 | 2.5 | |
22.05.2018 | 3.1 | |
29.05.2018 | 3.2 | |
05.06.2018 | 3.3 | |
12.06.2018 | 3.4 | |
12.06.2018 | 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)
Wykłady
- 2018-02-20, Wprowadzenie
- Wykład organizacyjny
- Omówienie środowiska i narzędzi programowania
- Wprowadzenie do Win32 - okna, uchwyty, komunikaty
- 2018-02-27, Win32 - okna, uchwyty, komunikaty
- Obsługa komunikatów
- Tworzenie okien potomnych
- Komunikacja między oknami
- WM_COMMAND, SendMessage
- Subclassing okien potomnych
- GDI
- Dialog Description Language
- 2018-03-06, COM - obiektowe współdzielenie kodu w czasach przed .NET
- Biblioteki natywne
- Biblioteki COM
- Tworzenie biblioteki COM w C++
- Konsumowanie biblioteki COM w VBA
- Środowisko uruchomieniowe .NET - wprowadzenie
- 2018-03-13, .NET - podstawy, C#
- .NET
- CIL, JIT
- Dekompilacja do CIL
- Weryfikacja
- Dekompilacja do C# (IlSpy)
- Dokumentowanie kodu
- Wielojęzykowość .NET
- C#
- C#1 - model obiektowy, system typów
- Boxing, unboxing
- Pola, metody, konstruktory, polimorfizm, przeciążanie metod
- 2018-03-20, Język C# 1.0
- Propercje (właściwości)
- Indeksery
- Interfejsy
- Delegacje (funkcje jako first-class citizens)
- Nazwane delegacje
- Anonimowe delegacje
- Lambda wyrażenia
- Zdarzenia (events)
- Refleksja
- Atrybuty
- 2018-03-27, Język C# 2.0
- Dynamiczne tworzenie kodu
- Enumeratory
- yield
- C#2 Typy generyczne, ograniczenia typowe
- Typy generyczne w C++ vs C# vs Java - specyfika implementacji, plusy/minusy
- 2018-04-10, Język C# 3.0
- konfigurowanie aplikacji - pliki app.config i app.manifest
- 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
- 2018-04-17, Język C# 4.0
- C#3 LINQ - uniwersalne, funkcyjne podejście do dostępu do danych
- Linq2SQL - interfejs IQueryable z dedykowaną implementacją ewaluacji drzew wyrażeń
- C#4, DLR, współpraca z COM early vs late binding vs dynamic
- System.Windows.Forms - przegląd materiału
- Model zdarzeniowy
- 2018-04-24, Wprowadzenie do Windows.Forms
- System.Windows.Forms - przegląd materiału
- Model zdarzeniowy
- Jednowątkowość i wyzwania asynchroniczne - async/await
- 2018-05-08, System.Windows.Forms - ciąg dalszy
- Komunikacja między oknami
- Layout - kontenery, kotwice, dokowanie
- Podstawowe formanty interfejsu użytkownika
- Formanty do reprezentacji zbiorów elementów - ComboBox/ListBox vs ListView/TreeView
- 2018-05-15, System.Windows.Forms - ciąg dalszy
- Leniwe ładowanie dużych zbiorów danych do formantu TreeView
- GDI+
- Interfejs typu MDI
- 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)
- 2018-05-22, Windows Presentation Foundation
- WPF - omówienie głównych pojęc
- 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
- 2018-05-29, System.Data - obsługa magazynów danych
- Microsoft SQL Server - omówienie technologii
- System.Data - podsystem dostępu do danych
- SELECT, INSERT, UPDATE, obsługa relacji jeden-wiele
- kwerendy parametryczne, zagrożenie SQL Injection
- 2018-06-05
- 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
- Entity Framework Code First Migrations
- 2018-06-12
- Xml - przegląd, wskazówki projektowe
- 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#