|
|
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Товарищи, взываю вашему кругозору! Есть ли фреймворки для построения интерфейсов, содержащие в себе: - API - описательный слой (аннотации и интерфейсы) для определения представлений и виджетов - Common классы - реализация классов-обработчиков аннотированных классов, евэнтов, команд и пр. - Реализация - конкретный движок, который "рендерит" интерфейс в рамках какой-то одной технологии, SWING например. С точки зрения использования хотелось бы иметь такой: 1. Создать класс представления 2. Заинжектить виджеты, сервисы и ... при помощи спец. аннотаций из API с указанием атрибутов каждого элемента (возможно создать некий XML с параметрами разметки и пр.) 3. Закодить события, листенеры и обработчики и отметить их аннотациями 4. Зарегистрировать этот класс представления в "Регистре" 5. Увидеть результат Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:22 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии В Sun когда-то тоже такие мечтатели были. Они придумали JSF. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:28 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии В Sun когда-то тоже такие мечтатели были. Они придумали JSF. Спасибо. Но описания представлений и виджеты там вроде не универсальные, т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:45 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Но описания представлений и виджеты там вроде не универсальные В общем случае универсальные. До появления всяких фейслетов. -=*ShamaN*=-т.е. обработчики общие (Backing Beans), а представления нужно делать отдельно для каждого рендера... или я не прав? Нет. Представление тоже общее делается JSF тэгами. А затем пишется своя реализация JSF, которая умеет эти тэги рендерить в нужный движок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 14:49 |
|
||
|
Абстрагирование 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 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Blazkowicz, премного благодарен, я серьёзно рассмотрю JSF в качестве клиентского двигла. Facepalm. Зачем это всё? JSF еле выехал на web, а на GUI его вообще никто не поддерживает, кроме может быть ADF. -=*ShamaN*=-Получается, в данной трактовке, нужно будет JSF-представления рендерить в Vaadin... Каким боком тут Vaadin всплыл? -=*ShamaN*=-Ок, буду ковыряться, но JSF пока №1, ибо стандарт, а не конторская поделка, спасибо ещё раз... Ну, не взлетит ведь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 16:48 |
|
||
|
Абстрагирование 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 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию... Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:02 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
мертворожденное решение - не тратьте время. Если даже базу так и не асбтрагировали нормально, то что говорить о UI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2013, 17:13 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-=*ShamaN*=-А вот нам, программистам, от него как то надо абстрагироваться, чтобы код представлений не был завязан на конкретную технологию... Зачем? Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 10:50 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Нет, так нет. http://en.wikipedia.org/wiki/5_Whys ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 10:53 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... упрямый))). Всё равно будет делать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2013, 14:18 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Вот на эту тему готов в личке пообщаться, чтоб флуд не разводить... упрямый))). Всё равно будет делать) Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 09:39 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии http://code.google.com/p/swinghtmltemplate/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 10:28 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер. "Убиваться не буду, но изолировать по любому (с)" )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 10:40 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Не, Петро, убиваться над технологией не буду... Но изолировать прикладной код буду по-любому)) в вебе это не просто. Все хотят изолировать, только никто не знает куда))). На клиента или на сервер. "Убиваться не буду, но изолировать по любому (с)" )) В смысле "на клиента или на сервер"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 15:22 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-В смысле "на клиента или на сервер"? Web GUI бывают с реализацией логики на сервере (JSP) или на клиенте (GWT). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2013, 15:25 |
|
||
|
Абстрагирование 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 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) ====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится)) на клиенте должна быть Java, ==== это уже не веб проект( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 14:00 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Кажется, в данном раскладе не важно, клиент или сервер; по крайней мере, искренне хочется в это верить))) ====== прикольно)). У MS с его сильверлайтом уже не получилось. Может у вас получится)) на клиенте должна быть Java, ==== это уже не веб проект( Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo Я не знаю, почему у MS не получилось)) У МС обычно вообще не получается))) А по поводу "не вэб-проект", это да, совсем не вэб ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 16:15 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo что именно? Это rich гуи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2013, 16:42 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123, Как я понял, принцип jvx состоит в том, что клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации. А дальше дело рендеров, они эти дакларации воспроизводят. Вы прикрепили карртинку swing-приложения, там еще есть отрендеренный интерфейс под чистый вэб (похоже на ExtJS), flex и тот же swing, завернутый в апплет. А в репозитории лежит порт рендерера для vaadina. Возвращаясь к вопросу исполнения кода, на клиенте или на сервере, уместно отметить тип клиента - исполняемый он или терминальный. В исполняемом виде трудно представить, как java код будет выполняться на клиенте без jvm, и как вы верно подметили, это уже не вэб. В терминальном исполнении на клиенте имеется только представление и реакция на действия пользоваля отрабатввается на сервере, в данном контексте клиентский код на серевере может вполне себе использовать все прелести jvm и здесь не требуется транслировпть наши формы тз java в javascript (aka gwt). Я думаю, что тема в топике исчерпала себя и можно заканчивать дискуссию. Библиотеки я использовать не буду, ибо написать свой обработчик 'тонких' задекрированных программистом клиентских классов дело не сложное. Основная работа, организовать контракт взаимодействия системного кровня с прикладным. Всем спасибо)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 08:41 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-клиентский код пишется с использованием обобщенных компонентов и виджетов; таким образом, задача разработчика - задекларировать интерфйейс и поведение в педоставляемой библиотекой обобщенной нотации я и спрашивал, как это выглядит КОНКРЕТНО в коде и в готовом виде. Т.е. "по шагам". Т.к. компонент "ВыборДаты" или "ТекстовоеПоле" знаю, а "обобщённый компонент" - не знаю. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2013, 15:20 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Petro123, а вот у них получилось: http://www.sibvisions.com/en/jvxmdemo что именно? Это rich гуи? Ну а почему нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 13:38 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
AlexJmНу а почему нет? дык по умолчанию, никто не верит, что это ноу-хау)) именно с тонким клиентом. А по картинке - обычная веб страничка....без "пошаговых родов". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2013, 16:15 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123AlexJmНу а почему нет? дык по умолчанию, никто не верит, что это ноу-хау)) именно с тонким клиентом. А по картинке - обычная веб страничка....без "пошаговых родов". Самое смешное - что этим (по первым впечатлениям-ковыряниям) действительно вполне можно пользоваться в какой-там наколенной корпоративной ERP. Как замена Oracle Forms - вообще прекрасно. Они б еще Binding Variables ввели - цены б не было. А так - надо DataAccess малость переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 09:37 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
AlexJmPetro123пропущено... дык по умолчанию, никто не верит, что это ноу-хау)) именно с тонким клиентом. А по картинке - обычная веб страничка....без "пошаговых родов". Самое смешное - что этим (по первым впечатлениям-ковыряниям) действительно вполне можно пользоваться в какой-там наколенной корпоративной ERP. Как замена Oracle Forms - вообще прекрасно. Они б еще Binding Variables ввели - цены б не было. А так - надо DataAccess малость переделывать. Да, похоже, что свой костыль для БД они впилили жёстко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2013, 16:48 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Попробуйте сначала сделать классный интерфейс без абстракций. А потом если все еще будет желание, переработаете его в нужные абстракции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 02:18 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
privateПопробуйте сначала сделать классный интерфейс без абстракций. А потом если все еще будет желание, переработаете его в нужные абстракции. Как показывает практика, руки "потом" до абстракций или до чего-то подобного не доходят, ибо ведь и так работает ;)) Поэтому если делать - так сразу, пусть это время займет, зато потом профит будет без лишних телодвижений... Оно ведь как обычно бывает - пользователи: "Во, классно сделали! Давайте ещё вот это... вот это и вот это срочно... " - и так далее; потом год за годом вспоминаешь об абстракциях только в курилке))) А кода в проекте становится все больше, и без абстракций... И в один прекрасный момент приходит точка, после которой об абстракциях вообще можно забыть, потому что перепилить существующую отлаженную базу кода = переписать все заново. Спасибо за совет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 09:57 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Вот ещё одна штуковина. Тот же JVx, для EE http://sourceforge.net/projects/jvxee/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 10:00 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Дело не в том что это займет лишнее время, а что даже без абстракций классный интерфейс встречается в одном случае из 10. В случае-же когда внимание отвлекается на что-то еще типа абстракций - нормальный интерфейс не получается почти никога. Поэтому лучше решать постепенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 12:39 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Вот ещё одна штуковина. Тот же JVx, для EE http://sourceforge.net/projects/jvxee/ "как показывает практика (аффтар)" у тебя будет ещё одна 101 штуковина, которая никому не будет нужна. Т.к. это ТЗ: -=*ShamaN*=-Конечная цель: иметь классы представлений, абстрагированные от конкретной технологии абстрактный сферический конь в вакууме. Даже на MVC не тянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 12:44 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123 у тебя будет ещё одна 101 штуковина, которая никому не будет нужна. Объективно, Вам, Petro, она точно не нужна))) Petro123 ... Даже на MVC не тянет. ..и не должно интерфейс тут rich, в вэбе или нет - неважно И для rich stateful моделей больше подходит MVP, который в одном ряду с MVC стоит Как трамплин для реализации подхода, JVx отличный кандидат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 13:28 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-интерфейс тут rich, в вэбе или нет - неважно Огласите весь список "неважно". - HTML5 или неважно? - без апплетов или чистый тонкий клиент или неважно? - для мобилок или неважно? - за 6 шагов пишется проект или за 55 - модель 1С, где свой класс программистов и ЯП или неважно. Просто всё пока абстрактно и далеко от программиста. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 13:41 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
privateДело не в том что это займет лишнее время, а что даже без абстракций классный интерфейс встречается в одном случае из 10. В случае-же когда внимание отвлекается на что-то еще типа абстракций - нормальный интерфейс не получается почти никога. Поэтому лучше решать постепенно. А что понимается под классным интерфейсом? ИМХО, организационно на интерфейс отвлечься "потом" проще, чем на внутренние конструкции приложения. Интерфейс живёт отдельно от логики приложения, меньше рисков сломать что-то отлаженное. Пользователям/заказчикам эти изменения видны, эта работа очевидна. Если заниматься внутренними конструкциями и абстракциями позже, то у пользователей/заказчиков возникают вопросы типа "Вы изменили внутренний код приложения, а что для нас изменилось" и претензии "а стоило ли, если все и так хорошо работало, зачем вы тратите время? задача уже решена, нас все устраивает". У нас есть унаследованное приложение, ситуация ровно такая, как я описал в самом начале: лучше не трогать, чтобы штукатурка не посыпалась, хотя интерфейс меняется без проблем и под аплодисменты. Мое мнение конкретно по этому вопросу не изменится. И, да, как подметил Petro, существует паттерн MVC, который изолирует интерфейс. Эта изоляция позволяет менять интерфейс без изменений в контроллерах и моделях. НО! Если не продумать заранее применение этого паттерна в проекте, но нарисовать классный интерфейс, то стоимость поддержки и изменений такого кода будет возрастать прогрессивно в зависимости от "размера" проекта, неважно, на уровне логики или интерфейса эти изменения вносятся. Кстати, то что я имел ввиду под абстрагированием, покрыто паттерном Adapter. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 13:47 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-, - в Delphi ГУИ мышкой кликается одно окно в день. - в JS ГУИ верстается одно окно в день. - в Java - GWT \ JSF ........ Если вы сделали Толстый клиент, то это ваша проблема. Инструменты то есть. Боязнь сломать только от незнания их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 13:59 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-интерфейс тут rich, в вэбе или нет - неважно Огласите весь список "неважно". 1 - HTML5 или неважно? 2 - без апплетов или чистый тонкий клиент или неважно? 3 - для мобилок или неважно? 4 - за 6 шагов пишется проект или за 55 5 - модель 1С, где свой класс программистов и ЯП или неважно. 6 - Просто всё пока абстрактно и далеко от программиста. IMHO 1) HTML5 или XUL или Swing или Flex или @Delphi! renderer@ - не важно я, как прикладной программист, хочу только описывать: 1) декларативно - что должно быть в интерфейсе 2) программно - обработчики далее я хочу деплоить свои артефакты в абстрактное "приложение" и чтобы они обрабатывались там, т.е., что бы я видел интерфейсы и реакцию 2) В данном подходе есть артефакт, называемый "приложение" - это конкретная реализация, и их может быть несколько (нами выбран Vaadin, как клиентская платформа). Для того чтобы мои декларативные описания работали, нужно написать конкретный движок на Ваадине, а точнее фабрику компонентов. Мои декларативные интерфейсы должны работать на ваадиновском виджетсете. Ну, я завтра захочу Swing... Теперь пишем рендер декларативных интерфейсов в Swing, ведь они и там работать будут, верно? 3) Для мобилок это работать не будет, не стыкуются лэйауты. Хотя поведение менять не придётся. 4) Проект пишется за 55 шагов 5) Декларативная часть подразумевает описание на Java. Хотя приложение, которое рендерит интерфейсы и исполняет обработчики может быть написано и на С. 6) Petro, Вы, как всегда, правы... Реально, этот вопрос относится к компетенции архитекторов. В SCJP вроде бы даже есть отдельно сертификация такая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:04 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Декларативная часть подразумевает описание на Java конкретнее пример , и почему не на JS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:12 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Я технических проблем реализации не вижу. Паттерны: MVP + Adapter (для компонентов и приложения) JVx ясно даёт показать, что это возможно... Одна и та же демка поставляется: - в Swing (как апплет и Standalone), Flex, GWTxxx, пилится фабрика для ваадин реализации... Чего мы тут спорим, это реально... И, действительно, не важно, что там, HTML или ещё что-то... Да хоть QT/// был бы движок и хавал бы УНИВАРСАЛЬНУЮ АБСТРАКТНУЮ (чувствую, Petro зеленеет) декларацию... Вопрос уже исчерпал себя... давайте завершать дискуссию, уже все понятно, во всяком разе, я разобрался в своём вопросе и уже даже XSD-схему успел нарисовать для описания представлений в XML, а тут все спор никак не утухнет не понятно из-за чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:13 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Декларативная часть подразумевает описание на Java конкретнее пример , и почему не на JS? Думали над этим (чтобы в БД типа сложить все можно было). Отказались из-за типизации (её отсутствия) и чтобы не плодить нотации. Хотя идея применения JS в данном случае имеет своё право на жизнь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:17 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-, Я если честно не понимаю масштаба вашей проблемы, зачем вам эта абстракция так нужна? Ну написали вы 250 компонентов, которые и под vaadin и под jsf и под Swing, а дальше то что? поддержка всего этого? Вон у Vaadin часто меняются концепции, да и в JSF - Richfaces c IceFaces не дружат. В любом случае вы будете разгребать и строить костыли, так может и не стоит игра свеч? Я уверен что проще разнести архитектуру грамотно, а не порождать лишние уровни абстракции. А сама задача очень интересная желаю вам удачи, думаю вот так сразу вас эта идея не отпустит :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:19 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Чего мы тут спорим, это реально конечно всё можно написать. И даже так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Только в посыле "не важно какая БД", есть столько же ньюансов, как и в после "неважно что рендер". Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:21 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
GregTk Вон у Vaadin часто меняются концепции... Вот от этих изменений я и хочу основную массу прикладного кода оградить... PS// Сама эта идея возникла в процессе перевода с ваадина 6 на 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:22 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
GregTk-=*ShamaN*=-, ... желаю вам удачи, думаю вот так сразу вас эта идея не отпустит :) Спасибо)) точно, не отпустит, забористая зараза)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:24 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-Вот от этих изменений я и хочу основную массу прикладного кода оградить... с этим согласен. Удручает, что при смене версии Любой библиотеки приходится рефакторить код. Но, это наша работа)). Никак не "оградить" ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:25 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Вот от этих изменений я и хочу основную массу прикладного кода оградить... с этим согласен. Удручает, что при смене версии Любой библиотеки приходится рефакторить код. Но, это наша работа)). Никак не "оградить" ))))) Petro, на исходе своей кампании по захвату этой методики, могу поделиться впечатлениями и результатом, получилось или нет, если Вам интересно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:28 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-, угу. Вы будете первый, кто разделил 3 богатыря в Java ГУИ <--> прикладной код <--> БЛ с событиями. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:46 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-, угу. Вы будете первый, кто разделил 3 богатыря в Java ГУИ <--> прикладной код <--> БЛ с событиями. )) ОК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 14:59 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Petro123-=*ShamaN*=-Чего мы тут спорим, это реально конечно всё можно написать. И даже так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Только в посыле "не важно какая БД", есть столько же ньюансов, как и в после "неважно что рендер". Удачи! Вот меня, скажем JVx тоже "зацепил". Но не концепцией "любая БД" или "любой клиент", а тем, что я пока вижу единственную вменяемую (даже Qt нервно курит в сторонке) организацию DataBinding. Т.е. это им почти удалось - TDataSet, но в Java. И что еще немаловажно (в последнее время для это очень актуально) - проект развивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2013, 18:21 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Вот набросок того, что получается, "as is" (попрошу без критики - это пока всего лишь рабочий черновик) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:11 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
А это то, как выглядит внешне ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:11 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
А это "прикладной" код ( работа с контейнером данных не вынесена в API, поэтому пришлось "разврапить" таблицу и написать то, чего тут быть не должно ) Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. + композиция в XML Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:15 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
Наверное, тему можно закрывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 15:21 |
|
||
|
Абстрагирование UI
|
|||
|---|---|---|---|
|
#18+
-=*ShamaN*=-, до заявленной темы ещё очень далеко. Хотя, трудно смотреть на код Прикладной, в котором есть "его тут быть не должно )" - декларативно ГУИ должно быть отдельно, и там желательно описать не только Caption-Title, но и setIcon 15 строк и т.д. и т.п. Т.е. файл описания ГУИ выше по скрину, никак не тянет на 15 строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2013, 16:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2127987]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
198ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 543ms |

| 0 / 0 |
