/* Generate image with: dot -Tsvg 2006-09-24_programming_Ajax-Frameworks.dot -o 2006-09-24_programming_Ajax-Frameworks.svg */ graph untitled { node[shape=box, style=filled] rankdir=TD ajax[label="Ajax\n",style=dashed] //json[label="JSON\n(JavaScript)"] jsonrpc[label="JSON-RPC\n(independent)"] dojo[label="Dojo\n(JavaScript)"] prototype[label="Prototype\n(JavaScript)"] scriptaculous[label="Scriptaculous\n(JavaScript)"] sajax[label="SAJAX\n(PHP, others)"] proxy[label="Proxy-based/ORB",style=dashed] dwr[label="DWR\n(Java)"] gen[label="Generation\nFrameworks",style=dashed] gwt[label="GWT\n(Java)"] helpers[label="Helper\nTags",style=dashed] rails[label="Rails\n(Ruby)"] jsrem[label="Request-based\nRemoting",style=dashed] rap[label="RAP\n(Java, planned)"] jsrem--helpers js[label="JavaScript\nLibraries", style=dashed] ajax--js helpers--rails ajax--gen gen--gwt gen--rap remoting--proxy proxy--jsonrpc proxy--dwr js--dojo js--scriptaculous remoting[label="Remoting\nFrameworks",style=dashed] //effects[label="Effects",style=dashed] proxy--sajax //effects--dojo //effects--scriptaculous remoting--jsrem jsrem--prototype jsrem--dojo //ajax--effects ajax--remoting //rails--prototype[style=dashed] //prototype --scriptaculous[style=dashed] //scriptaculous--rails[style=dashed] }