Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 28.04.08 12:11
Оценка:
В Web я новичок (три дня стажа, до этого только мобильные приложения) и чего-то не понимаю, но текущее положение дел с графическими компонентами в Web'е мне кажется очень странным.
Для меня казалось (и пока кажется) естественным описать все компоненты сразу в html и css (ну или xml + xslt + css) с минимальным количеством сторонних директив для указания, откуда берутся данные. При этом:
1)почти полностью абстрагируемся от выполняемого на сервере кода (разве что завязаны на язык шаблонизаторов, например, Velocity) и технологию обработки запросов можно довольно легко сменить
2)при изменении компонента не нужно ничего перекомпилировать

Но при этом я вижу GWT-Ext, Wicket и т.д., где графические компоненты задаются жёстко в коде. Чем интересен этот подход? Отсутствуют вышеприведённые плюсы. Захотел сменить движок View или перейти с Java на .NET — переписывай UI. Почему они тогда так популярны?
Re: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 28.04.08 12:44
Оценка:
Здравствуйте, Donz, Вы писали:

D>Но при этом я вижу GWT-Ext, Wicket и т.д., где графические компоненты задаются жёстко в коде. Чем интересен этот подход? Отсутствуют вышеприведённые плюсы. Захотел сменить движок View или перейти с Java на .NET — переписывай UI. Почему они тогда так популярны?

Забыл упомянуть про плюсы. Я пока вижу только один — возможность нормального наследования компонентов.
Re: Web. Описание UI в html vs описание UI в коде
От: neFormal Россия  
Дата: 28.04.08 13:24
Оценка:
Здравствуйте, Donz, Вы писали:

D>Захотел сменить движок View или перейти с Java на .NET — переписывай UI.


в ASP.NET афаик UI берется из xml..
...coding for chaos...
Re: Web. Описание UI в html vs описание UI в коде
От: vitaly_spb Россия  
Дата: 28.04.08 14:44
Оценка:
D>Но при этом я вижу GWT-Ext, Wicket и т.д., где графические компоненты задаются жёстко в коде. Чем интересен этот подход? Отсутствуют вышеприведённые плюсы. Захотел сменить движок View или перейти с Java на .NET — переписывай UI. Почему они тогда так популярны?

ИМХО после последних нововведений Microsoft (начиная с framework 2.0) они уже намного менее популярны.
...Ei incumbit probatio, qui dicit, non qui negat...
Re[2]: Web. Описание UI в html vs описание UI в коде
От: Lloyd Россия  
Дата: 28.04.08 14:53
Оценка:
Здравствуйте, neFormal, Вы писали:

D>>Захотел сменить движок View или перейти с Java на .NET — переписывай UI.


F>в ASP.NET афаик UI берется из xml..


откуда-откуда?
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[2]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.04.08 14:55
Оценка:
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, Donz, Вы писали:

D>Забыл упомянуть про плюсы. Я пока вижу только один — возможность нормального наследования компонентов.

Компонентный подход хорош не только наследованием, но и композицией компонент. Как вы будете в разметке хранить контрол типа GridView из ASP.NET?
Re[2]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.04.08 14:59
Оценка:
Здравствуйте, neFormal, Вы писали:

F>Здравствуйте, Donz, Вы писали:

D>>Захотел сменить движок View или перейти с Java на .NET — переписывай UI.
F>в ASP.NET афаик UI берется из xml..

Неправда.
в ASP.NET разметка берется из aspx файла, в котором находится html код с вкраплениями разметки для серверных контролов.
Re[3]: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 28.04.08 15:04
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Компонентный подход хорош не только наследованием, но и композицией компонент. Как вы будете в разметке хранить контрол типа GridView из ASP.NET?

Насчёт ASP.NET понятия не имею, я его в глаза не видел
Что касается композиции, то я в первом посте упомянул шаблонизатор, который имеет свой простенький язык, позволяющий вставлять другие файлы (компоненты в html коде) с передачей параметров. То есть, проблем с этим нет.
Re[4]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.04.08 15:30
Оценка:
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, gandjustas, Вы писали:


G>>Компонентный подход хорош не только наследованием, но и композицией компонент. Как вы будете в разметке хранить контрол типа GridView из ASP.NET?

D>Насчёт ASP.NET понятия не имею, я его в глаза не видел
Попытаюсь объяснить. Серверные контролы — фактически классы, определяющие результирующую разметку — позволяют задать не только внешний вид, но и поведение контрола. Например GridView сам (без постороннего кода) позволяет переключаться в режим редактирования и изменять данные из источника.

D>Что касается композиции, то я в первом посте упомянул шаблонизатор, который имеет свой простенький язык, позволяющий вставлять другие файлы (компоненты в html коде) с передачей параметров. То есть, проблем с этим нет.

Разметка html не определяет поведение контрола, см пример про GridView выше.
Re[5]: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 28.04.08 15:37
Оценка:
Здравствуйте, gandjustas, Вы писали:

D>>Что касается композиции, то я в первом посте упомянул шаблонизатор, который имеет свой простенький язык, позволяющий вставлять другие файлы (компоненты в html коде) с передачей параметров. То есть, проблем с этим нет.

G>Разметка html не определяет поведение контрола, см пример про GridView выше.
Яваскрипт никто не отменял. Не знаю, как в ASP.NET, но тот же GWT-Ext или Java Server Faces в конечном счёте клиенту отдают самогенерённый html + js. Или же программист сам определит этот контрол в html + js и практически отвяжется от конкретной технологии на серверной стороне.
Re[5]: Web. Описание UI в html vs описание UI в коде
От: vitaly_spb Россия  
Дата: 28.04.08 19:01
Оценка:
G>Попытаюсь объяснить. Серверные контролы — фактически классы, определяющие результирующую разметку — позволяют задать не только внешний вид, но и поведение контрола. Например GridView сам (без постороннего кода) позволяет переключаться в режим редактирования и изменять данные из источника.

Серверный код в ASP.NET, касающийся создания контрола и выставления его базовых свойств генерируется автоматически. Итого есть:

1) .aspx — задает отображение. Рассмотрим на более простом примере — кнопке. В aspx файле будет запись

<asp:Button ID="Button1" runat="server" Text="Button" />

в том месте, где будет размещаться кнопка. Параметры отображения это ширина и высота кнопки, их можно добавить

<asp:Button ID="Button1" runat="server" Text="Button" Height="20px" Width="100px" />

Параметр runat="server" означает, что это серверный контрол.

2) .vb (или .cs или ...) — код. Здесь можно подписываться на различные events

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
...
End Sub

Если хочется сделать параметры отображения "на лету", то надо подписаться на событие формы, например Page.Init или Page.Load и там писать Button1.CssClass = "myClass".
...Ei incumbit probatio, qui dicit, non qui negat...
Re[6]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.04.08 19:34
Оценка:
Здравствуйте, Donz, Вы писали:

D>Яваскрипт никто не отменял. Не знаю, как в ASP.NET, но тот же GWT-Ext или Java Server Faces в конечном счёте клиенту отдают самогенерённый html + js. Или же программист сам определит этот контрол в html + js и практически отвяжется от конкретной технологии на серверной стороне.

Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода. С помощью разметки и Javascript такое сделать не получится (без обходных каналов, типа веб-сервиса)
Re[7]: Web. Описание UI в html vs описание UI в коде
От: vitaly_spb Россия  
Дата: 28.04.08 19:40
Оценка:
G>Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода. С помощью разметки и Javascript такое сделать не получится (без обходных каналов, типа веб-сервиса)

В ASP.NET 3.5 получится, более того — ни строчки кода. Более того, грид можно сделать с paging'ом и сортировкой и без обновления всей страницы когда сортируешь, только гридовая часть. Вот такие чудеса...
...Ei incumbit probatio, qui dicit, non qui negat...
Re[7]: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 28.04.08 20:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода. С помощью разметки и Javascript такое сделать не получится (без обходных каналов, типа веб-сервиса)

От веб-сервисов и т.д. я и не отказываюсь (в моём случае на стороне сервера выполняется сервлет), но тема не об этом, а об абстрагировании представления от бизнес-логики, что мне на данный момент кажется маловозможным в фреймворках типа GWT-Ext, Wicket или подобных вещах, где графический интерфейс жёстко завязан на используемом языке, платформе, библиотеке.
Можешь сказать, что выполняется на стороне клиента в твоём примере про GridView? Неужели надо ставить .NET для подобных сайтов? Назад к Java Applets?
Re[8]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.04.08 03:28
Оценка:
Здравствуйте, Donz, Вы писали:

D>От веб-сервисов и т.д. я и не отказываюсь (в моём случае на стороне сервера выполняется сервлет), но тема не об этом, а об абстрагировании представления от бизнес-логики, что мне на данный момент кажется маловозможным в фреймворках типа GWT-Ext, Wicket или подобных вещах, где графический интерфейс жёстко завязан на используемом языке, платформе, библиотеке.

Это как раз основной недостаток веб-форм.

D>Можешь сказать, что выполняется на стороне клиента в твоём примере про GridView?

Только отправка формы.

D>Неужели надо ставить .NET для подобных сайтов? Назад к Java Applets?

Нет, на клиенте нужен только браузер.
Re[9]: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 29.04.08 08:31
Оценка:
Здравствуйте, gandjustas, Вы писали:

D>>От веб-сервисов и т.д. я и не отказываюсь (в моём случае на стороне сервера выполняется сервлет), но тема не об этом, а об абстрагировании представления от бизнес-логики, что мне на данный момент кажется маловозможным в фреймворках типа GWT-Ext, Wicket или подобных вещах, где графический интерфейс жёстко завязан на используемом языке, платформе, библиотеке.

G>Это как раз основной недостаток веб-форм.
Ну да, о чём и спич

D>>Можешь сказать, что выполняется на стороне клиента в твоём примере про GridView?

G>Только отправка формы.
Имеется в виду технология на стороне клиента. Подозреваю, что JS, так?
Re[7]: Web. Описание UI в html vs описание UI в коде
От: anonymous Россия http://denis.ibaev.name/
Дата: 29.04.08 09:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода.


На стороне клиента это всё равно только HTML и JavaScript.
Re[8]: Web. Описание UI в html vs описание UI в коде
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 29.04.08 09:48
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, gandjustas, Вы писали:

G>>Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода.
A>На стороне клиента это всё равно только HTML и JavaScript.
Конечно, но каким-либо шаблоном (в html например) его не опишешь.
Re[9]: Web. Описание UI в html vs описание UI в коде
От: anonymous Россия http://denis.ibaev.name/
Дата: 29.04.08 09:51
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Еще раз повторяю пример про GridView. Он позволяет изменять данные (в БД например) без дополнительного кода.

A>>На стороне клиента это всё равно только HTML и JavaScript.
G>Конечно, но каким-либо шаблоном (в html например) его не опишешь.

Современные браузеры позволяют написать что-то вроде:
<div class="grid-view"></div>

А всё остальное вынести в отдельные JavaScript- и CSS-файлы. И это будет работать.
Re: Web. Описание UI в html vs описание UI в коде
От: Donz Россия http://donz-ru.livejournal.com
Дата: 29.04.08 11:46
Оценка:
Так по сути без акцента на конкретной технологии и флейма "а .NET круче!" кто-нибудь может помочь в выборе и понимании?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.