Что такое ASP.NET?

«Что такое ASP.NET?» — вопрос из категории ASP.NET Core, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ASP.NET — это кроссплатформенный фреймворк для создания современных веб-приложений и API на платформе .NET (ранее .NET Core).

Ключевые архитектурные модели:

  • MVC (Model-View-Controller): Паттерн для разделения ответственности (бизнес-логика, представление, данные).
  • Razor Pages: Упрощенная модель на основе страниц, идеальная для сценариев, ориентированных на страницы.
  • Web API: Фреймворк для построения RESTful HTTP-сервисов.
  • Blazor: Позволяет создавать интерактивные веб-UI с использованием C# вместо JavaScript (запускается либо на WebAssembly в браузере, либо на сервере с SignalR).

Основные принципы работы:

  1. Запрос обрабатывается конвейером middleware (компоненты для логирования, аутентификации, маршрутизации и т.д.).
  2. Встроенный контейнер зависимостей (DI) для управления жизненным циклом сервисов.
  3. Конфигурация, основанная на appsettings.json и переменных окружения.

Пример простого контроллера MVC:

public class HomeController : Controller
{
    private readonly ILogger<HomeController> _logger;
    // Внедрение зависимости через конструктор
    public HomeController(ILogger<HomeController> logger)
    {
        _logger = logger;
    }

    public IActionResult Index()
    {
        _logger.LogInformation("Загружена главная страница.");
        return View(); // Ищет и рендерит представление Views/Home/Index.cshtml
    }
}

Преимущества: высокая производительность, открытый исходный код, кроссплатформенность (Windows, Linux, macOS), облако-ориентированность и тесная интеграция с Azure.