Эволюция решений MS для создания Web-сайтов...
От: Shmj Ниоткуда  
Дата: 07.08.19 02:21
Оценка: 3 (3)
По долгу службы пришлось окунуться в технологию 15-летней давности — ASP.Net WebForms. Технология хоть и старая, но до сих пор поддерживается и в новой VisualStudio 2019 и теми же вендорами контролов, как Telerik. Пришлось вспомнить молодость, т.к. первая моя работа как раз была связана с ASP.Net — еще в далеком 2006...

Эволюция моими глазами выгядела так:

1. ASP.Net WebForms

Началось с ASP.Net WebForms (знаю что был еще ASP просто, похож на PHP, но я его не застал). Идея была такая — сделать видимость что ты разрабатываешь не сайт а десктопную форму. Думали, что можно работать, даже не зная про HTTP-запросы. Нажал на кнопку — вызвался метод для обработки события нажатия на кнопку и т.д.

Каждый контрол имел не только рендер, но и свой дизайнер, где в режиме конструктора можно было установить необходимые свойства, связать с базой данных и т.д.

Вроде идея хорошая, но дьявол в деталях. Генерилось уйма мусора — ID-шники вложенных друг в друга контролов были, порой, по 100 символов в длину и повторялись многократно. Еще был ViewState — скрытое поле, в котором хранились свойства контролов, не участвующие в HTTP-запросе.

Краткая проблема — много мусора. Размер страницы увеличивался на порядок!!! Хотя сейчас это не так важно, интернет каналы довольно широкие, но 10 лет назад было реальной проблемой (отключали ViewState и т.д., но без него терялась простота разработки).

Еще минус — шаг в сторону от задуманной идеи — приводил к огромному геммору. К примеру, если тебе не нравится что расширение странич .aspx — нужно было извращаться с перезаписью урлов. Разработка своего контрола даже для простых вещей — большой геммор.

2. ASP.Net AJAX.

Строго говоря это не отдельная технология, а всего лишь доработка ASP.Net WebForms, чтобы работало без перегрузки страницы. Жмякаешь на кнопку, происходит тот же запрос, но только средствами JS. Даже в коде почти ничего переделывать не нужно было.

Фигня в том, что JS передавал не только данные, но и разметку.

3. ASP.Net MVC.

Главная проблема, которую он решал — не было мусора! Выдача сервера стала девственно чистой, без этих ViewState, лишних ID-шек километровых и пр.

Но сам по себе MVC под капотом на порядок проще WebForms. Уже не было ни визуальных дизайнеров контролов, ни эмуляции событий...

Но на самом деле это упростило разработку больших проектов, так как все стало ближе к нейтивным технологиям, абстракций стало меньше а значит нестандартные решения (котрые выходя за рамки задуманного авторами абстракций) — делать стало проще.

4. Эра JavaScript.

На этом этапе я ушел в бэкенд, хотя сталкиваться приходилось. Могут быть неточности.

Сначала MS предлагали Knockoutjs, поставлялся даже шаблон в студии.

Сейчас это React и Angular, с предпочтением Angular.

Минус этих технологий для пользователя (не для вас!) — описан тут.
Автор: Shmj
Дата: 26.07.19
Да, вы любите эти технологии и свято верите, что проблемы Яндекса не ваши проблемы, но нет — индексация превыше всего.

Для индексации добавили серверный рендер, который требует установки Node.JS на сервере. И работает сие весьма медленно и жрет много ресурсов. Это JS, там тысячи зависимостей, которыми даже вручную уже никто не управляет — только через менеджер пакетов.

Кратко: если делать чисто поиграться — то все ОК. Если же думать о реальных пользователях, то много проблем.

Ну и главный минус всего этого — это JavaScript. Нет строгой типизации, нет проверки компилятором. Это принципиальные проблемы, которые едва удается разрешить (тот же TypeScript — всего лишь костыль).

Модели на сервере пишешь на C#, на клиенте их же дублируешь на TypeScript. Если в одном месте переименовал — придется и в другом. Так пришли к выводу о том, что раз все равно пишем на JS, то давайте делать это и на клиенте и на сервере — появилось понятие т.н. FullStack.

И самое главное — все эти JS-технологии называют поездом, который на всех скоростях мчится к обрыву. Т.е. еще несколько лет — и ничего из этого не останется.

5. Новая эра — WebAssembly.

Все только начинаетя, еще не все верят что что-либо получится. Но эксперты говорят, что дни React сочтены.

MS уже начала пилить Blazor. Те же вендоры контролов уже поддержали платформу.

И хотя пока относятся с опаской, похоже за этим будущее.

Посмотрим.

З.Ы.

Забыл упомянуть Silverlight. Одно время на нем даже сделали сайт для управления Azure. А ведь некоторые проклинали JS и верили в Silverlight. Но из песочницы он толком не вышел.

С ним сталкивался в контексте Win Phone, который тоже почил.
Отредактировано 07.08.2019 3:28 Shmj . Предыдущая версия . Еще …
Отредактировано 07.08.2019 3:27 Shmj . Предыдущая версия .
Отредактировано 07.08.2019 2:24 Shmj . Предыдущая версия .
Отредактировано 07.08.2019 2:21 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.