«Wisej.NET и ASP.NET две стороны одной монеты»

В этой статье мы рассмотрим внутреннее устройство Wisej.NET как альтернативу традиционному ASP.NET для разработки веб-приложений, особенно в контексте переноса устаревших приложений Windows Forms в интернет.

В предыдущей статье мы проанализировали общую тему миграции устаревших приложений на основе Windows Forms в веб. Обычной практикой является обертывание бэкэнда приложения в слой API и его экспонирование — все вместе — в виде сервиса в микросервисной архитектуре или более традиционном слоистом приложении (например, ASP.NET Core). В обоих случаях болезненной точкой является полный переработка пользовательского интерфейса с использованием HTML5, CSS и JavaScript (или полнофункциональных фреймворков, таких как Angular или React). Еще одна нетривиальная проблема заключается в том, что при выборе современного фронтенд-слоя соответствие между коннекторами пользовательского интерфейса и существующими конечными точками унаследованного бэкэнда может быть не столь очевидным. Появляется необходимость в использовании еще одного промежуточного слоя запросов (например, GraphQL), что увеличивает затраты и усилия при разработке.

В этом контексте Wisej.NET представляет собой альтернативный и довольно уникальный вариант.

Введение в Wisej.NET

С первого взгляда Wisej.NET выглядит как еще одна библиотека элементов управления для, якобы, быстрой разработки веб-приложений на основе ASP.NET. Это верно, но не всеобъемлюще. Фактически Wisej.NET является полноценной платформой, тесно интегрированной с Visual Studio и предназначенной для создания и отладки приложений на основе ASP.NET Core. Чтобы превратить обычное приложение ASP.NET Core в приложение Wisej.NET, вам просто нужно подключить пользовательскую часть middleware в файле startup.cs.

app.UseWisej();

Поскольку Wisej.NET также является библиотекой настраиваемых компонентов, вам также потребуется ссылка на клиентскую сторону фреймворка, который будет управлять взаимодействием между клиентом и серверной средой.

<script src="wisej.wx"></script>

Wisej.NET поддерживает различные типы веб-шаблонов, которые в конечном итоге приводят к предустановленным проектам для нескольких сценариев: обычное веб-приложение, а также веб-приложение рабочего стола, веб-страница и библиотека пользовательских элементов.

Чем же отличается и чем является Wisej.NET?

Модель программирования, предоставляемая Wisej.NET, отражает модель разработки стандартных приложений Windows. Написание нативного приложения Wisej.NET проходит гораздо легче, если участники команды имеют опыт работы с Windows Forms или WPF и собираются перейти к разработке веб-приложений. Wisej.NET существенно упрощает множество сложностей, связанных с обычными инструментами разработки веб-приложений, такими как HTML, CSS и JavaScript. По конструкции, результат этой работы по упрощению разработки является моделью программирования, которая тесно напоминает Windows Forms.

Несмотря на то что Wisej.NET является фреймворком, сфокусированным на компонентах, для создания современных и актуальных веб-приложений, он преднамеренно абстрагирует реальность разработки HTML, CSS и JavaScript до модели программирования более высокого уровня, которая сконцентрирована на простом бизнес-ориентированном схеме действий/реакции, а не на глубоком понимании деталей реализации современных фронтенд-технологий.

Идеальное применение

Приложение Wisej.NET основано на контейнере с именем Form. Form представляет собой набор визуальных элементов, каждый из которых занимает физическое положение внутри контейнера и предоставляет ряд визуальных и невизуальных свойств. Среда Visual Studio предлагает набор компонентов для создания необходимой разметки с помощью графического интерфейса. Взаимодействие между клиентом и сервером происходит в форме события, инициированного на визуальном компоненте, которое обрабатывается соответствующим обработчиком.

Все обработчики программируются в сопроводительном классе, который работает вместе с контейнером Form. Этот класс кода, предлагающий обработчики событий, имеет такое же значение, как класс контроллера в обычном приложении ASP.NET Core MVC. Иными словами, набор всех классов кода, связанных с Form, является слоем презентации нового веб-приложения Wisej.NET. Отсюда вы можете просто подключить публичные конечные точки вашего существующего бэкэнда приложения на основе Windows Forms или создать несколько новых слоев (например, приложения, домена, инфраструктуры, как в дизайне, основанном на домене).

Wisej.NET можно использовать для создания любого классического или одностраничного веб-приложения, но его основное применение остается в миграции унаследованного приложения Windows Forms в современное, сильно взаимодействующее и отзывчивое веб-приложение.

В начале эры разработки .NET большая часть разработчиков приходила из разработки клиент/сервера и использовались Web Forms для веб-разработки и Windows Forms для рабочего стола, предоставляя унифицированную модель программирования, в которой знание веб-технологий было малозначительным или не имело значения. Многое изменилось с тех пор, и абстракционный уровень над низкоуровневой веб-разработкой постепенно уменьшался. Фреймворки пользовательского интерфейса, такие как Bootstrap, попытались повысить уровень абстракции, но все, что они успели сделать, было графическим. Родились новые концептуальные компоненты (например, навбары, группы ввода, выпадающие меню), но все они требовали явного использования HTML и CSS и были лишены поведения.

Wisej.NET возвращает время, когда программирование веб-приложений защищало разработчиков от необходимости иметь существенное представление о веб-технологиях. Это приятное открытие для новых поколений программистов и здоровое возвращение к истокам для тех, кто все еще занимается унаследованными приложениями на основе Windows Forms.

Ознакомление с внутренностями Wisej

Wisej.NET – это фреймворк веб-разработки со следующими уникальными особенностями.

  • Основан на компонентах
  • Одностраничное приложение
  • Абстрагированные технологии фронтенда
  • Обновление пользовательского интерфейса в режиме реального времени

Вы создаете свои приложения Wisej.NET, используя различные предварительно созданные элементы управления и компоненты в удобной оболочке Visual Studio. Это ускоряет разработку и обеспечивает единообразие в дизайне. Получаемое приложение Wisej.NET обычно соответствует архитектуре одностраничного приложения, где динамически обновляются только части страницы, что обеспечивает более плавный пользовательский опыт. В этом случае не требуется глубокое знание технологий фронтенда, таких как HTML, CSS и JavaScript. Это полезно, если команда предпочитает заниматься технологиями бэк-энда и хочет избежать глубокого вовлечения в разработку фронт-энда. Наконец, Wisej.NET предоставляет обновления в реальном времени, позволяя создавать интерактивные приложения, которые могут обновляться в режиме реального времени без полной перезагрузки страницы.

Последний момент довольно интересен. Поведение типичного приложения Wisej.NET, на самом деле, очень похоже на поведение серверного Blazor-приложения ASP.NET. (См. рисунок 1.) В приложении Blazor после инициализации между браузером и бэкэндом приложения следует непрерывный обмен пакетами сокетных соединений, передающих детали запроса и получающих обновления DOM.

Рисунок 1

Подобие архитектуры серверного Blazor в ASP.NET заканчивается на уровне макета, так как протокол обмена, включая формат данных, отправляемых и принимаемых, является собственным.

Что насчет обычного ASP.NET Core?

Wisej.NET – это, следовательно, приложение ASP.NET Core. Почему тогда не использовать ASP.NET Core? Есть две основные спорные точки. ASP.NET имеет большое и активное сообщество, что означает, что вы можете найти множество ресурсов, учебников и библиотек для поддержки вашей разработки. Wisej.NET – это частное продукт с отличной документацией и учебниками, но далеко не обладает таким же сообществом, как универсальная веб-платформа Microsoft, как ASP.NET. На более техническом уровне следует отметить, что ASP.NET позволяет вам непосредственно управлять используемыми технологиями фронтенда в вашем приложении. Это может быть полезно, если у вас есть конкретные требования к дизайну или функциональности, но может быть недостаточным с точки зрения быстрой разработки приложений. И достаточно проблематичным, если вам нужно превратить старое приложение для Windows в веб-приложение.

Wisej.NET работает на основе ASP.NET Core, но предоставляет свою собственную модель программирования, которая ближе к ASP.NET Web Forms, чем к ASP.NET MVC. В результате это две совершенно разные программные платформы, с которыми единственное общее – это язык программирования C# или Visual Basic.NET. Способ проектирования слоя представления и связи клиентского события с обработчиком на сервере существенно отличается, а также способ запуска приложения и некоторые аспекты конфигурации.

Приложение Wisej.NET приближается к внутренней организации приложения ASP.NET Web Forms и использует запускное окружение ASP.NET Core только для внедрения собственного промежуточного программного обеспечения и доступа к управлению файлами на сервере.

Вопрос не заключается в том, что лучше и что хуже: это две разные вещи, выполняющие одну и ту же задачу создания современных веб-приложений. Из этих двух платформ вам нужно выбрать одну. И какую выбрать? Неудивительно, это зависит от ваших потребностей и ваших навыков.

Размышленный выбор

Первое решение – это определить, хотите ли вы создать новое приложение с нуля или мигрировать существующее приложение ASP.NET Web Forms или Windows Forms. В последнем случае Wisej.NET является основной опцией для оценки. Возможно, оно все еще не идеально для вас, но это определенно вариант, который стоит рассмотреть. На базе личного опыта большое приложение Windows Forms с несколькими функциями настраиваемой отрисовки было сделано запускаемым в Интернете за несколько дней маленькой командой из двух человек без внешней помощи консультантов и только на основе общедоступной документации.

Какие виды людей?

Это были опытные и опытные разработчики с крепким фоном работы с базами данных и техническим путь обучения, основанным на модели форм веб-окна/Windows. Мы были настолько довольны, что начали рассматривать возможность использования Wisej.NET также для новых проектов, создаваемых с нуля или развиваемых на основе нативного фундамента ASP.NET Core.

Однако, мы обнаружили, что для разработчиков, не имевших ранее опыта работы с моделью программирования на основе форм начала 2000-х годов, модель Wisej.NET выглядит странно, по меньшей мере. Ничего, с чем справиться не может талантливый разработчик за несколько недель, но все же это новый путь обучения.

В заключение, выбор между Wisej.NET и ASP.NET зависит от ваших конкретных потребностей и опыта. Если вам более удобно работать с разработкой для настольных приложений и вы хотите компонентный подход с обновлениями в реальном времени, то Wisej.NET может подойти вам. С другой стороны, если вы ищете более гибкий и универсальный фреймворк с сильным сообществом и интеграцией с технологиями Microsoft, то ASP.NET может быть лучшим выбором. Всегда учитывайте текущее состояние технологий и требования вашего проекта при принятии решения.

Если вы хотите узнать больше о Wisej.NET в сравнении с Blazor, вам может быть интересна эта статья: https://www.codeproject.com/Articles/5339509/Wisej-NET-vs-Blazor


Leave a Reply

Your email address will not be published. Required fields are marked *