Технологии, необходимые для создания сквозного веб-приложения? - PullRequest
3 голосов
/ 24 апреля 2009

Я хочу разработать веб-приложение, например, онлайн-планировщик. (Да, я знаю, что это было сделано миллион раз.) Большая часть моего опыта в Java, поэтому я хочу использовать это при рассмотрении технологий.

Прежде всего, я был системным разработчиком, мало знакомым с программированием пользовательского интерфейса, поэтому я думаю, что именно здесь мне понадобится большая часть моего обучения.

Есть ли у вас какие-либо предложения по технологиям, на которых я должен сосредоточиться? Я хочу сосредоточиться на технологиях, которые являются товарными и простыми в освоении.

Пока что это то, что мне нужно для трехуровневой архитектуры (с нуля):

  • База данных (вероятно, MySQL или PostgreSQL) - SQL, JDBC
  • Внутренний сервер - Java
  • Веб-сервер (Tomcat) - JSP, сервлеты
  • Веб-фреймворк - Гобелен (слабо на этом, есть ли лучшие альтернативы?)
  • Браузерные технологии - HTML, Javascript, CSS (нужно учиться)

Я слышал об инструментах разработки "Богатых интернет-приложений", таких как Flex и Silverlight, но я не уверен насчет рынка таких технологий.

Редактировать: Похоже, что есть много упоминаний о Spring / Hibernate, поэтому я рассмотрю это. Я ценю обратную связь.

Ответы [ 6 ]

3 голосов
/ 01 мая 2009

Я бы не согласился с тем, что не существует рынка многофункциональных интернет-приложений. На самом деле наблюдается растущая тенденция в приложениях корпоративного размера, которые делаются в виде RIA. Преимущество RIA перед обычными веб-приложениями заключается в удобстве использования. Вы получаете все преимущества веб-приложения, но при этом можете сохранять пользовательский интерфейс в стиле рабочего стола.

Вы говорите, что пришли из Java и не имели большого опыта работы с веб-технологиями. Ну, я должен сказать, что вы действительно звучите как идеальный пользовательский кандидат для GWT или IT Mill Toolkit (на основе GWT). Оба являются фреймворками, которые позволяют создавать богатые интернет-приложения исключительно на Java! Навыки HTML или JavaScript не требуются. Вам нужно будет изучить CSS, чтобы создать собственную тему для приложения.

Обе платформы имеют открытый исходный код и отлично подходят для коммерческого использования. Что отличает IT Mill Toolkit от GWT, так это то, что он управляется сервером, то есть бизнес-логика реализована и запускается на сервере, а не как JavaScript в браузере клиента (как в случае с GWT). Эта серверная архитектура делает приложение намного более безопасным с точки зрения безопасности программного обеспечения. Преимущество GWT перед IT Mill Toolkit заключается в расширении сообщества пользователей.

Что касается фреймворков ORM, Hibernate довольно популярен. Тем не менее, я не очень люблю это, потому что, хотя он технически реализует Java Persistence API, он не всегда ведет себя должным образом, и вам придется использовать множество специфических для Hibernate аннотаций, которые довольно сложно связывают ваше приложение с hibernate (плохо!), и вы не можете просто легко перейти к другому провайдеру JPA, если хотите. Платформой ORM, реализующей JPA, является EclipseLink . Я лично не использовал EclipseLink в приложениях корпоративного размера (потому что у меня все еще не было возможности), но я использую его для меньшего проекта, и это кажется довольно хорошим. EclipseLink имеет открытый исходный код, и его лицензирование удобно для коммерческого использования. EclipseLink постоянно разрабатывается Oracle, так что его опыт прочен. На самом деле он основан на TopLink - реализации JPA Oracle с закрытым исходным кодом.

Надеюсь, это поможет:)

3 голосов
/ 24 апреля 2009

Я бы лично добавил Spring в этот список. Внедрение зависимостей, безусловно, является отличной технологией для изучения, и Spring позволяет вам использовать ее столько, сколько вам угодно, по моему опыту.

Вы явно не упомянули модульное тестирование, но это, безусловно, должно быть частью микса - у меня нет большого опыта вне JUnit в качестве фактической среды тестирования, но есть также EasyMock и JMock (среди прочих) для насмешки зависимостей.

Ничего подобного, но все же важная вещь IMO:)

3 голосов
/ 24 апреля 2009

Я думаю, что ваши базы достаточно хорошо покрыты.

Возможно, вы захотите взглянуть на некоторые фреймворки / библиотеки, чтобы вам было легче.

Веб-фреймворк - Wicket / Stripes / JSF / Tapestry (компонент против фреймворков на основе запросов)

Библиотека Javascript - JQuery / YUI / Dojo

Что касается языка шаблонов, вы можете использовать JSP / Velocity / Freemarker.

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

Просто к вашему сведению, которым я сейчас пользуюсь.

  • Apache - веб-сервер
  • Tomcat - контейнер сервлетов
  • MySQL - база данных
  • Stripes - основанный на запросе веб-фреймворк
  • YUI - для AJAX
  • Spring - внедрение зависимостей
  • Hibernate - реляционное сопоставление объектов
  • jsp - для динамического генерирования html
2 голосов
/ 04 мая 2009

Задал в основном тот же вопрос некоторое время назад, с некоторыми довольно полезными ответами:

Инструменты для разработки сайтов

1 голос
/ 24 апреля 2009

Если вы используете Spring, тогда вы можете просто использовать Hibernate для перехода на mysql, и вы можете иметь там все, что вам нужно.

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

Документация Spring Framework может оказаться полезной, поскольку существует множество частей, которые вы можете использовать, при необходимости, Spring MVC, Spring Framework, Spring Webflow и Spring Security, если необходимо.

1 голос
/ 24 апреля 2009

Если вы используете серверную часть Java, я бы порекомендовал Hibernate для вашего JPA, JSF с RichFaces (AJAX / skinning) и Facelets (просмотр рендеринга / шаблонов) для вашего интерфейса и Шов , чтобы сложить все вместе. Это прекрасная комбинация.

...