Pull to refresh

Comments 9

Как-то раз участвовал в проекте, где надо было разобрать и задокументировать сложное Web приложение (онлайн-казино) написаное на Bridge.NET. Одной из целей проекта было покапаться и выдать фидбэк начальнику и коллегам об адекватности изучения и использования bridge.net в следующих проектах. Вывод был отрицательный — не понравилось что слишком много тащит кода в JS. Куча System библиотек, переведенных на JS, просто вставляется в один файл с логикой приложения. Полностью от разработки на JS избавиться сложно и получается этакий Франкенштейн с гигантским объемом сиситемного кода на JS.
Честно говоря, для нового проекта можно уже смотреть на Blazor — решение такой-же проблемы, но системные dll нет необходимости конвертироввать в JS.
Blazor — решение такой-же проблемы, но системные dll нет необходимости конвертироввать в JS.

При этом тащится еще и рантайм.
Согласен, это один из основных недостатков Bridge.NET. При этом, трудно представить как можно реализовать функции .NET в JS по-другому. Возможно единственное решение проблемы — это разбивка bridge.js на модули. Это позволило бы подключать только те системные классы/библиотеки, которые по факту используются в проекте. Данная функциональность уже давно обсуждается на GitHub.
На мой взгляд, пропустили вариант — это сделать асинхронный callback-запрос на сервер для валидации полей на сервере. Подобно тому, как это делают формы регистрации с проверкой занят ли указанный логин.

А так я тоже соглашусь с тем, что сейчас Blazor выглядит очень интересным вариантом при решении таких задач.
Верно, асинхронные вызовы часто используются для подобных задач. Правда, эта идея не столь показательна, если говорить про снижение нагрузки на сервер, однако, в некоторых задачах без нее никуда (та же проверка занятости логина). Для тех, кому интересно как подобное может быть реализовано с помощью Bridge.NET — в этом примере продемонстрировано выполнение Ajax запроса.

По поводу Blazor — безусловно, это интересный фреймворк, и как только Microsoft выведет его из Preview, я думаю, он найдет много последователей. В то же время, и Bridge.NET может занять свою нишу, например, в частности применения binding'ов для существующих JS библиотек, здесь можно посмотреть несколько демок: demos.retyped.com

Проекту Retyped явно есть куда развиваться. Однако уже сейчас для некоторых библиотек предоставлен достаточно годный API. Например, интересно, насколько похожими получились реализация на C# и оригинальный код на JS в данном демо.

Я для этого изделия городил реализацию React-компонентов на Razor. Получаются вот такие вот монстрики. И даже в райдере нормально работает автокомплит.


Но в прод это дело не потащил просто потому, что BCL там свой и порезаный (нет и не будет вещей типа WeakReference, например), а потому любые библиотеки под него надо перекомпилировать. Опять же нет аналога IL Linker, так что размер JS-кода выходит неприлично большой, тот же блазор можно ужать до меньших размеров.

нет и не будет вещей типа WeakReference, например

А в JS они вообще существуют?

Ну в том и проблема, что JS в них не умеет. Потому и не будет.

Sign up to leave a comment.

Articles

Change theme settings