![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
После долгих исканий и метаний (например, пытались смотреть OpenSwing), всё-таки решили остановиться на «классике»: NetBeans Platform. Пришло осознание, что систему нужно полностью переписать, причём не изобретать велосипед, а сделать так, как люди делают. Поэтому поставил себе NetBeans IDE (кстати, потыкавшись и пообвыкшись, понял, что оно не многим хуже Eclipse и даже IDEA, зато в него интегрировано многое) и пытаюсь разобраться с фреймворком. Пока не очень понятно (но что-то начинает проясняться), и ещё пока не ясно, как организовать 3-tier-архитектуру (не знаю даже, как это сказать по-русски: трёхъярусную архитектуру?) — а она нам очень нужна. Судя по всему, надо будет использовать что-то вроде Hibernate на серверной стороне (ещё и с ним придётся разбираться).
Минус во всём этом один: приходится изучать большой материал, совершенно новый для меня (я даже термины-то не все понимаю), да ещё и по-английски. А с возрастом я чувствую, что способность к обучению у меня всё ниже и ниже. Ей-богу, мне проще что-то самому кодить, чем разбираться в том, что понапридумывали другие... На работе меня утешают, что, мол, изучение нового — это тренировка мозгов против маразма :) Но башка всё-таки пухнет. :(
Минус во всём этом один: приходится изучать большой материал, совершенно новый для меня (я даже термины-то не все понимаю), да ещё и по-английски. А с возрастом я чувствую, что способность к обучению у меня всё ниже и ниже. Ей-богу, мне проще что-то самому кодить, чем разбираться в том, что понапридумывали другие... На работе меня утешают, что, мол, изучение нового — это тренировка мозгов против маразма :) Но башка всё-таки пухнет. :(
(no subject)
Date: 04/02/2012 18:24 (UTC)Что касается двух других слоев, то вот эта книга как раз об этом. Поскольку она "from beginner to professional", то я уверен, что она - лучшее чтиво на эту тему. Предлагаемую ораклом книгу я осилить не смог, а вот эту - запросто :) И поскольку я, как и вы, на джаву пришел с делфей, то уверен, она и вам подойдет.
(no subject)
Date: 05/02/2012 08:12 (UTC)Я сейчас грызу талмуд «The Definitive Guide to NetBeans Platform» (только начал ещё).
(no subject)
Date: 05/02/2012 12:12 (UTC)GlassFish или JBoss - это самые популярные свободные сервера.
Соответственно, при такой архитектуре клиент и вовсе может быть "тонким", т.е. набором веб-страниц. Если же вы делаете "толстый" клиент, то по всей видимости, серверное приложение у вас будет набором веб-сервисов.
(no subject)
Date: 05/02/2012 13:18 (UTC)В том смысле, что клиент не должен обращаться к БД напрямую, не должен содержать SQL-запросов.
>Предполагается, что между БД и клиентом находится сервер приложений, относительно которого БД находится локально. Хотя для большей производительности БД и может крутиться на отдельной машине, но с ней общается только сервер приложений, а клиент о ней вообще знать не обязан.
Ну да, именно это я и имею в виду.
>Соответственно, при такой архитектуре клиент и вовсе может быть «тонким», т.е. набором веб-страниц.
Это у нас фактически было раньше, но практика показала, что веб-страницы — это неудобно (даже если это SmartGWT). Решили делать на клиентской стороне полноценное приложение на Swing.
>Если же вы делаете «толстый» клиент, то по всей видимости, серверное приложение у вас будет набором веб-сервисов.
Серверное приложение должно отрабатывать запросы клиента, делая свои запросы к БД, преобразовывая данные и отдавая их клиенту.
(no subject)
Date: 05/02/2012 13:25 (UTC)Да, он их и не будет содержать. На клиенте вы будете получать готовые объекты своих классов.
-- Серверное приложение должно отрабатывать запросы клиента, делая свои запросы к БД, преобразовывая данные и отдавая их клиенту.
Так веб-сервисы и работают.
(no subject)
Date: 05/02/2012 13:38 (UTC)Т.е. разумеется, вы будете получать данные в XML или JSON, но джава имеет готовые инструменты, которые позволяют по этому поводу не париться. Грубо говоря, выглядеть это будет так:
ClassForSend sendedObject.setData(data);
RecievedClass recievedObject = StaticClassThatImplementsIO(sendedObject);
int x = recievedObject.getAnotherData();
(no subject)
Date: 05/02/2012 13:42 (UTC)