|
|
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Товарищи, взываю вашему кругозору! Есть ли фреймворки для построения интерфейсов, содержащие в себе: - API - описательный слой (аннотации и интерфейсы) для определения представлений и виджетов - Common классы - реализация классов-обработчиков аннотированных классов, евэнтов, команд и пр. - Реализация - конкретный движок, который "рендерит" интерфейс в рамках какой-то одной технологии, SWING например. С точки зрения использования хотелось бы иметь такой: 1. Создать класс представления 2. Заинжектить виджеты, сервисы и ... при помощи спец. аннотаций из API с указанием атрибутов каждого элемента (возможно создать некий XML с параметрами разметки и пр.) 3. Закодить события, листенеры и обработчики и отметить их аннотациями 4. Зарегистрировать этот класс представления в "Регистре" 5. Увидеть результат Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:22:09 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии В Sun когда-то тоже такие мечтатели были. Они придумали JSF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:28:50 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии В Sun когда-то тоже такие мечтатели были. Они придумали JSF. Спасибо. Но описания представлений и виджеты там вроде не универсальные, т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:45:38 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Но описания представлений и виджеты там вроде не универсальные В общем случае универсальные. До появления всяких фейслетов. -=*ShamaN*=-т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав? Нет. Представление тоже общее делается JSF тэгами. А затем пишется своя реализация JSF, которая умеет эти тэги рендерить в нужный движок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:49:43 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла. Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin... Пока ждал ответа наковырял вот эти библиотеки: - http://code.google.com/p/jo-client-platform - http://www.sibvisions.com/en/jvxmdemo Последний (судя по демкам) - это то что нужно, но необходимо исходник ковырнуть). И, кстати, рендер для Vaadin там уже есть :) http://sourceforge.net/projects/jvx/files/?source=navbar Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 16:44:13 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла. Facepalm. Зачем это всё? JSF еле выехал на web, а на GUI его вообще никто не поддерживает, кроме может быть ADF. -=*ShamaN*=-Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin... Каким боком тут Vaadin всплыл? -=*ShamaN*=-Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз... Ну, не взлетит ведь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 16:48:25 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Vaadin - целевой end-user фреймфорк А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию... Поэтому я на решение этой задачи смотрю примерно так: "Common independent UI XML" -> Vaadin App Implementation -> User Happy, чтобы можно было "Common independent UI XML" -> Swing App Implementation -> Second User Happy Опыта у меня немного, как бы Вы это сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 16:57:39 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию... Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:02:03 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
мертворожденное решение - не тратьте время. Если даже базу так и не асбтрагировали нормально, то что говорить о UI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:13:27 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию... Зачем? Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 10:50:26 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Нет, так нет. http://en.wikipedia.org/wiki/5_Whys ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 10:53:44 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... упрямый))). Всё равно будет делать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:18:21 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... упрямый))). Всё равно будет делать) Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 09:39:28 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии http://code.google.com/p/swinghtmltemplate/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 10:28:11 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер. "Убиваться не буду, но изолировать по любому (с)" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 10:40:20 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер. "Убиваться не буду, но изолировать по любому (с)" )) В смысле "на клиента или на сервер"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 15:22:57 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-В смысле "на клиента или на сервер"? Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 15:25:44 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-=*ShamaN*=-В смысле "на клиента или на сервер"? Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT). Аааа... вот как. Сейчас продумываю вариант, как реализовать UseCase, приведенный ниже... Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) но однозначно можно сказать, в JavaScript такое представление кода конвертировать будет очень проблематично, поэтому при "упаковке" кода в такой вид на клиенте должна быть Java, ну а дальше вопрос движка, умеющего "Съедать" такие конструкции. Этот код - примерный набросок того, что мне хотелось бы иметь в качестве описателя логики. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. Наверное, это больше на серверный вариант похоже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 16:53:56 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) ====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится)) на клиенте должна быть Java, ==== это уже не веб проект( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:00:25 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) ====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится)) на клиенте должна быть Java, ==== это уже не веб проект( Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo Я не знаю, почему у MS не получилось)) У МС обычно вообще не получается))) А по поводу "не вэб-проект", это да, совсем не вэб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 16:15:46 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo что именно? Это rich гуи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 16:42:08 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123, Как я понял, принцип jvx состоит в том, что клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации. А дальше дело рендеров, они эти дакларации воспроизводят. Вы прикрепили карртинку swing-приложения, там еще есть отрендеренный интерфейс под чистый вэб (похоже на ExtJS), flex и тот же swing, завернутый в апплет. А в репозитории лежит порт рендерера для vaadina. Возвращаясь к вопросу исполнения кода, на клиенте или на сервере, уместно отметить тип клиента - исполняемый он или терминальный. В исполняемом виде трудно представить, как java код будет выполняться на клиенте без jvm, и как вы верно подметили, это уже не вэб. В терминальном исполнении на клиенте имеется только представление и реакция на действия пользоваля отрабатввается на сервере, в данном контексте клиентский код на серевере может вполне себе использовать все прелести jvm и здесь не требуется транслировпть наши формы тз java в javascript (aka gwt). Я думаю, что тема в топике исчерпала себя и можно заканчивать дискуссию. Библиотеки я использовать не буду, ибо написать свой обработчик 'тонких' задекрированных программистом клиентских классов дело не сложное. Основная работа, организовать контракт взаимодействия системного кровня с прикладным. Всем спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 08:41:55 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации я и спрашивал, как это выглядит КОНКРЕТНО в коде и в готовом виде. Т.е. "по шагам". Т.к. компонент "ВыборДаты" или "ТекстовоеПоле" знаю, а "обобщённый компонент" - не знаю. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 15:20:11 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo что именно? Это rich гуи? Ну а почему нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:38:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38433109&tid=2127987]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
210ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 579ms |

| 0 / 0 |
