Компоненты / архитектура Java RAD - совет для разработчика .NET? - PullRequest
4 голосов
/ 14 января 2010

Я новичок в Java (но имею опыт работы с .NET).

Мне нужно, чтобы Java-приложение было запущено и работало быстро, поэтому мне нужен совет по компонентам, которые упростят или уменьшат сложность общих задач и окупятся сразу или, по крайней мере, потребуют минимальных инвестиций. вовремя потратил на обучение, как использовать компонент. У меня нет недель, чтобы разобраться со сложными или обширными средами - я ищу надстройки, которые просты в использовании и снимают некоторые проблемы использования сырых API. Однако, если сырой API является лучшим вариантом для любой из этих задач, это нормально, дайте мне знать ...

Уровень данных Я хочу написать конкретных провайдеров для MySQL, MSSQL, Postgres, но в остальном доступ к данным довольно прост. Мне, вероятно, понадобятся транзакции. Что ты предлагаешь? Скажем, Spring Data Access, предлагает что-нибудь стоящее по сравнению с JDBC? Что-нибудь еще мне нужно подумать? Думаю, что-то вроде Hibernate будет излишним и займет слишком много времени, чтобы начать работать - как вы думаете?

Средний уровень Слабосвязанный бизнес-уровень на основе интерфейса. Мне нужно иметь возможность взаимодействовать со средним уровнем через веб-приложение и настольное приложение - как лучше всего это представить? Веб-сервис?

Настольное приложение Я знаю о Swing - есть ли другие простые компоненты интерфейса рабочего стола? Мне понадобится какой-то компонент планирования для запуска фоновых задач.

Веб-приложение Мне понадобится какой-то кеш, мне нужны пользовательские сессии, мне нужны динамические страницы. Из того, что я могу сказать, JSP являются Java-эквивалентом PHP или какого-либо другого серверного языка сценариев (и не поддерживают состояние). Фреймворк MVC может быть излишним, если только не существует фреймворка, с которым очень легко работать? Я слышал, что есть Java-эквивалент веб-форм ASP.NET - это хорошо? Может быть, JSP здесь будет достаточно?

Мне нужен практический совет / ваш опыт работы с компонентами, а не список веб-ссылок:)

Спасибо за любой совет ..

Ответы [ 3 ]

2 голосов
/ 14 января 2010

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

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

  • Для уровня данных : JPA (Hibernate или другой поставщик JPA)
  • Для среднего уровня : Spring - он чрезвычайно мощный и обеспечивает множество функций, таких как поддержка транзакций, планирование и т. Д. Его можно легко использовать вместе с Apache CXF для предоставления веб-служб.
  • Для веб-приложения - JSF, Spring MVC, Struts
  • Для Настольного приложения - Swing в порядке. Имеет возможность обрабатывать фоновые задачи. SwingX - куча приятных компонентов.

AppFuse поддерживает все вышеперечисленное.

2 голосов
/ 14 января 2010

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

Из того, что я могу сказать, JSP являются Java-эквивалентом PHP

Не совсем верно. JSP может сделать больше, чем это. Более того, (ab) использование JSP способом PHP (со встроенным кодом Java как scriptlets ) считается плохой практикой. Предполагается, что JSP будет использоваться в качестве шаблона, в котором вы можете динамически управлять потоком страниц с помощью тегов, таких как JSTL , и получать доступ к внутренним данным с помощью Язык выражений .

Я слышал, что есть Java-эквивалент веб-форм ASP.NET

Это называется JavaServer Faces (JSF) . Однако есть конкуренция, например Apache Struts и Spring MVC .

- это хорошо? Может быть, JSP здесь будет достаточно?

JSF (как и любая другая приличная среда MVC) абстрагирует все, что необходимо учитывать в обычном приложении MVC, так что в итоге вы получите только файл XHTML (или JSP) и класс Javabean. Таким образом, вам не нужно контролировать запросы (пользовательские сервлеты и т. Д.), Параметры запроса процесса (request.getParameter () и т. Д.), Базовую проверку / преобразование (обязательность, преобразования типа ввода строки / числа / даты), обновление значения модели (задайте обработанные / преобразованные / проверенные параметры в javabeans) и т. д. Платформа MVC позаботится обо всей этой скучной работе прозрачно.

JSP может быть достаточно, если вам нужно развить на пару всего несколько страниц. Но если вы хотите разрабатывать больше страниц или веб-приложений, то вы хотели бы уже иметь каркас, чтобы вам не приходилось снова и снова изобретать обычную работу.

2 голосов
/ 14 января 2010

Я бы проверил Грааля для модели / контроллера / вида механизма и веб-интерфейса. Он очень быстро запустит вас в работу с ORM, моделью, динамическими страницами и т. Д. (Это модель RoR-Ruby-on-Rails-модель).

Оттуда я бы посмотрел на использование Java RMI для связи с интерфейсом рабочего стола. RMI входит в стандартную комплектацию Java и естественным образом соответствует требованиям связи Java-Java. Я бы не стал смотреть на веб-сервисы, если у вас нет требований к мультиязычности / платформе. RMI довольно прост в настройке, с небольшой настройкой.

Ваш уровень обслуживания с поддержкой RMI должен будет перехватывать модель, предоставленную Grails, но это должно быть тривиально. Чтобы уменьшить возможные несовместимости клиент / сервер (вызванные изменениями интерфейса), вы можете обслуживать рабочий стол Java через (скажем) Java Web Start (у вас будет веб-сервер от Grails), и он может из той же кодовой базы, на которой работает ваш сервер. Современные обновления развертываются при обновлении серверной части.

...