Какой веб-фреймворк является лучшим для веб-приложения частного облака? - PullRequest
1 голос
/ 31 октября 2009

Наша команда является новичком в разработке веб-приложений. Мы занимаемся разработкой приложений для Windows / Linux с использованием Java. Команда также имеет большой опыт работы с Perl.

Новое задание - разработка внутреннего веб-приложения для частного облака. Весьма запутанно смотреть на все фреймворки для разработки веб-приложений: Ruby on Rail, Drupals, Zend Framework и т. Д. Все они - фреймворки с открытым исходным кодом, и все они утверждают, что являются лучшими для быстрой разработки веб-приложений. Каковы сильные и слабые стороны этих структур?

Какая платформа является лучшей для веб-приложения для управления контентом в режиме реального времени?

Поскольку команда имеет большой опыт разработки ОО-приложений, желательно иметь ОО-инфраструктуру с мощной поддержкой веб-виджетов. Любая рекомендация?

Ответы [ 3 ]

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

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

Drupal (и Joomla, и Wordpress) - все это основано на PHP. Приложения. Это комплексные решения, а не фреймворки. Вы можете найти один из них, уже соответствующий вашим требованиям, и при небольшом программировании это может оказаться именно тем, что вам нужно. Это камбуз приложения site , например, был построен с использованием WordPress, что подразумевает что можно сделать, просто подправив код.

Тем не менее, есть вероятность, что вам придется создавать приложение с нуля. Я считаю, что лучший способ начать с понимания основных Концепции веб-разработки будут, в вашем случае, как Java-разработчик, начать с простым приложением на основе сервлета / JSP. Вам нужно научиться использовать контейнеры сервлетов, такие как Tomcat или Jetty , и вы справитесь с относительно простой кривой обучения. Пропустите все старые методы JDBC / SQL, с которыми вы можете столкнуться в старых уроках, и просто попытайтесь хорошо понять концепцию MVC (Model-View-Control) При создании пользовательского интерфейса вы можете столкнуться с термином JSF, я предлагаю пропустить это тоже. Обычная практика в наши дни - создавать пользовательский интерфейс в чистом HTML / AJAX / javascript.

Говоря о JavaScript, JQuery является самым популярным среди различных фреймворков, но вы можете рассмотреть Прототип вместо этого, поскольку он хорошо интегрирован с Ruby on Rails и CakePHP (доберусь до них позже) Для вашего первого приложения попробуйте создать простое веб-приложение «запрос-ответ» (опять же, избегайте использования базы данных на этом этапе), с некоторым AJAX на этом пути.

Как только вы закончите (2-3 дня), вы будете готовы лучше решать сами какие рамки лучше всего соответствуют вашим потребностям. В этом смысле фреймворки Java ИМХО слишком раздуты и архаичны, но если у вас возникнет другая идея, то Spring является своего рода де-факто в этой области. Если вы не планируете строить крупное устаревшее предприятие приложения, избегайте J2EE / EE5 в целом, так как они считаются устаревшими, по крайней мере, в моем окружении. Даже если это не приемлемое решение, очень хорошая идея будет день для изучения Google AppEngine для Java , он основан на плагине Eclipse и на основе Jetty, и на этом уровне, изучение этого должно быть легким. Это сборщик сервлетов с некоторой добавленной стоимостью. Вы узнаете о концепциях ORM (это практически то, как вы будете работать с базами данных на любом другом современном веб-фреймворке). В качестве бонуса вы также запрыгиваете на облачные вычисления.

С этого момента выбор вашей окончательной основы станет намного проще. На данный момент, вы можете предпочесть дальнейшую экспертизу с Java, или подключиться к другому хорошо зарекомендовавшему себя веб-стеку. Если вы все еще настаиваете на том, чтобы продолжить работу с Java, посмотрите GWT (Google Web Kit был использован для сборки Google Wave). как это сильно напомнит вам старые добрые времена из знакомых компонентов Swing и макетов. Как экономически эффективное решение, я думаю, что это лучший выбор для вашего веб-приложения для управления контентом в режиме реального времени.

Однако, если вы хотите попрощаться со знакомым миром Java, вы некоторые люди будут настаивать на том, чтобы вы решили прыгнуть прямо к PHP или платформы Python, которые в настоящее время используются гигантами сети, Facebook, WordPress (PHP), Google и FriendFeed (Python) являются одними из них. Ruby on Rails тоже может быть вариантом (Twitter), но его славные дни уже позади, как многие структуры быстро приняли свои основные концепции и идеи. Для PHP я рекомендую CakePHP (сайт дополнений Mozilla), это будет легко переход из стека Java. Zend - тяжелый парень, а не ваше решение, если у вас мало времени,Codeigniter / Symphony может быть слишком легким для ваших потребностей, но заслуживают обзора.

Для Python рассмотрим новый фреймворк высшего класса от Facebook (разработанный FriendFeed), дом, который легко выучить, отличные рамки по имени Торнадо . Это отвечает на некоторые проблемы, которые не делает ни одна другая структура, это может быть именно то, что вам нужно. Вы можете получить его за 5 минут их домашняя страница . Turbo-Gear и web.py также хорошо установленные установки.

Надеюсь, я помог, удачи.

1 голос
/ 20 декабря 2012

Это довольно старый вопрос, но я подумал, что поделюсь своими мыслями, так как этот вопрос все еще актуален и его следует обсудить подробнее.

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

Какой бы ни была структура, самое главное, как вы разрабатываете веб-приложение. Например, вы можете не захотеть запускать какие-либо задачи Quartz / Cron в приложении, так как при увеличении масштабов все эти задания также умножаются. Это приводит к выполнению одной и той же работы несколько раз, тогда как ее следует выполнять только один раз.

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

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

0 голосов
/ 31 октября 2009

Как поклонник Python, я должен порекомендовать один из веб-фреймворков Python: web2py . Он прост в использовании, работает со многими базами данных и на GAE. Посмотрите слайды на их сайте.

...