.NET MAUI is coming to Linux and the browser 🔥 Горячее 💬 Длинная дискуссия
—
Комментарии (237)
- Основная критика .NET MAUI для веба — отсутствие поддержки стандартных веб-функций (Ctrl+F, выделение текста, копирование ссылок), что делает его нечувствительным к привычным взаимодействиям.
- Выражается скепсис в отношении будущего MAUI из-за багов, слабой документации, отсутствия поддержки в продуктах Microsoft и исторической практики Microsoft не использовать свои же фреймворки.
- Для веб-приложений на .NET предлагается использовать Blazor, а для кроссплатформенных десктопных решений — альтернативы вроде Avalonia или Kotlin Compose Multiplatform.
- Указывается на производительность (долгая загрузка) и проблемы с доступностью (несовместимость с скринридерами) при использовании MAUI в веб-окружении.
- Обсуждается целесообразность .NET для веб-разработки: часть участников считает веб-технологии более подходящими, а часть видит потенциал в .NET при условии решения текущих ограничений.
Performance Improvements in .NET 10
Ускорение .NET 10
- JIT умеет инлайнить виртуальные вызовы и разворачивать цепочки интерфейсов; PGO по умолчанию.
- GC: меньше пауз, новые режимы Server & Dynamic Adaptation, утилизация памяти ↓15 %.
- BCL:
List<>,Dictionary<>,Span, RegEx, UTF8/JSON, LINQ быстрее в 1,2-3×; новые APIIndexOfAnyInRange,StringValues. - C# 14: встроенные буферы,
refполя в struct, vector-типы, zero-copy P/Invoke. - ASP.NET: 30 % RPS, 50 % latency; HTTP/3,
IHttpSysRequestTimingFeature, pooled H/3 connections. - MAUI: старты экранов в 2× быстрее, меньше аллокаций, AOT для Android/iOS.
- EF Core: компилируемые модели, pooled DB contexts, batching ↑40 %.
- Blazor WebAssembly: SIMD, AOT, сжатие IL + caching → 45 % меньше трафика.
- Серверные шаблоны: оптимизированные Docker-образы, ReadyToRun + AOT, меньше RAM.
- Инструменты: динамический профилировщик в VS,
dotnet trace --live, Perfetto, новые счётчики.
Комментарии (48)
- C# стремительно быстрее: LINQ ускорили в 300×, Native AOT догоняет Go, каждый мажор даёт –10–20 % CPU на 20 000 серверах.
- Всё это — благодаря «arena-» и escape-анализу, стековым структурам, ref’ам и другим приёмам, раньше доступным лишь в Rust/C++.
- Однако оптимизации не гарантированы: если код «не пройдёт borrow-checker», ускорения может не быть, а понять, где аллокации, всё труднее.
- Обновления .NET почти безболезненны: минуты работы и пара строк в CI, при этом старые API продолжают жить летами.
- Спорный момент — экосистема: кому-то кажется, что пакеты устаревают быстрее, чем в других языках; другие считают стабильность ASP.NET Core лучшей из виденных.