Каковы за и против различных веб-платформ Java? [закрытый]

Вот пример создания и использования события с C #

using System;

namespace Event_Example
{
    //First we have to define a delegate that acts as a signature for the
    //function that is ultimately called when the event is triggered.
    //You will notice that the second parameter is of MyEventArgs type.
    //This object will contain information about the triggered event.
    public delegate void MyEventHandler(object source, MyEventArgs e);

    //This is a class which describes the event to the class that recieves it.
    //An EventArgs class must always derive from System.EventArgs.
    public class MyEventArgs : EventArgs
    {
        private string EventInfo;
        public MyEventArgs(string Text)
        {
            EventInfo = Text;
        }
        public string GetInfo()
        {
            return EventInfo;
        }
    }

    //This next class is the one which contains an event and triggers it
    //once an action is performed. For example, lets trigger this event
    //once a variable is incremented over a particular value. Notice the
    //event uses the MyEventHandler delegate to create a signature
    //for the called function.
    public class MyClass
    {
        public event MyEventHandler OnMaximum;
        private int i;
        private int Maximum = 10;
        public int MyValue
        {
            get
            {
                return i;
            }
            set
            {
                if(value <= Maximum)
                {
                    i = value;
                }
                else
                {
                    //To make sure we only trigger the event if a handler is present
                    //we check the event to make sure it's not null.
                    if(OnMaximum != null)
                    {
                        OnMaximum(this, new MyEventArgs("You've entered " +
                            value.ToString() +
                            ", but the maximum is " +
                            Maximum.ToString()));
                    }
                }
            }
        }
    }

    class Program
    {
        //This is the actual method that will be assigned to the event handler
        //within the above class. This is where we perform an action once the
        //event has been triggered.
        static void MaximumReached(object source, MyEventArgs e)
        {
            Console.WriteLine(e.GetInfo());
        }

        static void Main(string[] args)
        {
            //Now lets test the event contained in the above class.
            MyClass MyObject = new MyClass();
            MyObject.OnMaximum += new MyEventHandler(MaximumReached);

            for(int x = 0; x <= 15; x++)
            {
                MyObject.MyValue = x;
            }

            Console.ReadLine();
        }
    }
}
85
задан Pops 30 August 2011 в 20:24
поделиться

22 ответа

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

Из них, самое удобное для меня для работы с было Калитка , из-за легкой природы здания компонента и простоты шаблонной обработки страницы. Это идет вдвойне поэтому при использовании собственного кода дб вместо, в спящем режиме или некоторая другая платформа (я никогда не был абсолютно доволен Калиткой, в спящем режиме или Интеграция Spring).

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

Гобелен является большим продуктом, но это очевидно очень отличается от других с точки зрения модели разработки, поскольку это ведется главным образом одним чуваком. Howard Lewis Ship несомненно довольно умен, но я разочарован их решением в основном забыть назад совместимость с каждым выпуском. Снова, тем не менее, для Ваших потребностей это не может иметь значения, и я всегда находил продукты Гобелена радостными для работы против.

JSF отсутствовал в течение многих лет, и все еще чувствует себя подобно чему-то, что парень Struts создал для фиксации всех проблем Struts. Действительно не понимая все проблемы с Struts. Это все еще имеет незаконченное чувство к нему, хотя продукт очевидно очень гибок. Я использую его и имею некоторую нежность к нему с большими надеждами на ее будущее. Я думаю, что следующий выпуск (2.0), который будет поставлен в JEE6, действительно принесет его в свое собственное с новым шаблонным синтаксисом (подобный Facelets) и упрощенная компонентная модель (пользовательские компоненты только в 1 файле... наконец).

И, конечно, существует миллион меньших платформ и инструментов, которые получают их собственное следующее ( Скорость для главных потребностей, сырые данные JSPs, Struts, и т.д.). Я обычно предпочитаю, чтобы компонент ориентировал платформы сам, все же.

В конце, я рекомендовал бы просто смотреть на Гобелен, Калитку и JSF и просто выбрать тот, который чувствует лучшее Вам. Вы, вероятно, найдете тот, который просто соответствует способу, которым Вам нравится работать очень быстро.

58
ответ дан Aaron Digulla 24 November 2019 в 08:12
поделиться

Моим любимым способом пойти для действительно простых приложений является Apache VelocityTools (VelocityLayoutServlet) с Velosurf ( http://velosurf.sourceforge.net ).

Для более сложных приложений, Spring MVC или Struts 2.

0
ответ дан Nathan Bubna 24 November 2019 в 08:12
поделиться

Не может полагать, что никто не упомянул GWT

0
ответ дан Kevin Wong 24 November 2019 в 08:12
поделиться

Высказывание "использования JSF" немного к простому. Когда Вы решаете использовать JSF, необходимо выбрать библиотеку компонентов сверху его. Вы примените Томагавк MyFaces, Тринидад, Тобаго ( http://myfaces.apache.org/ )? Или возможно ICEfaces ( http://www.icefaces.org/ )? О, и если Вы будете использовать ICEfaces, то Вы будете использовать JSPs или Facelets для Ваших представлений?

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

3
ответ дан Tim Büthe 24 November 2019 в 08:12
поделиться

Я думаю для Ваших скромных требований, просто необходимо кодировать сервлеты или простые jsp страницы, которым можно служить с сервера Tomcat. Я не думаю, что Вам нужен любой вид веб-платформы (как распорки) для персональных данных веб-сайта

3
ответ дан 24 November 2019 в 08:12
поделиться

Все они - это - проблема;-)

4
ответ дан 24 November 2019 в 08:12
поделиться

Моим выбором является Калитка!!

5
ответ дан Franklin 24 November 2019 в 08:12
поделиться

Я услышал хорошие вещи о Платформе Spring также. В целом, тем не менее, я был не приведен в восторг большинством веб-платформ Java, я посмотрел на (особенно Struts).

Для простого приложения я определенно рассмотрел бы использование "необработанных" сервлетов и JSPs и не волновался бы о принятии платформы. Если сервлеты правильно написаны, это должно быть просто в будущем к порту к платформе при необходимости, когда приложение растет в сложности.

5
ответ дан Russell Mayor 24 November 2019 в 08:12
поделиться

Disclamer: Я работаю в Vaadin (ранее Фреза IT)

, Если Вы делаете что-то RIAish, Вы могли бы хотеть бросить взгляд на Vaadin. Это - открытый исходный код, ориентированный на UI на платформу Ajax, которая, мне, хороша использовать (я происхожу из среды PHP сам).

существует тематическое исследование , который сравнивает выполнение того же приложения (т.е. двух приложений с тем же набором функций) в Icefaces и Vaadin. Короче говоря это указывает, что разработка UI была значительно быстрее.

Даже при том, что исследование размещается в Wiki компании, я могу гарантировать, что это является объективным, подлинным и правдивым, хотя я не могу вынудить Вас в вере мне.

9
ответ дан Henrik Paul 24 November 2019 в 08:12
поделиться

ОБНОВЛЕНИЕ: Гобелен 5.2 отсутствует, таким образом, от него не отказываются, как это ранее, казалось, было. Мой опыт с Гобеленом 4, не 5, таким образом, Ваш пробег может варьироваться. Мое мнение о Гобелене изменилось за эти годы; я изменил это сообщение для отражения его.

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

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

Howard Lewis Ship (основной автор Гобелена) является, конечно, блестящим разработчиком, но я не могу сказать, что забочусь о его управлении проектом Гобелена. Разработка Гобелена 5 началась почти сразу после Гобелена 4 поставленных. Из того, что я могу сказать, Ship в значительной степени посвятил себя этому, оставив Гобелен 4 в руках других вкладчиков, которых я чувствую, совсем не так же способны как Ship. Сделав болезненный переключатель из Гобелена 3 к Гобелену 4, я чувствовал, что от меня отказались почти сразу.

, Конечно, с выпуском Гобелена 5, Гобелен 4 стал продуктом прежней версии. У меня не было бы проблемы с этим, если бы процедура обновления не была настолько жестокая снова . Таким образом, теперь наша группа разработчиков находится в довольно незавидном положении: Мы могли продолжить использовать чрезвычайно заброшенную веб-платформу (Гобелен 4), делать отвратительное обновление Гобелена 5, или разочаровываться в Гобелене полностью и переписывать наше приложение с помощью другой платформы. Ни одна из этих опций не очень привлекательна.

Гобелен 5, предположительно, записан, чтобы уменьшить вероятность поломки обновления от этой точки вперед. Хороший пример находится в классах страницы: в предыдущих воплощениях классы страницы убывали от базового класса, обеспеченного Гобеленом; несовместимые изменения API в этом классе были причиной большого количества проблем обратной совместимости. В Гобелене 5, страницы являются POJOs, которые улучшены во времени выполнения с "волшебной пылью феи Гобелена" с помощью аннотаций. Таким образом, пока контракт для аннотаций сохраняется, изменения в Гобелене не будут влиять на Ваши классы страницы.

, Если это правильно, то запись нового приложения с помощью Гобелена 5 могла получиться хорошо. Но лично, я не испытываю желание помещать руку на средстве записи снова.

11
ответ дан Robert J. Walker 24 November 2019 в 08:12
поделиться

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

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

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

17
ответ дан ScArcher2 24 November 2019 в 08:12
поделиться

Я рекомендую, чтобы компонент ориентировался Калитка платформа. Это позволяет Вам писать свое веб-приложение в простом коде Java, Вы можете использовать POJOs в качестве модели для всех компонентов и не должны бездельничать с огромными конфигурационными XML-файлами.

я успешно разработал заявление на дистанционное банковское обслуживание с Struts, когда я обнаружил Калитку и видел, как легкая разработка веб-приложения может быть!

25
ответ дан Johannes K. Lehnert 24 November 2019 в 08:12
поделиться

Моим фаворитом является Платформа Spring. С 2,5 Spring MVC является задницей удара soooo, с новыми аннотациями, соглашением по функциям конфигурации, и т.д.

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

38
ответ дан bpapa 24 November 2019 в 08:12
поделиться

http://zkoss.org - хороший

3
ответ дан 24 November 2019 в 08:12
поделиться

Сам не пробовал, но думаю, что

http://www.playframework.org/

имеет большой потенциал ...

исходящий из php и классический asp, это первый веб-фреймворк на Java, который звучит многообещающе для меня ....

16
ответ дан 24 November 2019 в 08:12
поделиться

Для сайтов с высоким трафиком я бы использовал фреймворк, который не управляет состоянием клиента на сервере - Wicket, JSF и Tapestry управляют состоянием клиента на сервере. Я бы использовал эти фреймворки (Wicket - мой любимый) только в том случае, если приложение должно быть больше похоже на десктопное приложение. Но я бы попытался использовать более масштабируемый и простой REST+AJAX подход.

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

Grails - это удобный способ использовать Spring MVC и другие устоявшиеся фреймворки, такие как Hibernate. Кодирование забавно и вы быстро увидите результаты.

И не забывайте, что сервлет API с несколькими маленькими помощниками, такими как FreeMarker для шаблонирования, очень мощный.

.
3
ответ дан 24 November 2019 в 08:12
поделиться

Мой выбор будет калитка Для крупных проектов и предсказуемой пользовательской базы), GWT (для крупных проектов, которые являются в основном публичные облицовки) или просто сервисная структура (например, Jersey / Jaxrs) вместе с помощью инструментария JavaScript (для небольших до средних проектов).

2
ответ дан 24 November 2019 в 08:12
поделиться

Я рекомендую Seam, особенно если вам нужна персистентность.

2
ответ дан 24 November 2019 в 08:12
поделиться

Я оценил довольно много фреймворков, и Vaadin ( http://vaadin.com/home ) просочился до самого верха.

Вы должны дать ему хотя бы краткую оценку.

Ура!

3
ответ дан 24 November 2019 в 08:12
поделиться

Попробуйте HybridJava - это намного проще, чем что-либо еще.

0
ответ дан 24 November 2019 в 08:12
поделиться

См. Несколько комментариев к некоторым платформам приложений Java (второй абзац):

http://swiss-knife.blogspot.com/2009/11/some-java-application-servers.html

1
ответ дан 24 November 2019 в 08:12
поделиться

После долгого тестирования различных решений для меня это оказалось:

  • Spring MVC для презентации и уровень контроллера (НЕТ Spring Webflow, потому что мои потоки основаны на ajax)

  • jQuery для всех вещей на стороне клиента

  • Spring Security для, ну, аспекта безопасности

  • Hibernate / JPA2

  • Jetty для продолжения (комета)

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

Я также хотел бы упомянуть, что я был всего в небольшом шаге от того, чтобы отказаться от всего этого Java и вместо этого изучать Scala / LIFT. Насколько мне известно, все в Java, что связано с передовой веб-разработкой (комета, асинхронная связь, безопасность (да, даже с Spring Security!)), Все еще является чем-то вроде взлома (доказательство я ошибаюсь по доказательствам, пожалуйста!). Мне Scala / LIFT кажется более готовым и универсальным решением.

Причина, по которой я окончательно решил не переходить на Scala,

  • как руководитель проекта, я должен учитывать человеческие ресурсы, и разработчиков Java намного легче найти, чем разработчиков Scala

  • для большинства разработчиков в моей команде функциональную концепцию Scala, сколь бы прекрасной она ни была, трудно понять

Ура Er

7
ответ дан 24 November 2019 в 08:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: