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 2019 (C#)
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 2019 otwórz plik solution
GradeBook.sln
. Solution składa się z projektu aplikacji konsolowej oraz projektu testów jednostkowych. Solution jest wstępnie skonfigurowane. - 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#.
Po zakończeniu zadania rozważ opracowanie, na bazie kodu, aplikacji WPF (XAML), obsługującej dziennik ocen.
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).