<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
  <head>
    <title>Apache Tcl</title>
    <link rel="stylesheet" href="../style.css">
  </head>
  <body>
    
	<table align="center" width="63%" border="0">
	<tr>
	<td align="center" valign="top">
	<h1 style="padding: .3em;">
    
mod_dtcl

	</h1>
	</td>
	</tr>
	</table>
	<hr>
    


    <table class="main">
	<tr>
	    <td bgcolor="#cccccc" valign="top" align="left">
    <b>
      <div class="box">
      <a href="../">Apache Tcl Home</a>
      </div><div class="box">
      <hr></hr>
      </div><div class="box">
      <a href="index.html">mod_dtcl Home</a>
      </div><div class="box">
      <a href="documentation/">mod_dtcl documentation</a>
      </div><div class="box">
      <a href="examples.html">mod_dtcl examples</a>
      </div><div class="box">
      <a href="download.html">Download mod_dtcl</a>
      </div><div class="box">
      <a href="news.html">News &amp; Status</a>
      </div><div class="box">
      <a href="contributing.html">Contributing</a>
      </div><div class="box">
      <a href="contact.html">Contact/Mailing list</a>
      </div><div class="box">
      <a href="credits.html">Credits</a>
      </div>
  </td>


	  <td valign="top">

	    <p>
	      <b>mod_dtcl</b> is an Open Source implementation of server
	      parsed Tcl, running under Apache.  It is a flexible
	      platform that allows you to integrate Tcl and HTML
	      however you choose; you can tightly interweave them,
	      in order to write powerful dynamic web pages quickly, or
	      you can also follow different programming models, such
	      as the "Model View Controller" framework, should you
	      wish to create a large, complex web system which
	      seperates content from code.
	    </p>
	    <p>
	      <a href="http://www.tcl.tk/">Tcl</a> is a very
	      widely used and available scripting language with many
	      years of development invested in it. Because Tcl is such
	      a well known language, there is a large amount of
	      documentation for it, both on the net and books. There
	      are also many external Tcl modules that you can load
	      into mod_dtcl, to create images, access databases, and
	      so forth.
	    </p>
	    <p>
	      <b>Note:</b> mod_dtcl is still supported, but no longer
	      under development.  <b>You should use <a
	      href="/rivet/">Rivet</a></b> if you are starting a new
	      project.  Otherwise, consider upgrading when it is
	      convenient.
	    </p>
	  </td>
	</tr>
    </table>
    
	<table align="center" width="100%">
	<tr>
	<td align="left">
	<a href="http://www.apache.org/"><img src="/apache_pb.gif"
	alt="Powered by Apache" border="0"
	width="259"
	height="32"></a>
	</td>
	<td align="right">
	<a href="http://www.tcl.tk/"><img src="/tclp.gif"
	alt="Powered by Tcl" border="0"
	width="42"
	height="64"></a>
	</td>
	</tr>
	</table>
    

  </body>
</html>
