Ajax and Web 2.0 Programming (with Passion!) Online Course

 Sang Shin, sangshinpassion@gmail.com, www.javapassion.com/ajaxcodecamp, class forum


 


Message to potential attendees to this course from Sang Shin



 
Announcement from Sang Shin (Feb. 1st, 2010):  In the near future, the courses in javapassion.com will be available as a subscription-based service. (Yes, it is a painful decision on my part.)  If you want to receive course announcement in the future, please send an blank email to javapassion-announcement+subscribe@googlegroups.com.


Graduates of the course

How to register for this course

We are going to use newly created Google alias (ajaxprogramming@googlegroups.com) as of Aug. 2007.  Please register yourself by sending a blank email to the following email address.

Basically, when you send a blank email to the above, you are subscribing our class forum. This forum can be used for posting questions/answers either by email or through the website.  Please use this forum for all class related communication (technical or non-technical).  It is strongly recommended you don't send an email directly to me. For further questions, please see course FAQ below.  Please see the FAQ before posting questions to the class alias or sending an email directly to me.
The prerequisites of this course are as following

Topics and Schedule


In general, the contents (presentation, hands-on labs, and homework's) will be ready on the dates specified below.  Due to the fast pacing nature of the Web 2.0 technology, the contents are constantly being changed and improved even after the dates specified.
    1. Ajax Basics & Development Tools (Sep. 7th, 2009)  - content is ready, updated with NetBeans 6.7.1
    2. JavaScript Basics and DOM APIs (Sep. 15th, 2009)  - content is ready, updated with NetBeans 6.7.1
    3. Web 2.0 Frameworks and Toolkits (Sep. 24th) - content is reay, homework is optional
    4. Dojo Toolkit Basics (Oct. 10th, 2009) - content is ready, updated with NetBeans 6.7.1 and Dojo toolkit 1.3.2
    5. Dojo Toolkit Wigets (Oct. 17th, 2009) - content is ready, updated with NetBeans 6.7.1 and Dojo toolkit 1.3.2
    6. Dojo Toolkit Advanced (will be covered in the subsequent session of this course)
    7. JSON (Oct. 24th, 2009) - content is ready, updated with NetBeans 6.7.1
    8. ProtoType (Nov. 3rd, 2009- content is ready, updated with NetBeans 6.7.1
    9. Direct Web Remoting (DWR) (Nov. 22nd, 2009) - content is updated with DWR 2.0 and NetBeans 6.8
    10. Google Web Toolkit (Nov. 29th, 2009) - content is ready, all samples are updated with NetBeans 6.7.1 and GWT 1.7.0
    11. CSS (Dec. 20th, 2009) - content is ready, all samples are updated with NetBeans 6.7.1
    12. JavaScript Advanced (Jan 10th, 2010)
    13. Comet (Ajax Push, Reverse Ajax) (Jan 20th, 2010) - hands-on lab ready
The topics below might be included in the future session of this course.

Ajax Basics & Development Tools 

In this session, you are going to learn basic concepts of Ajax such as how XMLHttpRequest JavaScript object is created and used by the browser for performing asynchronous communication with the backend server.  For the hands-on lab, you are also going to learn how to use a few debugging tools out there, especially FireBug debugger, for debugging client side JavaScript code.  You will also play around with various "ready to build and run" Ajax sample applications.

1. Presentation slides (1.5 hour)

2. Lab 1 (3 hours) and homework 
3. Resources
                                                                                                                                               return to the topics

JavaScript Basics 


JavaScript is the glue that makes the whole Ajax operation possible.  And having good understanding on how JavaScript works is important for writing well-functioning Ajax applications.  You already got some exposure to JavaScript in the previous two sessions.  In this session, you will go over some basic syntax and features of JavaScript.  Later on, we will discuss the best practice guidelines in writing JavaScript code.

1. Pre-class reading material

2. Presentation slides (1.5 hour)

3. Lab 1 (2 hours) and homework
4. Resources
                                                                                                                                               return to the topics


Ajax Frameworks and Toolkits


The goal of this session is to let you get exposed to various Ajax frameworks and toolkits that are available as of today and let you have some sense of their capabilities so that you can make best judgment in terms of which one suites the need of your project in hand.

1. Pre-class reading materials

2. Presentation slides (1 hour)

3. Lab (2 hours) and homework
4, Resources
                                                                                                                                               return to the topics



Dojo Toolkit Basics 


1. Presentation slides (2 hours)

2. Labs (2 hours) and homework
3. Resources
4. Public discussion forums
                                                                                                                                               return to the topics



Dojo Toolkit Widgets


In this session, you are going to learn basic concept of Dojo widgets, which are reusable UI components.

1. Presentation slides (2 hours)

2. Labs (2 hours) and homework
3. Resources

                                                                                                                                               return to the topics



Dojo Toolkit Advanced (This topic will be covered in the subsequent session of this course)


In this lession, you are going to learn advanced topics of Dojo toolkit such as "drag and drop", offline usage, creating your own custom widgets. testing/tuning/debugging.

1. Presentation slides (2 hours)

2. Labs (2 hours) and homework
3. Resources

                                                                                                                                               return to the topics


JSON 


JSON (JavaScript Object Notation) is a lightweight data-interchange format and used as a data-interchange format of choice for many Ajax applications.  In this session, you will learn basic concept of JSON and how to create and send JSON data.  The hands-on lab lets you learn how to use JSON over Dojo toolkit.

1. Presentation slides (1 hour)

2. Lab (1 hour) and homework
3. Resources
                                                                                                                                               return to the topics

ProtoType


Prototype is another popular JavaScript library.  In fact, several other JavaScript libraries use Prototype underneath.  In this session, you are going to learn various utility functions.

1. Presentation slides (1 hour)

2. Lab - work in progress
3. Resources

                                                                                                                                               return to the topics






Direct Web Remoting (DWR) 


DWR allows JavaScript code in a browser to use Java methods running on a web server just as if they were in the browser through RMI like capability.  This is why it is called Direct Web Remoting.

1. Presentation slides (2 hours)

2. Lab (2 hours) and homework 
3. Resources
4. Discussion forums


                                                                                                                                               return to the topics

Google Web Toolkit (GWT) 


Google Web Toolkit (GWT) is definitely an interesting technology to explore for building Ajax applications especially for those who want to leverage their Java knowledge.  The current version of NetBeans GWT plug-in does not support "creating a WAR" feature yet.  That will be provided in the next version.

1. Presentation slides (2 hours) - last updated (Oct. 7th, 2006)


2. Lab (5 hours) and homework
3. Resources
4. Discussion forums

                                                                                                                                               return to the topics



CSS


Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g. fonts, colors, spacing) to Web documents.  It is one of the technologies you can leverage with to make your web application visually pleasant.  The presentation slides will give you quick introduction to CSS syntax.  The hands-on lab exercise will let you play around with CSS styles first.  It will also let you experience what could be possible with CSS styling.

1. Presentation slides (1 hour)

2. Lab
3. Resources

 
                                                                                                                                             return to the topics

JavaScript Advanced


1. Presentation slides (1 hour) - JavaScript best practices

2. Presentation slides (1 hour) - JavaScript by Douglas Crockford 3. Presentation slides (1 hour) - Advanced JavaScript by Douglas Crockford
4. Presentation slides - How to write OO style JavaScript code using Dojo toolkit
5. Lab
6. Resources

                                                                                                                                               return to the topics


Comet (Ajax Push, Reverse Ajax)


1. Presentation slides

2. Lab 1 (2 hours) - partially done (Sep. 23rd, 2009)
3. Resources

                                                                                                                                               return to the topics

Comet with Project Atmosphere (Comet Abstract Framework) and Servlet 3.0


1. Presentation slides

2. Lab 1 (2 hours)
3. Resources
                                                                                                                                               return to the topics

JavaServer Faces (JSF) and Ajax Integration with ICEFaces


JavaServer Faces provides a component-model architecture through which you can build an Ajax application by drag-and-dropping Ajax-enabled JavaServer Faces components in an IDE such as Sun Java Studio Creator. 

1. Presentation slides - Best Practice Guidelines in using Ajax with JavaServer Faces (1 hour)


2. Lab
3. Resources
                                                                                                                                               return to the topics

Ext JS


1. Presentation slides - Best Practice Guidelines in using Ajax with JavaServer Faces (1 hour)


2. Lab
3. Resources
                                                                                                                                               return to the topics


jQuery



1. Presentation slides

2. Lab 1 (2 hours)
3. Resources

                                                                                                                                               return to the topics

ZK Framework


ZK is an open-source Ajax Web framework that enables rich user interface for Web applications with no JavaScript and little programming.

1. Presentation slides

2. Lab 1 (2 hours)
3. Resources

                                                                                                                                               return to the topics


Ajax Performance and Best Practices


1. Presentation slides (1 hour)

2. Lab
3. Resources
                                                                                                                                               return to the topics

Echo2 and Ajax


Most of the popular Web application frameworks such as Echo2 and Shale are adding Ajax support as part of the framework.  Even without built-in Ajax support, it is usually possible to add Ajax functionality to the existing applications with minimum effort.

1. Presentation slides - Shale Remoting (1 hour)

2. Lab
3. Resources
                                                                                                                                               return to the topics


Portlets/Portals and Ajax


1. Presentation slides (1 hour)

2. Lab 1 (Building Ajax-enabled Portlet using Existing Portal server)
3. Lab 2 (Portal server with Ajax support)
4. Resources

Ajax Security


1. Presentation slides (1 hour)

2. Lab
3. Resources

                                                                                                                                               return to the topics


DynaFaces 


Dynamic Faces (called DynaFaces) provides an easier solution for developers to add Ajax functionality to their JSF based applications.

1. Presentation slide - Using DynaFaces

2. Labs (2 hours) - there is no homework!
3. Resources

                                                                                                                                               return to the topics

Dissecting the Java BluePrints Petstore 2.0 Reference Application


1. Presentation slides (1 hour)

2. Lab
3. Resources

                                                                                                                                               return to the topics






Feeds (Blogging/RSS/Atom)


1. Presentation slides

2. Lab 1 (2 hours)
3. Resources

                                                                                                                                               return to the topics



jMaki Basics


jMaki is all about enabling Java developers to use JavaScript in their Java based applications as either a JSP tag library or a JSF component. jMaki uses the best parts of Java and the best parts of JavaScript to deliver a rich AJAX style widgets.  jMaki currently provides bootstrap widgets for many components from Dojo, Script.aculo.us, Yahoo UI Widgets, Spry, DHTML Goodies, and Google. jMaki provides a common interfaces to these widget libraries and allows you to use these libraries together in the same page.

1. Presentation slides (2 hours)

2. Labs (2 hours) - last updated (Oct. 2nd, 2006)
3. Resources
4. Public forum
                                                                                                                                               return to the topic


Mashup 


A mashup is a web application that combines data from more than one source into a single integrated tool; a typical example is the use of cartographic data from Google Maps to add location information to real-estate data from Craigslist, thereby creating a new and distinct web service that was not originally envisaged by either source.

Content used in mashups is typically sourced from a third party via a public interface or API, although some in the community believe that cases where private interfaces are used should not count as mashups. Other methods of sourcing content for mashups include Web feeds (e.g. RSS or Atom), web services and Screen scraping. Many people are experimenting with mashups using Amazon, eBay, Flickr, Google, Microsoft, and Yahoo APIs, which has led to the creation of the Mashup editor.  (quoted from wikipedia)

1. Presentation slides (1 hour)

2. Lab (1 hour) and homework
3. Resources
                                                                                                                                               return to the topics

jMaki Examples



1. Presentation slides (1 hour)

2. Lab (1 hour) and homework
3. Resources
                                                                                                                                               return to the topics