Найти в Дзене

Running .NET in the browser without Blazor

Running .NET in the browser without Blazor Статья от Andrew Lock. Когда нужно запустить .NET код в браузере, первое что приходит в голову — Blazor. Но что если требуется более низкоуровневый подход без компонентной модели? Andrew Lock показывает альтернативный путь через прямое использование WASM инфраструктуры. 👉 Экспериментальные WASM шаблоны — установка Microsoft.NET.Runtime.WebAssembly.Templates.net10 даёт три новых шаблона для создания браузерных и консольных WASM приложений ⚡️ JSImport/JSExport атрибуты — механизм двустороннего взаимодействия между .NET и JavaScript кодом через source generators, позволяющий вызывать JS функции из C# и наоборот 🟢 Простая архитектура приложения — minimal HTML + main.js для bootstrap WASM runtime + Program.cs с бизнес-логикой, без компонентной модели Blazor 📦 Оптимизация размера — из коробки 6.8MB (2MB brotli), с InvariantGlobalization можно сжать до 4.3MB (1.4MB brotli) — экономия до 37% 🔧 Client-side fingerprinting в .NET 10 — автоматич

Running .NET in the browser without Blazor

Статья от Andrew Lock.

Когда нужно запустить .NET код в браузере, первое что приходит в голову — Blazor. Но что если требуется более низкоуровневый подход без компонентной модели? Andrew Lock показывает альтернативный путь через прямое использование WASM инфраструктуры.

👉 Экспериментальные WASM шаблоны — установка Microsoft.NET.Runtime.WebAssembly.Templates.net10 даёт три новых шаблона для создания браузерных и консольных WASM приложений

⚡️ JSImport/JSExport атрибуты — механизм двустороннего взаимодействия между .NET и JavaScript кодом через source generators, позволяющий вызывать JS функции из C# и наоборот

🟢 Простая архитектура приложения — minimal HTML + main.js для bootstrap WASM runtime + Program.cs с бизнес-логикой, без компонентной модели Blazor

📦 Оптимизация размера — из коробки 6.8MB (2MB brotli), с InvariantGlobalization можно сжать до 4.3MB (1.4MB brotli) — экономия до 37%

🔧 Client-side fingerprinting в .NET 10 — автоматическое добавление хешей к статическим ресурсам для cache-busting, хотя пока есть баг в шаблоне, требующий ручной правки

Такой подход даёт максимальный контроль над архитектурой приложения без накладных расходов Blazor. Идеально для специфических сценариев, где нужна производительность и минимализм.

Планируете ли вы использовать низкоуровневый WASM вместо Blazor для своих проектов?

Статья полностью: https://andrewlock.net/running-dotnet-in-the-browser-without-blazor/

a State of .NET | Подписаться