Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Помогите орпеделиться с выбором технологии


Автор: zhz 27.6.2011, 15:24
Всем привет! Необходима помощь, нужно срочно начинать писать код, а чтобы начать, нужно знать , что для это нужно(помимо головы и рук))))  Перед тем, как задать вопрос начал читать  java ee basic concepts. Думаю проще излагать вещи тем языком что написаны там. Есть back-end tier(сервер MSSQL, Oracle,) с данными которыми надо манипулировать. Требования к Business tier: это должно крутится на FreeBSD, это должно быть бесплатно, это должно быть на джаве, чтобы и духу майкрософтовского не было(я верю что будущее за свободным ПО)))))).  С разбегу получилось поставить на фряху JDK Diablo, Tomcat 7, ну и maven в догонку. Glassfishv3 как то не получилось, но и особо не старался. После этого вычитал что томкат это веб контейнер, т.е. используя его можно будет реализовать только web-tier (т.е. клиентскую веб морду) и то, без извращений, только JSP(c первого взгляда JSF показался проще, если его можно назвать аналогом). А вот написать Guiшный client-tier ужо не получится. Мораль сей басни - надо чтобы логика крутилась на сервере, клиенты были(уже плевать - не принципиально) или gui(swing) или web-морда, что проще!!!?? Если веб-морда, то чтобы интефейс писать методом перетаскивания готовых компонентов(кнопочек, едитов, и т.п.) а не вставлять уродливые  конструкции вида println("хтмл тег такой-то"), вообщем чтобы написание кода(читай обучение java ee) проходило с комфортом. Использовать думаю NetBeans.  Посоветуйте необходимое ПО, framework'и какие нибудь, вообщем инструментарий

зы. пояснение к тому что будут делать клиенты, тыкать кнопочки, получать результат в табличном виде, распечатывать его, вносить данные, должны выполнятся хранимые процедуры на mssql, часть служебной информации можно(и думаю нужно) разместить на все том же BSD в mysql. 

и еще, нужно что то , что может графы рисовать, что то вроде graphviz, только для java. Прощу прощения за сумбурность, если в чем не прав, - поправьте, дополните. 

Автор: Vasay 27.6.2011, 17:06
zhz


Цитата

нужно срочно начинать писать код


Боюсь, сначала нужно будет хорошо поучиться годик другой, а потом писать код. 

Цитата

сли веб-морда, то чтобы интефейс писать методом перетаскивания готовых компонентов(кнопочек, едитов, и т.п.)


Забудьте.  Это зло. 


В Java куча путей, по которым можно пойти, пытаясь решить вашу задачу. 


Java SE знаете?

Автор: Entwickler 28.6.2011, 00:14
интерессный пост... много думалЬ ;-)

zhz ты в начале пути судя по изложению... единственно верно, как и сказал уже Vasay нужно поучится пару лет, а уж потом, писать код!

а где это пишится UI с помошью "конструкции вида println("хтмл тег такой-то")"?!!

Автор: zhz 28.6.2011, 00:48
по поводу поучится пару лет и потом писать код, - не согласен в том плане, что считаю лучшим способом выучить что-то, это поставить перед собой задачу, и пытаться ее решить. Например, тот проект, который мне надо написать, я изначально начал писать на perl-cgi, далее mod_perl, далее php, в итоге пришел к джава(тем самым наработки остались на каждом языке по чуть чуть)))). Конечно это хорошо, но лучше бы не тратил время и сразу начал на джаве писать.  
Цитата(Entwickler @  28.6.2011,  00:14 Найти цитируемый пост)
а где это пишится UI с помошью "конструкции вида println("хтмл тег такой-то")"?!! 

Сходу нашел например вот этот отрывок из руководства:
Код

pw.println("<table border=1>");

    try {

      List l = ManagementSystem.getInstance().getGroups();

      for (Iterator it = l.iterator(); it.hasNext();) {

        Group gr = (Group) it.next();

        pw.println("<tr>");

        pw.println("<td>" + gr.getGroupId() + "</td>");

        pw.println("<td>" + gr.getNameGroup() + "</td>");

        pw.println("<td>" + gr.getCurator() + "</td>");

        pw.println("<td>" + gr.getSpeciality() + "</td>");

        pw.println("</tr>");

      }

    } catch (SQLException e) {

      throw new ServletException(e);

    }

    pw.println("</table>");

   

  }

}

ну разве это красиво?)) 
Н осуть не в этом. Технологий уйма, хочется увидеть пусть и лаконичный но ответ, например:  ставь какойнить GlassTomJboss  как сервер приложений, интерфейс пиши используя такой фрэймворк,  и тп. Понимаю что нет универсального решения, каждый будет советовать что то своё, вот я и хочу прислушаться к советам, почитать про конкретные вещи и начать писать. Обращаться к конкретной части The Java EE 6 Tutorial  а не читать с самого начала, терпения уже нету(((

Я все еще не определился, но пака вы молчите, назрел вопрос))) : вот у меня стоит томкет 7, что надо прикрутить , чтобы приложение на Swing(может что лучше есть? О_о) работало как тонкий клиент? 
 

Автор: powerOn 28.6.2011, 08:57
Как вариант: 
server: Tomcat
view: JSF
infrastructure: Spring
persistence: Hibernate

как альтернатива: 
server: Tomcat
view: FreeMarker
infrastructure: Jersey + Spring
persistence: MongoDB

и еще:
server: Glassfish
view: JSF
infrastructure: EJB
persistence: Hibernate

Автор: Старовъръ 28.6.2011, 10:10
Начинай с маленьких проектиков, потом перейдешь к своему крупному (или делай свой крупный из маленьких). Если сразу начнешь с крупного, завалишь (тем паче с твоим запалом и нежеланием слушать старших, он на пользу не пойдет). Этот список нужно пройти всем молодым (и не очень) джедаям:
  • Eckel, Horstmann
  • Head First Object-Oriented Analysis & Design 
  • Head First Design Patterns
  • Joshua Bloch Effective Java
  • Head First Servlets & JSP
  • Martin Fowler Enterprise Patterns

Автор: zhz 4.7.2011, 07:53
А насколько необходимо использование persistence? Мне будет необходимо вызывать хранимые процедуры  MSSQL сервера, напрямую с таблицами работать практически не нужно, там где нужно, тоже думаю обойтись запросами. Как я понял, основное назначение перистентности, - это работа с таблицами как с объектами. Или персистентность действительно нужна?

Автор: Vasay 4.7.2011, 11:50
Цитата

А насколько необходимо использование persistence?


Зависит от задачи. Если у Вас многое завязано с MS SQL, то, наверно, имеет смысл написать свои DAO, в которых работать c базой посредством SQL.

Ну а методы DAO уже будут возвращать/принимать сущности в виде POJO.

Автор: powerOn 4.7.2011, 14:42
Цитата(zhz @  4.7.2011,  08:53 Найти цитируемый пост)
А насколько необходимо использование persistence?


под persistence имеется ввиду та часть твоей программы, которая занимается сохранением данных в постоянное хранилище (файл, SQL БД, NoSQL БД, и .т.п.) без привязки к конкретной технологии.

Автор: Embedded 4.7.2011, 21:15
zhz
Вот не знаю даже правильно ли это, но я наваял сайт по урокам Стампеде из сериала: http://forum.vingrad.ru/forum/topic-124877.html В принципе я не жалею, нашел много полезного для себя и сейчас продолжаю углубляться, хотя до сериала толком не изучил Java SE.


Старшие товарищи, а подскажите JSF это реально конкурент JSP? Я вроде что-то слышал, что JSF можно использовать хоть c Velocity. Сейчас просто заполняю пробелы по SE и еще там не был...

Автор: zhz 5.7.2011, 00:54
Embedded, Спасибо. 
powerOn, только лишь сохранением? Как я понял такие технологии как hibernate созданы для того чтобы, как уже сказали, быть независимым от конкретной субд, и работать с данными как с объектами
Why was Hibernate created?

Almost all contemporary, large applications are written in an object way. It is also true for J2EE applications, written in a typically object language: Java. As opposed to that, data are relational by nature and databases store them in a relational way. Both: object orientation for applications and relation of databases are totally natural. It is much faster to write object systems, they are also easier to design and divide tasks. Moreover, their implementation is usually very suitable for any kinds of alternations. Similarly, relational databases seem to be irreplaceable, mainly because they are very effective and introducing another model of storing databases soon is very unlikely.
Nevertheless, almost every application must store data somehow, therefore we have to combine in one system both: object orientation of its structure and relational model of storing data.

http://www.hibernatetutorial.com/Hibernate-tutorial-introduction.html

При этом, считаю, что при работе с хранимыми процедурами, использование данных вещей не совсем подходит, согласны?

Автор: powerOn 5.7.2011, 13:41
Цитата(zhz @  5.7.2011,  01:54 Найти цитируемый пост)
powerOn, только лишь сохранением?

Угу. Это типичное разделение в трехзвенной архитектуре.

Цитата(zhz @  5.7.2011,  01:54 Найти цитируемый пост)
При этом, считаю, что при работе с хранимыми процедурами, использование данных вещей не совсем подходит, согласны? 

Да, не совсем подходит.

Автор: emmanuil 5.7.2011, 20:15
Цитата(Embedded @  4.7.2011,  19:15 Найти цитируемый пост)
Старшие товарищи, а подскажите JSF это реально конкурент JSP? Я вроде что-то слышал, что JSF можно использовать хоть c Velocity. Сейчас просто заполняю пробелы по SE и еще там не был...

Даже не знаю, можно ли их так сравнивать...
Ранее в jsf для разметки использовался jsp, jsf был основан на нем. Но после доработки jsf для разметки стали использовать facelets, хотя при желании можно и поюзать jsp, но рекомендуют первое. JSF это стандарт JEE - view. Компонентно-ориентированный. JSF шире, есть свои менеджед бины, но лучше юзать CDI бины, например, если с сервлет контейнером. А если с апп. сервером, то все мощь EE.

Автор: Embedded 6.7.2011, 14:51
emmanuil
Спасибо братец за развернутый ответ. Я тебе поставлю + тока надо добраться до сотни) Но я зпомню

Автор: AlexSerov 9.7.2011, 01:35
Цитата(Embedded @ 4.7.2011,  21:15)
Старшие товарищи, а подскажите JSF это реально конкурент JSP? Я вроде что-то слышал, что JSF можно использовать хоть c Velocity.

Строго говоря конкурентом JSP может быть только нечто что разививает принципы на которых сами JSP построены. Иначе это альтернативы, а не конкуренты. Посмотрите HybridJava. Возможно (но не обязательно) Вас после этого перестанет интересовать JSP, JSF, а уж Velocity и подавно.

Автор: Embedded 9.7.2011, 10:00
AlexSerov
А Вы случаем не из команды разработчиков HybridJava?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)