Programming desktop applications and Windows Services in C#
General data
Course ID: | 1000-I2ApDeskC# |
Erasmus code / ISCED: |
(unknown)
/
(0613) Software and applications development and analysis
|
Course title: | Programming desktop applications and Windows Services in C# |
Name in Polish: | Programowanie aplikacji na komputery stacjonarne oraz usług windowsowych w C# |
Organizational unit: | Faculty of Mathematics and Computer Science |
Course groups: |
(in Polish) Inf., I st., stacjonarne, 3 rok, przedmioty do wyboru (in Polish) Inf., II st, stacjonarne, przedmioty do wyboru |
ECTS credit allocation (and other scores): |
6.00
|
Language: | Polish |
Prerequisites: | (in Polish) Zalecana jest przynajmniej podstawowa znajomość języka C#. Konieczne jest wcześniejsze zaliczenie przedmiotu Programowanie III (lub jego odpowiednika w przypadku wcześniejszego studiowania na innej uczelni). Absolutnie niezbędne są: 1. Znajomość składni języka C lub innego języka wyższego poziomu, który wyewaluował z języka C (np. któregoś z języków C++, Java, C#, D, Objective C) i umiejętność tworzenia programów w tym języku (włącznie z ich kompilacją i uruchamianiem). 2. Wcześniejsze poznanie i zrozumienie koncepcji programowania obiektowego oraz opanowanie w stopniu podstawowym umiejętności tworzenia programów w wybranym obiektowym języku programowania (zakładana jest znajomość podstawowych paradygmatów, wzorców i antywzorców). |
Total student workload: | (in Polish) 1. Godziny realizowane z udziałem nauczycieli w ramach zaplanowanych zajęć (wykłady, laboratoria, egzamin): 64 godziny 2. Czas poświęcony na pracę indywidualną studenta: 81 godzin. W tym a) czas poświęcony na studiowanie podanej literatury, włączając materiały w postaci elektronicznej oraz ewentualne konsultacje - 25 godzin b) czas potrzebny na opracowanie, stworzenie i przetestowanie indywidualnego projektu (włączając wcześniejsze testy i dokończenie zadań laboratoryjnych) - 45 godzin c) ćwiczenia z zagadnień z poza głównej części zajęć (np. w Windows Azure) - 8 godzin d) przygotowanie się do prezentacji projektu oraz do testu teoretycznego - 8 godzin |
Learning outcomes - knowledge: | (in Polish) W1: ma wiedzę na temat architektury współczesnych wersji systemu operacyjnego Windows ze szczególnym uwzględnieniem działania środowiska CLR i mechanizmów specyficznych dla systemów Windows (model składający się z procesów, domen aplikacji i wątków, dzienniki zdarzeń, rejestr systemu, liczników Performance Counters, usług Windows Services itp.) - K_W06 (I stopień); W2: zna zasady wykonywania programów w środowisku uruchomieniowym CLR - K_W07 (I stopień); W3: zna zasady działania systemów operacyjnych Windows ze szczególnym uwzględnieniem procesów, domen aplikacji, wątków, zadań, operacji asynchronicznych, dispatcherów, usług (Windows Sevices), struktury asemblacji i bibliotek, integracji kodu zarządzalnego i natywnego - K_W08 (I stopień); W4: zna podstawy mechanizmów bezpieczeństwa CAS i RBS stosowanych w systemach Windows oraz podstawowe kryptograficzne wbudowane w .NET Framowork - K_W05 (II stopień); |
Learning outcomes - skills: | (in Polish) U1: potrafi pisać, uruchamiać i testować programy (w języku C# przeznaczone dla platformy .NET Framework) w środowisku programistycznym Visual Studio - K_U05 (I stopień); U2: projektuje oprogramowanie w języku C# używające .NET Frameworka zgodnie z metodyką obiektową - K_U22 (I stopień); U3: potrafi (zgodnie z zadaną specyfikacją) zaprojektować oraz zaimplementować prosty pakiet oprogramowania zawierający bibliotekę, usługę, aplikację oraz instalator - K_U24 (I stopień); U4: potrafi posługiwać się środowiskiem Visual Studio wraz z wybranymi wtyczkami (w szczególności instalatorami, referencjami, referencjami usług) - K_U02 (II stopień); U5: potrafi posługiwać zarządzać wybranymi mechanizmami systemowymi (usługi, dzienniki zdarzeń, rejestr systemu, liczniki wydajności) zarówno używając się narzędziami systemowych, jak i od strony programistycznej - K_U02 (II stopień); U6: potrafi dla stworzonego przez siebie (w języku C# na platformę .NET Framework) kodu stworzyć (w wybranym Frameworku - MSTest, xUnit, NUnit) zestaw testów jednostkowych oraz zarządzać tymi testami - K_U09 (II stopień); U7: umie znajdować w literaturze fachowej oraz dokumentacji frameworka informacje potrzebne do wykonania projektu zaliczeniowego - K_U08 (II stopień); |
Learning outcomes - social competencies: | (in Polish) K1: jest gotów do pokonywania trudności stojących na drodze do realizacji projektu zaliczeniowego - K_K02 (I i II stopień); |
Teaching methods: | (in Polish) - wykład - laboratoria - samodzielne zdobywanie informacji (studiowanie literatury) - opcjonalne dodatkowe zadania programistyczne - indywidualny projekt programistyczny - opcjonalny egzamin programistyczny (zamiast projektu) - pisemny (lub ustny) egzamin teoretyczny |
Short description: |
(in Polish) Przedmiot ten jest "następcą" prowadzonego do roku akademickiego 2014/2015 przedmiotu Programowanie zaawansowanych aplikacji w C#. Przeznaczony jest dla studentów II stopnia kierunku informatyka, oraz studentów I stopnia tego kierunku, którzy we wcześniejszych latach poznali składnię języka C oraz podstawy programowania obiektowego. Przy czym mocno preferowana jest przynajmniej podstawowa znajomość języka C#. W toku nauki studenci powinni zdobyć wiedzę i umiejętności przydatne przy tworzeniu w języku C# gotowych do wdrożenia aplikacji przeznaczonych dla "klasycznych desktopowych" systemów MS Windows. W szczególności powinni nauczyć się korzystać z wbudowanych w te systemy oraz w środowisko .NET Framework mechanizmów (m.in. systemu uprawnień, logów systemowych, rejestru systemu, zarządzania konfiguracjami i instalacją). |
Full description: |
(in Polish) Ponieważ przewiduje się, że większość słuchaczy (np. w ramach przedmiotu Programowanie III) miała wcześniej styczność z językiem C#, więc podstawy tego języka (pierwsze trzy zagadnienia z programu wykładu) będą przedstawione w dużym skrócie. Tym niemniej wykład jest skonstruowany w ten sposób, aby również osoby nie mające wcześniej do czynienia z tym językiem, ale znające język C, język C++ lub/i język Java były w stanie w ciągu pierwszych zajęć opanować podstawy tego języka w stopniu wystarczającym do zrozumienia dalszej części wykładu. Główne treści programowe:
W miarę możliwości i czasu pod koniec wykładu przedstawiane będą mechanizmy i narzędzia związane z aktualnymi trendami w programowaniu z użyciem platformy .NET i C# (informacje te będą zależne od cyklu). |
Bibliography: |
(in Polish) Literatura podstawowa
Literatura uzupełniająca
|
Assessment methods and assessment criteria: |
(in Polish) Projekt programistyczny - U1, U2, U3, U4, U5, U6, U7, K1 Kolokwium programistyczne - U1, U2, U3, U4, U5, U6 Test teoretyczny (wielokrotnego wyboru) - W1, W2, W3 Zadania z laboratoriów - U1, U2, U3, U4, U5, U6 Szczegóły:
|
Classes in period "Winter semester 2021/22" (past)
Time span: | 2021-10-01 - 2022-02-20 |
Navigate to timetable
MO TU W TH FR WYK
LAB
|
Type of class: |
Laboratory, 30 hours, 16 places
Lecture, 30 hours, 50 places
|
|
Coordinators: | Jerzy Białkowski | |
Group instructors: | Jerzy Białkowski | |
Students list: | (inaccessible to you) | |
Examination: |
Course -
Examination
Laboratory - Grading Lecture - Examination |
|
Short description: |
(in Polish) Celem wykładu jest nabycie wiedzy i umiejętności przydatnych do tworzenia usług windowsowych (ang. Windows Services) oraz klasycznych aplikacji dla systemów Windows. W roku akademickim 2020/2021 będzie można w nim uczestniczyć w całości zdalnie (poprzez platformę MS Teams). Dla osób które będą preferowały formę stacjonarną (np. nie będą miały odpowiedniego sprzętu lub będą obawiały się np. uszkodzenia jego konfiguracji podczas niektórych ćwiczeń) będzie możliwość stacjonarnego uczestniczenia w zajęciach laboratoryjnych (w środy w godz. 14-16 w pracowni Lab 6 na WMiI UMK). Być może będzie również możliwość "stacjonarnego" uczestniczenia w wykładzie (w środy w godz. 12-12 w pracowni Lab 6 na WMiI UMK), ale jest to uzależnione od (odgórnie ustalonych) zasad, które będą panowały w nadchodzącym semestrze. |
|
Full description: |
(in Polish) Odpowiedzi na "często zadawane pytania": Pytanie: Czy wykład będzie prowadzony zdalnie, czy stacjonarnie? Odpowiedź: Wszystkie zajęcia będą prowadzone zdalnie, ale chętni będą mogli uczestniczyć stacjonarnie przynajmniej w zajęciach laboratoryjnych (szczegóły powyżej w opisie). Osoby pracujące systematycznie (po spełnieniu dodatkowych warunków) będą mogły zaliczać przedmiot w pełni zdalnie (ale podejrzewam, że przynajmniej połowa osób będzie musiała dodatkowo np. wypełnić stacjonarnie test wielokrotnego wyboru lub przejść jakąś inną formę weryfikacji znajomości podstaw - szczegóły wyjaśnię na zajęciach). Pytanie: Pod jakim systemem operacyjnym będzie można pracować? Odpowiedź: Najogólniej mówiąc pod stacjonarną wersją systemu Windows bazującego na jądrze systemu wywodzącego się z systemu OS2. W uproszczeniu: Windows 10 lub ewentualnie Windows 7 (ten ostatni ma tę zaletę, że trudnej go popsuć, ale z drugiej strony trudniej będzie zainstalować i skonfigurować na nim właściwe środowisko programistyczne). Jeśli ktoś bardzo będzie chciał, to będzie mógł spróbować użyć któregoś z bardziej "egzotycznych" obecnie systemów operacyjnych, ale nie będę wówczas udzielał wsparcia w kwestii konfiguracji. Pytanie: Jakiego środowiska programistycznego (z znaczeniu IDE - Integrated Development Environment) będzie można używać? Odpowiedź: Visual Studio 2017 lub Visual Studio 2019 w wariancie przynajmniej Community (które jest do tego typu zastosowań darmowe). Przypominam, że jako studenci mogą Państwo pobrać z programu Azure Dev Tools for Teaching wersję Enterprise i z powodu niektórych dodatkowych funkcjonalności nawet preferowałbym tę wersję (Enterprise). Zalecam instalowanie tego środowiska z angielskim pakietem językowym (bo tłumaczenia w domyślnie ustawianym polskim pakiecie nadal czasami są mocno nieintuicyjne i mylące). Osoby korzystające już z ze środowiska Visual Studio 2015 też będą mogły go używać, choć zwracam, uwagę, że w niektórych przypadkach trzeba będzie wówczas użyć innych wtyczek, a pewne konstrukcje trzeba będzie zaimplementować trochę inaczej. Pytanie: Jakiego środowiska programistycznego (z znaczeniu API - Application Programming Interface) będzie można używać? Odpowiedź: .NET Framework Pytanie: Dlaczego .NET Framework, a nie .NET Core? Odpowiedź: Bo .NET Framework obsługuje mechanizmy potrzebne do implementowania usług windowsowych (przyp. Windows Services), a .NET Core na obecną chwilę ich nie obsługuje. Oczywiście poza .NET Frameworkiem będzie można użyć też innych mechanizmów (więcej szczegółów będzie na zajęciach), ale opakowywanie .NET Core w .NET Framework (ew. .NET Standard) bywa karkołomne. Jeśli ktoś będzie bardzo biegły w C i będzie znał podstawy Win API, to będzie mógł stworzyć implementację w kodzie natywnym, ale nie spodziewam się, że ktoś się o to pokusi. Pytanie: Z jakich języków programowania będziemy korzystać? Odpowiedź: Na wykładzie będę się posługiwał niemal wyłącznie językiem C#, ale jeśli ktoś będzie chciał (i umiał), to równie dobrze może używać jakiegoś innego języka wspieranego przez środowisko programistyczne, np. Visual Basic. Pytanie: Nie udało mi się zapisać na przedmiot w USOS-ie. Czy mógłby Pan mnie dopisać? Czy będzie utworzona dodatkowa grupa? Odpowiedź:
(c.d.n.) |
|
Notes: |
(in Polish) Aktualizacja: w związku z koniecznością przejścia na tryb zdalny nauczania, do dowołania zajęcia będą odbywały się wyłącznie zdalnie (z użyciem platform Microsoft Teams i Moodle). |
Classes in period "Winter semester 2022/23" (past)
Time span: | 2022-10-01 - 2023-02-19 |
Navigate to timetable
MO TU W WYK
TH FR LAB
LAB
|
Type of class: |
Laboratory, 30 hours, 16 places
Lecture, 30 hours, 50 places
|
|
Coordinators: | Jerzy Białkowski | |
Group instructors: | Jerzy Białkowski | |
Students list: | (inaccessible to you) | |
Examination: |
Course -
Examination
Laboratory - Grading Lecture - Examination |
|
Short description: |
(in Polish) Celem wykładu jest nabycie wiedzy i umiejętności przydatnych do tworzenia usług windowsowych (ang. Windows Services) oraz klasycznych aplikacji dla systemów Windows. |
|
Full description: |
(in Polish) Odpowiedzi na "często zadawane pytania": Pytanie: Pod jakim systemem operacyjnym będziemy pracować? Odpowiedź: Najogólniej mówiąc pod stacjonarną wersją systemu Windows bazującego na jądrze systemu wywodzącego się z systemu OS2, ale napjprawdopodobniej jeszcze nie Windows 11. W uproszczeniu: Windows 10 lub ewentualnie Windows 7 (ten ostatni ma tę zaletę, że trudnej go popsuć, ale z drugiej strony trudniej będzie zainstalować i skonfigurować na nim właściwe środowisko programistyczne). Pytanie: Jakie będzie podstawowe środowisko programistyczne (z znaczeniu IDE - Integrated Development Environment)? Odpowiedź: Visual Studio 2022 lub Visual Studio 2019 w wariancie przynajmniej Community (które jest do tego typu zastosowań darmowe). Przypominam, że jako studenci mogą Państwo pobrać z programu Azure Dev Tools for Teaching wersję Enterprise i z powodu niektórych dodatkowych funkcjonalności nawet preferowałbym tę wersję (Enterprise). Zalecam instalowanie tego środowiska z angielskim pakietem językowym (bo tłumaczenia w domyślnie ustawianym polskim pakiecie nadal czasami są mocno nieintuicyjne i mylące). Pytanie: JJakie będzie podstawowe środowisko programistyczne (z znaczeniu API - Application Programming Interface)? Odpowiedź: .NET Framework Pytanie: Dlaczego .NET Framework, a nie .NET (dawniej .NET Core)? Odpowiedź: Bo .NET Framework obsługuje mechanizmy potrzebne m.in. do implementowania usług windowsowych (przyp. Windows Services), a .NET Core (dawniej .NET Core) na obecną chwilę ich nie obsługuje. Oczywiście poza .NET Frameworkiem będzie można użyć też innych mechanizmów (więcej szczegółów będzie na zajęciach), ale opakowywanie .NET (dawniej .NET Core) w .NET Framework (ew. .NET Standard) bywa karkołomne. Jeśli ktoś będzie bardzo biegły w C i będzie znał podstawy Win API, to będzie mógł stworzyć implementację w kodzie natywnym, ale nie spodziewam się, że ktoś się o to pokusi. W końcowej części wykładu planuję wprowadzenie (w frameworku .NET) zadań działających w tle (z nowego modelu), ale . Pytanie: Z jakich języków programowania będziemy korzystać? Odpowiedź: Na wykładzie będę się posługiwał niemal wyłącznie językiem C#, ale jeśli ktoś będzie chciał (i umiał), to równie dobrze może używać jakiegoś innego języka wspieranego przez środowisko programistyczne, np. Visual Basic. Pytanie: Nie udało mi się zapisać na przedmiot w USOS-ie. Czy mógłby Pan mnie dopisać? Czy będzie utworzona dodatkowa grupa? Odpowiedź:
|
Classes in period "Winter semester 2023/24" (past)
Time span: | 2023-10-01 - 2024-02-19 |
Navigate to timetable
MO WYK
LAB
LAB
TU W TH FR |
Type of class: |
Laboratory, 30 hours, 16 places
Lecture, 30 hours, 32 places
|
|
Coordinators: | Jerzy Białkowski | |
Group instructors: | Jerzy Białkowski | |
Students list: | (inaccessible to you) | |
Examination: |
Course -
Examination
Laboratory - Grading Lecture - Examination |
|
Short description: |
(in Polish) Celem wykładu jest nabycie wiedzy i umiejętności przydatnych do tworzenia usług windowsowych (ang. Windows Services) oraz klasycznych aplikacji dla systemów Windows. |
|
Full description: |
(in Polish) Odpowiedzi na "często zadawane pytania": Pytanie: Pod jakim systemem operacyjnym będziemy pracować? Odpowiedź: Najogólniej mówiąc pod stacjonarną wersją systemu Windows bazującego na jądrze systemu wywodzącego się z systemu OS2, ale napjprawdopodobniej jeszcze nie Windows 11. W uproszczeniu: Windows 10 lub ewentualnie Windows 7 (ten ostatni ma tę zaletę, że trudnej go popsuć, ale z drugiej strony trudniej będzie zainstalować i skonfigurować na nim właściwe środowisko programistyczne). Pytanie: Jakie będzie podstawowe środowisko programistyczne (z znaczeniu IDE - Integrated Development Environment)? Odpowiedź: Visual Studio 2022 lub Visual Studio 2019 w wariancie przynajmniej Community (które jest do tego typu zastosowań darmowe). Przypominam, że jako studenci mogą Państwo pobrać z programu Azure Dev Tools for Teaching wersję Enterprise i z powodu niektórych dodatkowych funkcjonalności nawet preferowałbym tę wersję (Enterprise). Zalecam instalowanie tego środowiska z angielskim pakietem językowym (bo tłumaczenia w domyślnie ustawianym polskim pakiecie nadal czasami są mocno nieintuicyjne i mylące). Pytanie: Jakie będzie podstawowe środowisko programistyczne (z znaczeniu API - Application Programming Interface)? Odpowiedź: .NET Framework aktualizacja: z możliwością używania .NET (dawniej .NET Core), w niektórych miejscach stosownie opakowywanego lub uzupełnianego kodem natywnym pisanym w Visual C++. Pytanie: Dlaczego .NET Framework, a nie .NET (dawniej .NET Core)? Odpowiedź: Bo .NET Framework obsługuje mechanizmy potrzebne m.in. do implementowania usług windowsowych (przyp. Windows Services), a .NET Core (dawniej .NET Core) na obecną chwilę ich nie obsługuje, lub wymaga karkołomnego opakowywania własnych mechanizmów (np. opakowanie Backgroud Service do Windows Service). Oczywiście poza .NET Frameworkiem będzie można użyć też innych mechanizmów (więcej szczegółów będzie na zajęciach), ale opakowywanie .NET (dawniej .NET Core) w .NET Framework (ew. .NET Standard) bywa karkołomne. Jeśli ktoś będzie bardzo biegły w C i będzie znał podstawy Win API, to będzie mógł stworzyć implementację w kodzie natywnym, ale nie spodziewam się, że ktoś się o to pokusi. W końcowej części wykładu planuję wprowadzenie (w frameworku .NET) zadań działających w tle (z nowego modelu), ale spodziewam się problemów... Pytanie: Z jakich języków programowania będziemy korzystać? Odpowiedź: Na wykładzie będę się posługiwał niemal wyłącznie językiem C#, ale jeśli ktoś będzie chciał (i umiał), to równie dobrze może używać jakiegoś innego języka wspieranego przez środowisko programistyczne, np. Visual Basic. Pytanie: Nie udało mi się zapisać na przedmiot w USOS-ie. Czy mógłby Pan mnie dopisać? Czy będzie utworzona dodatkowa grupa? Odpowiedź:
|
Classes in period "Winter semester 2024/25" (future)
Time span: | 2024-10-01 - 2025-02-23 |
Navigate to timetable
MO TU W TH FR |
Type of class: |
Laboratory, 30 hours, 16 places
Lecture, 30 hours, 32 places
|
|
Coordinators: | (unknown) | |
Group instructors: | Jerzy Białkowski | |
Students list: | (inaccessible to you) | |
Examination: |
Course -
Examination
Laboratory - Grading Lecture - Examination |
|
Short description: |
(in Polish) Celem wykładu jest nabycie wiedzy i umiejętności przydatnych do tworzenia usług windowsowych (ang. Windows Services) oraz klasycznych aplikacji dla systemów Windows. |
|
Full description: |
(in Polish) Odpowiedzi na "często zadawane pytania": Pytanie: Pod jakim systemem operacyjnym będziemy pracować? Odpowiedź: Najogólniej mówiąc pod stacjonarną wersją systemu Windows bazującego na jądrze systemu wywodzącego się z systemu OS2, ale napjprawdopodobniej jeszcze nie Windows 11. W uproszczeniu: Windows 10 lub ewentualnie Windows 7 (ten ostatni ma tę zaletę, że trudnej go popsuć, ale z drugiej strony trudniej będzie zainstalować i skonfigurować na nim właściwe środowisko programistyczne). Pytanie: Jakie będzie podstawowe środowisko programistyczne (z znaczeniu IDE - Integrated Development Environment)? Odpowiedź: Visual Studio 2022 lub Visual Studio 2019 w wariancie przynajmniej Community (które jest do tego typu zastosowań darmowe). Przypominam, że jako studenci mogą Państwo pobrać z programu Azure Dev Tools for Teaching wersję Enterprise i z powodu niektórych dodatkowych funkcjonalności nawet preferowałbym tę wersję (Enterprise). Zalecam instalowanie tego środowiska z angielskim pakietem językowym (bo tłumaczenia w domyślnie ustawianym polskim pakiecie nadal czasami są mocno nieintuicyjne i mylące). Pytanie: Jakie będzie podstawowe środowisko programistyczne (z znaczeniu API - Application Programming Interface)? Odpowiedź: .NET Framework aktualizacja: z możliwością używania .NET (dawniej .NET Core), w niektórych miejscach stosownie opakowywanego lub uzupełnianego kodem natywnym pisanym w Visual C++. Pytanie: Dlaczego .NET Framework, a nie .NET (dawniej .NET Core)? Odpowiedź: Bo .NET Framework obsługuje mechanizmy potrzebne m.in. do implementowania usług windowsowych (przyp. Windows Services), a .NET Core (dawniej .NET Core) na obecną chwilę ich nie obsługuje, lub wymaga karkołomnego opakowywania własnych mechanizmów (np. opakowanie Backgroud Service do Windows Service). Oczywiście poza .NET Frameworkiem będzie można użyć też innych mechanizmów (więcej szczegółów będzie na zajęciach), ale opakowywanie .NET (dawniej .NET Core) w .NET Framework (ew. .NET Standard) bywa karkołomne. Jeśli ktoś będzie bardzo biegły w C i będzie znał podstawy Win API, to będzie mógł stworzyć implementację w kodzie natywnym, ale nie spodziewam się, że ktoś się o to pokusi. W końcowej części wykładu planuję wprowadzenie (w frameworku .NET) zadań działających w tle (z nowego modelu), ale spodziewam się problemów... Pytanie: Z jakich języków programowania będziemy korzystać? Odpowiedź: Na wykładzie będę się posługiwał niemal wyłącznie językiem C#, ale jeśli ktoś będzie chciał (i umiał), to równie dobrze może używać jakiegoś innego języka wspieranego przez środowisko programistyczne, np. Visual Basic. Pytanie: Nie udało mi się zapisać na przedmiot w USOS-ie. Czy mógłby Pan mnie dopisać? Czy będzie utworzona dodatkowa grupa? Odpowiedź:
|
Copyright by Nicolaus Copernicus University in Torun.