为高性能、安全、可扩展的 Web 应用程序选择正确的框架(前端、后端)

发布于 2024-10-16 05:45:15 字数 593 浏览 7 评论 0原文

我计划与 2 名后端开发人员和 1 名设计师/前端开发人员一起开发一个 Web 应用程序项目。

设计师是一名自由职业者,在不同的办公室工作。这对我来说意味着前端/后端开发应该分离。

其他要求:

  • 能够向其他应用程序提供数据接口,易于集成,
  • 系统必须具有非常高的可扩展性和高性能。
  • 令人惊叹的 RIA 用户界面,具有灵活的报告功能
  • ...

我考虑过在后端使用 Wicket/Spring 组合,你知道它们协同工作有多好吗?

对于前端我想使用Extjs,但我不知道它如何与wicket一起工作?(http://sourceforge.net/projects/wicket-extjs/files/这个wicket -extjs 项目将于 2008 年停止)

我认为用于图表的 JQuery 和 HighCharts 在这里将是一个很好的组合。

您会在这里使用哪种框架以及为什么?

i am planning to do a web application project with 2 backend developers and one designer/frontend developer.

The designer is a freelancer and works in a different office. that means for me fontend/backend development should be decoupled.

Other requirements:

  • possibility to provide data interfaces to other application, that are easy to integrate
  • system has to be very scalable and high-performant.
  • amazing RIA User Interface with flexible reporting abilities
  • ...

I thought about using a Wicket/Spring combination in the backend, do you know how good theiy work together?

For the frontend i wanted to use Extjs but i do not know how it works together with wicket? (http://sourceforge.net/projects/wicket-extjs/files/ this wicket-extjs project seams to be stopped in 2008)

I think JQuery and HighCharts for the charting would be a good combination here.

which framworks would you use here and why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

套路撩心 2024-10-23 05:45:15

我经常将 wicket + spring 一起使用,效果很好。

我还成功地将 wicket 与以下 JS 框架集成:

  • JQuery
  • MooTools
  • Prototype / Scriptaculous
  • YUI 3

以下是有关使用 JavaScript 库的 Wiki 条目:创建一个使用 Javascript 库的行为

示例:以下行为使用 JQuery 更改组件的 CSS 类,而不实际替换该组件。

public class JQueryCssClassBehavior extends AbstractDefaultAjaxBehavior{

    private static final long serialVersionUID = -493574907225091582L;

    @Override
    public void renderHead(final IHeaderResponse response){
        super.renderHead(response);
        response.renderJavascriptReference("path/to/jquery");
    }

    private final IModel<Collection<String>> classesModel;
    private final IModel<Boolean> toggleModel;

    public JQueryCssClassBehavior(final IModel<Collection<String>> classesModel,
        final IModel<Boolean> toggleModel){
        this.classesModel = classesModel;
        this.toggleModel = toggleModel;
    }

    @Override
    protected void respond(final AjaxRequestTarget target){
        final Collection<String> classes = classesModel.getObject();
        if(classes != null && !classes.isEmpty()){
            final String classesAsString =
            // Use Joiner from Guava or any other technique
                Joiner.on(' ').join(classes);
            target.appendJavascript(
                "$('"
                + getComponent().getMarkupId()
                + "')."
                + (toggleModel.getObject().booleanValue()
                    ? "addClass"
                    : "removeClass") 
                + "('"
                + classesAsString
                + ");"
            );
        }

    }

}

I use wicket + spring together a lot, and it works fine.

I have also successfully integrated wicket with the following JS frameworks:

  • JQuery
  • MooTools
  • Prototype / Scriptaculous
  • YUI 3

Here is a Wiki entry on using JavaScript libraries: Creating a behavior to use a Javascript library

Example: here's a behavior that changes a component's CSS classes using JQuery without actually replacing the component.

public class JQueryCssClassBehavior extends AbstractDefaultAjaxBehavior{

    private static final long serialVersionUID = -493574907225091582L;

    @Override
    public void renderHead(final IHeaderResponse response){
        super.renderHead(response);
        response.renderJavascriptReference("path/to/jquery");
    }

    private final IModel<Collection<String>> classesModel;
    private final IModel<Boolean> toggleModel;

    public JQueryCssClassBehavior(final IModel<Collection<String>> classesModel,
        final IModel<Boolean> toggleModel){
        this.classesModel = classesModel;
        this.toggleModel = toggleModel;
    }

    @Override
    protected void respond(final AjaxRequestTarget target){
        final Collection<String> classes = classesModel.getObject();
        if(classes != null && !classes.isEmpty()){
            final String classesAsString =
            // Use Joiner from Guava or any other technique
                Joiner.on(' ').join(classes);
            target.appendJavascript(
                "$('"
                + getComponent().getMarkupId()
                + "')."
                + (toggleModel.getObject().booleanValue()
                    ? "addClass"
                    : "removeClass") 
                + "('"
                + classesAsString
                + ");"
            );
        }

    }

}
初吻给了烟 2024-10-23 05:45:15

Wiquery 和 jWicket 提供 JQuery 与 Wicket 的集成。我们使用了一点 Wiquery,看起来不错。

Wiquery and jWicket provide JQuery integration with Wicket. We use Wiquery a bit and it seems fine.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文