- 'dst' - tasks from 1 to 5.
- 'dst plus' - tasks from 1 to 6.
- 'db' - tasks from 1 to 7.
- 'db plus' - tasks from 1 to 8.
- 'bdb' - tasks from 1 to 9.
The code should produce no warnings at all.
Solutions should be sent to email address as links to a repository in GitHub before 2023/09/15:
leslaw dot pawlaczyk at chorzow dot wsb dot pl
Soution for Task1 should be placed in a separate folder to other tasks (task2 and task3) which are specified in:
- https://github.com/palles77/AdvancedProgramming2/blob/main/Task1.md,
- https://github.com/palles77/AdvancedProgramming2/blob/main/Task3.md
To start developing solution for Task 2 you need to finish Task 1 first.
- Develop a new service called DataAccessService.cs which will be responsible for data manipulation on the database.
- the service should allow saving data in a JSON file
- the service should allow reading data from a JSON file
- The service should be based on a new interface called IDataAccessService
- Write unit tests for DataAccessService in a separate library called University.Services.Tests
- You should use mocking framework of your choice. More information about mocking can be found in the literature further down this document.
- Extract interfaces for all of the entity types in the solution. The interfaces should be placed in a separate library University.Interfaces.
- Modify existing ViewModels to use DataAccessService instead of performing business logic on database directly in ViewModels.
- Use dependency injection for that purpose.
- More information about dependency injection can be found in literature further down this document
- Write unit tests for the modified ViewModels from point 4.
- The unit tests should be placed in a separate library called Univerity.ViewModels.Tests
- Use mocking framework of your choice.
- Extract validation of PESEL and date of birth into a separate service called ValidationService. Add interface for it. Use dependency injection.
- Write unit tests for point 6.
- Move all of the hardcoded texts associated with GUI into a separate library called University.Internationalization
- write down the English names in a separate file
- write down the Polish names in a separate file.
- develop a separate service for this purpose
- Add a settings service which will be saving program settings in a separate file called settings.json
- the service should have an interface
- the service should have unit tests.
- WPF-Polish
- WPF-English
- .NET-Polish
- .NET-English
- https://learn.microsoft.com/pl-pl/dotnet/core/testing/unit-testing-with-dotnet-test
- https://learn.microsoft.com/pl-pl/dotnet/architecture/modern-web-apps-azure/architectural-principles
- https://learn.microsoft.com/pl-pl/dotnet/communitytoolkit/mvvm/
- https://learn.microsoft.com/pl-pl/ef/
2023/04/15