Какой любимый фреймворк?

Ответ

Мой основной стек — это .NET, и в нем моим любимым фреймворком уже много лет является ASP.NET Core.

Я ценю его за:

  • Высокую производительность и минимальные накладные расходы, особенно с последними версиями и использованием минимальных API.
  • Кросс-платформенность — возможность разрабатывать и запускать приложения на Windows, Linux и macOS.
  • Отличную встроенную поддержку Dependency Injection, что делает код модульным и легко тестируемым.
  • Гибкость конфигурации через appsettings.json, переменные окружения и провайдеры.

Пример простого минимального API, который я часто использую для прототипов или микросервисов:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.MapGet("/users/{id}", (int id) => 
{
    return Results.Ok(new { UserId = id, Name = "John Doe" });
});

app.Run();

Для больших enterprise-приложений я предпочитаю классическую структуру с контроллерами, но минимальные API — это отличный инструмент, который держит фреймворк современным и конкурентоспособным.

Ответ 18+ 🔞

Давай так, чувак. Я уже лет сто, блядь, в этой теме, и мой основной инструмент — это .NET, ёпта. А внутри него у меня давний роман с ASP.NET Core, вот эта штука реально не подводит.

Почему я на нём сижу, как приклеенный? Ну, слушай:

  • Скорость и прожорливость. Эта платформа жрёт ресурсы как кот изысканный корм — минимально, но с достоинством, особенно в последних версиях с этими минимальными API. Производительность просто овердохуищная, никакого лишнего груза.
  • Кросс-платформенность, ёб твою мать. Пишешь на винде, а потом берёшь и запускаешь это всё на линуксе в продакшене. Красота же! Никаких плясок с бубном.
  • Встроенный Dependency Injection. Ну это вообще песня, блядь. Всё аккуратно, модульно, тесты писать — одно удовольствие. Не надо самому городить эти костыли, как в старые добрые времена.
  • Конфигурация. Тут хоть appsettings.json настрой, хоть переменные окружения подсунь — всё схавает. Гибкость на уровне хитрой жопы, которая везде пролезет.

Вот, смотри, для быстрого прототипа или микросервиса — вообще красота. Пишешь буквально несколько строк, и всё уже работает. Прям волнение ебать, как быстро:

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.MapGet("/users/{id}", (int id) => 
{
    return Results.Ok(new { UserId = id, Name = "John Doe" });
});

app.Run();

Ну а если делать что-то большое, серьёзное, для какого-нибудь банка, то тут, конечно, берём классику с контроллерами. Но сам факт, что есть такие минимальные API — это пиздец как круто. Держит фреймворк в тонусе, не даёт превратиться в старого мамонта. В общем, инструмент на все случаи жизни, ядрёна вошь!