Niniejsze zadanie opracowane zostało jako podsumowanie kursu C# opublikowanego na pluralsight.com. Oryginał zadania dostępny jest na GitHub pod adresem https://github.com/pluralsight-projects/CSharp-GradeBookApplication.
Zadanie polega na uzupełnieniu istniejącego kodu projektu aplikacji Grade Book (dziennik ocen) - zgodnie ze szczegółowymi poleceniami, krok po kroku. Poprawność wykonania kolejnych kroków weryfikowana jest wykonaniem testów jednostkowych (framework xUnit). Testy opracowane są bardzo zmyślnie - sprawdzają, czy utworzono właściwe pliki we właściwych lokalizacjach i z właściwą zawartością, czy funkcjonalności zostały poprawnie zaimplementowane. W zasadzie nie musisz znać framework'a xUnit. Wystarczy, że rozumiesz koncepcję testów jednostkowych.
Zakres zadania: fundamenty programowania, klasy i ich składniki, interfejsy i ich implementacje, testy jednostkowe. Poziom intermediate.
Narzędzia: konto GitHub, Visual Studio 2022 (C# 12, .Net8)
Poświęcony czas: od 2 do kilkunastu godzin, w zależności od kompetencji i sprawności.
Szczegółowe polecenia: Zadania do wykonania - w języku angielskim (Tasks-to-be-performed.md)
Zadania do wykonania:
- Utwórz Fork tego repozytorium na swoim koncie GitHub.
- Sklonuj repozytorium na lokalny dysk.
- Za pomocą Visual Studio 2022 otwórz plik solution
GradeBook.sln
. Solution składa się z projektu aplikacji konsolowej oraz projektu testów jednostkowych (framework xUnit). Solution jest wstępnie skonfigurowane. - Wykonaj build projektu aplikacji
GradeBook
. Uruchom ją, zapoznaj się z jej działaniem (opis poleceń w: Tasks-to-be-performed.md). - Zaktualizuj rozszerzenia NuGet (prawokliknij na Solution Explorer → Manage NuGet Packages for Solution..). Jeśli tego nie zrobisz, prawdopodobnie testy się nie uruchomią.
- Uruchom Test Explorer i sprawdź, czy testy się wykonują (oczywiście przy pierwszym uruchomieniu wszystkie zakończą się niepowodzeniem).
- Wykonuj polecenia z pliku Tasks-to-be-performed.md kolejno, krok po kroku.
- Po wykonaniu danego kroku uruchom testy i sprawdź, czy któreś z nich zostały zaakceptowane. Musisz się domyślić, które testy odpowiedzialne są za dany krok. Staraj się zadania wykonywać sekwencyjnie - w podanej przez autora kolejności.
- Podczas realizowania zadań szczegółowych sięgaj do dokumentacji języka i przypominaj sobie stosowne konstrukcje C#.
Zadanie jest wyjątkowej jakości edukacyjnej. Może być traktowane jako podsumowanie kursu podstawowego lub powtórka materiału przed kursem zaawansowanym.
Zadania dodatkowe (kreatywne):
- Rozbuduj logikę i interfejs aplikacji o inne formaty oceniania.
- Dodaj funkcjonalność automatycznego zapisywania po wykonaniu operacji na danych (dodanie/usunięcie/modyfikacja studenta albo jego ocen).
- Opracuj wariant aplikacji desktopowej z graficznym interfejsem użytkownika (WPF/XAML).