Какие альтернативные платформы или фреймворки для разработки вы рассматривали?

Ответ

Выбор платформы зависит от целевой платформы приложения и его требований. Вот с чем я работал или оценивал для разных задач: **В рамках экосистемы .NET:** * **.NET (ранее .NET Core / 5+):** Основная кросс-платформенная платформа для серверных приложений (Web API, микросервисы), десктопных (WPF, MAUI) и облачных решений. Выбор по умолчанию для новых проектов. * **ASP.NET Core:** Фреймворк для создания веб-приложений и API на .NET. Высокая производительность и модульность. * **Blazor:** Позволяет создавать интерактивные веб-интерфейсы на C# вместо JavaScript, что полезно для команд, глубоко погруженных в .NET. ```csharp // Пример компонента Blazor @page "/counter"

Counter

Current count: @currentCount

@code { private int currentCount = 0; private void IncrementCount() => currentCount++; } ``` * **Xamarin / .NET MAUI:** Для разработки нативных мобильных и десктопных приложений на C# с общим кодом бизнес-логики. **За пределами .NET (для сравнения и выбора под задачу):** * **Backend / Сервисы:** * **Node.js (JavaScript/TypeScript):** Выбирал для проектов, требующих высокого I/O параллелизма (чаты, стриминг) или где фронтенд- и бэкенд-команды используют один язык. * **Go:** Рассматривал для высоконагруженных микросервисов, где критичны низкие задержки и простое статическое типирование. * **Python (Django/FastAPI):** Использовал для быстрого прототипирования, скриптов автоматизации или ML-сервисов. * **Фронтенд:** * **React / Vue.js / Angular:** Стандартный выбор для SPA. Часто комбинируется с .NET Backend в виде Web API. **Критерии выбора:** 1. **Командная экспертиза:** Эффективнее использовать технологии, которые команда знает хорошо. 2. **Производительность и масштабируемость:** .NET и Go показывают отличные результаты для CPU-интенсивных задач. 3. **Экосистема и поддержка:** .NET имеет мощную экосистему библиотек и первоклассную поддержку от Microsoft, особенно в Azure.

Ответ 18+ 🔞

Смотри, тут вопрос про платформы — а он, блядь, как выбор машины: можно взять внедорожник, а можно спорткар, но если тебе по болотам ездить, то на Ferrari ты просто в говне застрянешь, хоть и красиво. Вот, допустим, ты в экосистеме .NET сидишь. Ну, тут всё понятно, как в хорошей обслуженной мастерской. **Если по нашей, по .NET-овской части:** * **.NET (это который Core и дальше):** Это сейчас наше всё, блядь. Основной станок. Кросс-платформенный, быстрый, для серверов, API, каких-то там микросервисов — красота. Для новых проектов это почти всегда выбор по умолчанию, если только у тебя нет конкретной причины взять что-то другое. Как будто взял универсальный шуруповёрт — и им и саморезы закрутить, и мебель собрать можно. * **ASP.NET Core:** Это если тебе именно веб-приложение или API надо. Фреймворк, блядь, отличный — производительный, модульный, не нагруженный старым хламом. На нём сейчас всё и пилят. * **Blazor:** Вот это, сука, интересная тема. Позволяет на C# фронтенд делать, вместо этого вашего JavaScript. Для команд, которые с .NET на ты, а в JS как в тёмном лесу — просто спасение. Смотри, как просто: ```csharp @page "/counter"

Счётчик, блядь!

Текущее значение: @currentCount

@code { private int currentCount = 0; private void IncrementCount() => currentCount++; } ``` Всё на C#, и логика, и разметка. Удобно, если не хочешь разрываться между языками. * **Xamarin / .NET MAUI:** Это уже для мобилок и десктопа. Хочешь из одной кодовой базы под iOS, Android и Windows выпуливать? Вот тебе инструмент. Бизнес-логику пишешь один раз, а интерфейсы под каждую платформу немного свои. Но, честно, иногда там свои грабли, нужно быть готовым. **А теперь, блядь, вылезем из нашего уютного .NET-овского мирка и глянем по сторонам.** Вдруг задача специфичная? * **Для бэкенда:** * **Node.js:** Беру его, когда нужно что-то с кучей одновременных подключений — чаты там, стримы, уведомления. Или когда фронтенд-ребята и бэкенд-ребята на одном языке хотят говорить (TypeScript). Асинхронность у него, блядь, в крови. * **Go:** Приглядывался к нему для микросервисов, где нужна дикая производительность и простота. Компилируется в один бинарник, без зависимостей — красота. И типизация статическая, что для больших проектов — просто бальзам на душу. * **Python:** А вот это наш друг для быстрых прототипов, скриптов-автоматов или когда нужно ML-какую-нибудь хуйню прикрутить. На Django или FastAPI можно сервис на коленке собрать, но для высоконагруженного ядра я бы его не советовал — жрёт ресурсы, будь здоров. * **Для фронтенда:** Тут без вариантов — **React, Vue.js или Angular**. Мировые стандарты. Обычно ставят их поверх .NET Backend в виде API и живут не тужат. **И главное, на что смотреть при выборе, чтобы потом не было мучительно больно:** 1. **Что команда умеет.** Это раз. Можно выбрать самую навороченную платформу, но если её никто не знает, проект превратится в долгострой и помойку. Эффективнее на том, что люди щупали. 2. **Что нужно от производительности.** .NET и Go — для серьёзных вычислений, Node.js — для ввода-вывода, Python — чтобы быстро и не очень тяжело. 3. **Какая вокруг экосистема.** У .NET, я тебе скажу, поддержка от Microsoft — огонь, особенно если в Azure работаешь. Библиотек на все случаи жизни — овердохуища. У других тоже свои плюшки есть. Короче, нет серебряной пули. Есть задача, команда и сроки. Под них всё и подбирай, а не потому что модно или в блоге прочитал.