Этот репозиторий содержит практическое задание для блока 3 курса по .NET. Цель блока - освоить ключевые компоненты .NET экосистемы: сборки, конфигурацию, DI-контейнер, логирование, тестирование и управление зависимостями через NuGet.
- Освоить работу с конфигурацией через
Microsoft.Extensions.Configuration - Научиться использовать встроенный DI-контейнер
- Освоить логирование с
Microsoft.Extensions.Loggingи Serilog - Создать полноценную библиотеку классов с тестами и проверить ее работу в консольном приложении
Ваше решение должно состоять из трех проектов:
- Calculation.Library - основная библиотека с бизнес-логикой
- Calculator - консольное приложение для демонстрации работы
- Calculation.Library.Tests - проект с unit-тестами Проекты с пустыми классами уже созданы.
- Реализуйте класс
CalculationResultс свойством:Value(double) - Создайте класс
CalculatorOptionsс настройками:MaxValue,Precision,AllowNegativeResults
- Реализуйте класс
CalculatorException
- Создайте класс
CalculatorService, реализующийICalculatorService - Добавьте конструктор, принимающий
IOptions<CalculatorOptions>иILogger<CalculatorService> - Реализуйте все математические операции с валидацией:
- Проверка на превышение
MaxValue - Проверка разрешения отрицательных результатов
- Обработка деления на ноль
- Округление результатов согласно
Precision - Логирование операций и ошибок
- Проверка на превышение
- Создайте файл
appsettings.jsonс настройками дляCalculatorOptionsи Serilog - Настройте
ConfigurationBuilderдля чтения конфигурации
- Настройте Serilog для вывода логов в консоль
- Убедитесь, что логирование работает на уровне Information и выше
- Зарегистрируйте
CalculatorOptionsиз конфигурации - Зарегистрируйте
ICalculatorServiceс реализациейCalculatorService - Настройте HostBuilder с поддержкой Serilog
- В
Program.csпродемонстрируйте работу всех операций калькулятора - Убедитесь, что логи выводятся корректно
- Настройте Project Reference на Calculation.Library
- Напишите тесты для всех математических операций с корректными данными
- Создайте тесты для проверки обработки ошибок:
- Деление на ноль
- Превышение максимального значения
- Отрицательные результаты (когда запрещены)
- Используйте Mock для
ILoggerиIOptions<CalculatorOptions>
- Проверьте, что зависимости правильно указаны в
.csprojфайлах
- Убедитесь, что все тесты выполняются успешно
- Проверьте, что консольное приложение работает корректно
- Создайте новую ветку для работы:
git checkout -b feature/calculator-implementation - Реализуйте проект по частям, следуя инструкциям выше
- Убедитесь, что все тесты проходят:
dotnet test - Проверьте работу консольного приложения:
dotnet run --project Calculator - Сделайте commit и создайте Pull Request для проверки