Wicket Live on Stage
     A Wicket case study
Agenda

• Why Wicket?
• What is Vocus?
• Wicket in Action
Topicus
• ASP/SAAS provider
 • healthcare
 • education
 • finance
 • insurance
Topicus Gifkikker
ket
      ic
 hy W
W
Web 2002

• Struts
• JSPs
• OJB
Web 2003

• Maverick
• Velocity
• Baritus
• Hibernate
Parnassys
Parnassys: searching
Parnassys: attendance
Problems with MVC
• 1 change requires N files to be modified
  (for large values of N)
• high learning curve
• back button
•...
Web 2005

• Wicket
• Hibernate 3!
• Java 5
• Start of Vocus
Vocus

• Student information system
• Secondary/High school
• SaaS solution
• Fully web based
Functionality

• Registration
• Funding
• Results/Exams
• Student guidance
• Attendance
Wicket usage

• Started with 1.1
• Moved along with 1.2
• Backports from 1.3 into custom 1.2 branch
• Currently migrating ...
DEMO
Student information at a glance
     (data has been scrambled)
Entering grades from home
   (data has been scrambled)
Wicket’s TreeTable in action
    (data has been scrambled)
Chart 2
300000



                                              #Requests

225000




150000




 75000




     0
   2007...
Keeping your server
         alive
• request logger
• serialization check
• use a profiler
• pick the right GC
• run on JDK...
function ClickZoekresultaten(url) {
    if($('SRP_SearchResultsPanel').style.display=='none') {
         new Ajax.Updater(...
add(new AttributeModifier(quot;onclickquot;, true, new Model()
{
    @Override
    public Object getObject(Component compon...
Questions?
BEER!
Upcoming SlideShare
Loading in...5
×

Wicket Live on Stage

4,958

Published on

Wicket Live on Stage features a Wicket project that has been in production use for over a year. The application is a web application for dutch highschools for administration of students' data for funding, guidance, graduation, attendance and financial purposes.

The presentation describes the road to choosing Wicket as the core framework, and includes screenshots of the live demo (which isn't captured in this presentation) of Vocus (http://www.vocuslis.nl).

Published in: Business, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,958
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Wicket Live on Stage

  1. 1. Wicket Live on Stage A Wicket case study
  2. 2. Agenda • Why Wicket? • What is Vocus? • Wicket in Action
  3. 3. Topicus • ASP/SAAS provider • healthcare • education • finance • insurance
  4. 4. Topicus Gifkikker
  5. 5. ket ic hy W W
  6. 6. Web 2002 • Struts • JSPs • OJB
  7. 7. Web 2003 • Maverick • Velocity • Baritus • Hibernate
  8. 8. Parnassys
  9. 9. Parnassys: searching
  10. 10. Parnassys: attendance
  11. 11. Problems with MVC • 1 change requires N files to be modified (for large values of N) • high learning curve • back button • procedural programming • little to no reuse • complex UI neigh impossible
  12. 12. Web 2005 • Wicket • Hibernate 3! • Java 5 • Start of Vocus
  13. 13. Vocus • Student information system • Secondary/High school • SaaS solution • Fully web based
  14. 14. Functionality • Registration • Funding • Results/Exams • Student guidance • Attendance
  15. 15. Wicket usage • Started with 1.1 • Moved along with 1.2 • Backports from 1.3 into custom 1.2 branch • Currently migrating to 1.3
  16. 16. DEMO
  17. 17. Student information at a glance (data has been scrambled)
  18. 18. Entering grades from home (data has been scrambled)
  19. 19. Wicket’s TreeTable in action (data has been scrambled)
  20. 20. Chart 2 300000 #Requests 225000 150000 75000 0 2007-09-12 2007-09-18 2007-09-24 2007-09-30 2007-10-06 2007-10-12 2007-10-18 2007-10-24 2007-10-30 2007-11-05 2007-11-11 2007-11-17 2007-11-23 2007-11-29 >300 users
  21. 21. Keeping your server alive • request logger • serialization check • use a profiler • pick the right GC • run on JDK 6 (mustang)
  22. 22. function ClickZoekresultaten(url) { if($('SRP_SearchResultsPanel').style.display=='none') { new Ajax.Updater( 'SRP_SearchResultsPanel', url, { asynchronous : true, method : 'get', onComplete : function() { Effect.SlideDown('SRP_SearchResultsPanel', {duration : 0.5}); Behaviour.apply(); } } ); } else { Effect.SlideUp('SRP_SearchResultsPanel', {duration : 0.5}); } }
  23. 23. add(new AttributeModifier(quot;onclickquot;, true, new Model() { @Override public Object getObject(Component component) { return quot;ClickZoekresultaten('quot; + component.urlFor(ILinkListener.INTERFACE) + quot;'); return false;quot;; } })); public void onClick() { Panel panel = (Panel) getParent().get(quot;resultatenquot;); showResultaten(); ComponentRequestTarget target = new ComponentRequestTarget(panel); WebRequestCycle cycle = (WebRequestCycle) RequestCycle.get(); // zet de contenttype op xml om UTF-8 goed voor elkaar te krijgen WebResponse response = (WebResponse) cycle.getResponse(); response.setContentType(quot;text/xmlquot;); response.setLastModifiedTime(Time.START_OF_UNIX_TIME); response.setHeader(quot;Cache-controlquot;, quot;no-cache, must-revalidatequot;); cycle.setRequestTarget(target); }
  24. 24. Questions?
  25. 25. BEER!

×