Choose right Framework (Frontend, Backend) for high-performance, secure, scalable web application
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?
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
+ ");"
);
}
}
}
Wiquery and jWicket provide JQuery integration with Wicket. We use Wiquery a bit and it seems fine.
精彩评论