Skip to content

itmentors-dotnet25/Dotnet-3

Repository files navigation

.NET Курс - Блок 3: .NET платформа и экосистема

Описание

Этот репозиторий содержит практическое задание для блока 3 курса по .NET. Цель блока - освоить ключевые компоненты .NET экосистемы: сборки, конфигурацию, DI-контейнер, логирование, тестирование и управление зависимостями через NuGet.

🎯 Цели обучения

  • Освоить работу с конфигурацией через Microsoft.Extensions.Configuration
  • Научиться использовать встроенный DI-контейнер
  • Освоить логирование с Microsoft.Extensions.Logging и Serilog
  • Создать полноценную библиотеку классов с тестами и проверить ее работу в консольном приложении

📚 Задание: Библиотека калькулятора

Архитектура проекта

Ваше решение должно состоять из трех проектов:

  • Calculation.Library - основная библиотека с бизнес-логикой
  • Calculator - консольное приложение для демонстрации работы
  • Calculation.Library.Tests - проект с unit-тестами Проекты с пустыми классами уже созданы.

Часть 1: Реализация библиотеки классов (Calculation.Library)

1.1. Создание моделей данных

  • Реализуйте класс CalculationResult с свойством: Value (double)
  • Создайте класс CalculatorOptions с настройками: MaxValue, Precision, AllowNegativeResults

1.2. Создание кастомного исключения

  • Реализуйте класс CalculatorException

1.3. Реализация сервиса калькулятора

  • Создайте класс CalculatorService, реализующий ICalculatorService
  • Добавьте конструктор, принимающий IOptions<CalculatorOptions> и ILogger<CalculatorService>
  • Реализуйте все математические операции с валидацией:
    • Проверка на превышение MaxValue
    • Проверка разрешения отрицательных результатов
    • Обработка деления на ноль
    • Округление результатов согласно Precision
    • Логирование операций и ошибок

Часть 2: Консольное приложение (Calculator)

2.1. Настройка конфигурации

  • Создайте файл appsettings.json с настройками для CalculatorOptions и Serilog
  • Настройте ConfigurationBuilder для чтения конфигурации

2.2. Настройка логирования

  • Настройте Serilog для вывода логов в консоль
  • Убедитесь, что логирование работает на уровне Information и выше

2.3. Настройка DI-контейнера

  • Зарегистрируйте CalculatorOptions из конфигурации
  • Зарегистрируйте ICalculatorService с реализацией CalculatorService
  • Настройте HostBuilder с поддержкой Serilog

2.4. Демонстрация работы

  • В Program.cs продемонстрируйте работу всех операций калькулятора
  • Убедитесь, что логи выводятся корректно

Часть 3: Тестирование (Calculation.Library.Tests)

3.1. Настройка тестового проекта

  • Настройте Project Reference на Calculation.Library

3.2. Создание unit-тестов

  • Напишите тесты для всех математических операций с корректными данными
  • Создайте тесты для проверки обработки ошибок:
    • Деление на ноль
    • Превышение максимального значения
    • Отрицательные результаты (когда запрещены)
  • Используйте Mock для ILogger и IOptions<CalculatorOptions>

Часть 4: Управление зависимостями и сборка

4.1. Настройка NuGet пакетов

  • Проверьте, что зависимости правильно указаны в .csproj файлах

4.2. Сборка и тестирование

  • Убедитесь, что все тесты выполняются успешно
  • Проверьте, что консольное приложение работает корректно

🏃‍♂️ Как начать работу

  1. Создайте новую ветку для работы: git checkout -b feature/calculator-implementation
  2. Реализуйте проект по частям, следуя инструкциям выше
  3. Убедитесь, что все тесты проходят: dotnet test
  4. Проверьте работу консольного приложения: dotnet run --project Calculator
  5. Сделайте commit и создайте Pull Request для проверки

About

Блок 3: .NET платформа и экосистема

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages