Difference between revisions of "AOLserver and Tcl Crash Course"

From AOLserver Wiki
Jump to navigation Jump to search
 
m (outdent code examples)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Draft Outline ==
+
{{TOCright}}
  
* ADP Pages
+
The following is a working draft in progress for an introductory guide to AOLserver and Tcl.
** Hello World
+
 
** Tcl Basics
+
== ADP Pages ==
*** Minimalist Syntax
+
 
 +
Hello <Yourname> - Simple page, user submits form, displays name
 +
 
 +
=== ADP example ===
 +
 
 +
hello-world.adp:
 +
 
 +
<pre>
 +
<% set name [ns_queryget name "world"] %>
 +
<html>
 +
<head>
 +
  <title>Hello <%= [ns_quotehtml $name] %>!</title>
 +
</head>
 +
<body>
 +
  <p>Hello <%= [ns_quotehtml $name] %>!</p>
 +
  <form>
 +
  <p>Name: <input name="name" value="<%= [ns_quotehtml $name] %>"></p>
 +
  <p><input type="submit" value="Go"></p>
 +
  </form>
 +
</body>
 +
</html>
 +
</pre>
 +
 
 +
=== Tcl example ===
 +
 
 +
hello-world.tcl:
 +
 
 +
<pre>
 +
set name [ns_queryget name "world"]
 +
ns_return 200 text/html "<html>
 +
  <head>
 +
    <title>Hello [ns_quotehtml $name]!</title>
 +
  </head>
 +
  <body>
 +
    <p>Hello [ns_quotehtml $name]!</p>
 +
    <form>
 +
    <p>Name: <input name="name" value="[ns_quotehtml $name]"></p>
 +
    <p><input type="submit" value="Go"></p>
 +
    </form>
 +
  </body>
 +
  </html>"
 +
</pre>
 +
 
 +
== Tcl Basics ==
 +
 
 +
** Explain Minimalist Syntax
 
*** Commands, Subcommands (Evaluated and Non-Evaluated)
 
*** Commands, Subcommands (Evaluated and Non-Evaluated)
*** Variables, Arrays
+
*** Working with variables set, expr
*** Control Structures
+
** Control Structures
** Fetching GET and POST
+
*** if, while, etc.
 +
*** procedures
 +
 
 +
== Fetching GET and POST ==
 +
 
 
** Including / Referring to other pages
 
** Including / Referring to other pages
 
** Controlling Output
 
** Controlling Output
** Talking to MySQL
+
** Databases
 +
*** Defining the connection from as a pool in the config.tcl
 +
*** Selecting from the pool
 +
*** Executing Queries, Retrieving Values
  
 
== Questions ==
 
== Questions ==
 +
 
* Where does ADP excel?
 
* Where does ADP excel?
 
* What practices should PHP, ASP, JSP developers stop doing?
 
* What practices should PHP, ASP, JSP developers stop doing?
 
* How can one use Tcl to write very concise and readable code?
 
* How can one use Tcl to write very concise and readable code?
 
* How does one efficiently separate pages into MVC components if the wanted?
 
* How does one efficiently separate pages into MVC components if the wanted?
 +
* How and why should one write a domain specific sublanguage?

Latest revision as of 03:09, 16 June 2007

The following is a working draft in progress for an introductory guide to AOLserver and Tcl.

ADP Pages

Hello <Yourname> - Simple page, user submits form, displays name

ADP example

hello-world.adp:

<% set name [ns_queryget name "world"] %>
<html>
<head>
  <title>Hello <%= [ns_quotehtml $name] %>!</title>
</head>
<body>
  <p>Hello <%= [ns_quotehtml $name] %>!</p>
  <form>
  <p>Name: <input name="name" value="<%= [ns_quotehtml $name] %>"></p>
  <p><input type="submit" value="Go"></p>
  </form>
</body>
</html>

Tcl example

hello-world.tcl:

set name [ns_queryget name "world"]
ns_return 200 text/html "<html>
  <head>
    <title>Hello [ns_quotehtml $name]!</title>
  </head>
  <body>
    <p>Hello [ns_quotehtml $name]!</p>
    <form>
    <p>Name: <input name="name" value="[ns_quotehtml $name]"></p>
    <p><input type="submit" value="Go"></p>
    </form>
  </body>
  </html>"

Tcl Basics

    • Explain Minimalist Syntax
      • Commands, Subcommands (Evaluated and Non-Evaluated)
      • Working with variables set, expr
    • Control Structures
      • if, while, etc.
      • procedures

Fetching GET and POST

    • Including / Referring to other pages
    • Controlling Output
    • Databases
      • Defining the connection from as a pool in the config.tcl
      • Selecting from the pool
      • Executing Queries, Retrieving Values

Questions

  • Where does ADP excel?
  • What practices should PHP, ASP, JSP developers stop doing?
  • How can one use Tcl to write very concise and readable code?
  • How does one efficiently separate pages into MVC components if the wanted?
  • How and why should one write a domain specific sublanguage?