DWS - Delphi Web Script

DWS brings pascal the language of Delphi™ into the world of server side OOP scripting. DWS is a set of a main scripting engine and additional components that let you extend the scripting dialect with Delphi (or C++) hard wired subroutines.

DWS makes it possible for you to build your first CGI/ ISAPI/ NSAPI app within 5 minutes. Includes all you need to build a professional web application and supports native database connections.

DWS was invented by Matthias Ackermann (Switzerland) and Hannes Hernler (Austria), based on Ackermanns Tscript component, with contributions of Bond Keevel (Canada), ......

Advantages

  • DELPHIwebscript language is easier to read and to train than PERL
  • delphiWEBscript is integrated in HTML code like PHP or ASP
  • delphiwebSCRIPT is as flexible as a webdesigner needs and as fast and powerfull as a delphi developer can manage.
  • TDWS lets easily controll access and security levels of script programmers and online users

With VCL-TdwsFunc and TdwsLib components you can add functions to the script language that are hard wired in eventhandlers in a compiled Delphi module (CGI, ISAPI, http server ...) where you can enhance or suppress access to anywhere.

The DWS Dialect Construction Kit is ideal for professional teams of Delphi developers and web designers who invent their own set of TdwsFuncs, boost performance of database connections or critical code sections and enhance security by shielding script access from certain services.

www.dwscript.com gives examples how DWS works in an ISAPI module on MS-IIS4.0 with database connection to Interbase 5.5 via IBObjects.


DWS - Features

The main script engine is a VCL component TDelphiWebScript that is used similar to TPageProducer. A HTML page with embedded scripts is loaded into TDelphiWebScript and executed. The result string that is generated by TDelphiWebScript is the content that is sent back via webserver to the client - browser.

The number of functions and procedures in the script dialect can be extended by adding TdwsLib components to your project. There are Libraries with disk file, database, maths, string support and many more.

In designtime and runtime you can add functions and procedures to the script dialect. You simply insert some TdwsFunc components into your project and write eventhandler routines for the TdwsFunc.OnEvalEvent.

Performance

While the integrated script engine gives you flexibility for webpage design you get the performance you need by coding critical parts hardwired into your application.

With VCL-TdwsFunc and TdwsLib components you can add functions to the script language that are processed by eventhandlers in the compiled Delphi module (CGI, ISAPI, http server ...) where you can enhance or suppress access to any resource. With your own set of TdwsFuncs, you can increase performance of database connections or critical code sections as it is possible on your plattform.

Security

The basic DWS has not to be ready for all kinds of problems like other script languages so access to resources besides the varaibles in the script is restricted. If you need script access to any other resource you have to develope a distinct interface. It´s easy to achieve with TdwsFuncs or custom TdwsLibs and makes security adjustable very fine.

Free TDelphiWebScript component

We want DWS to grow and become an excellent alternative to WebBasic dialects or unstructured hompage programming engines. This can only happen when DWS is stable and meets many distinct needs of different web applications. So DWS needs more developers than we are. For this reason TDelphiWebScript, TdwsFunc, TdwsISAPILib and TdwsUtilLib components are freeware for non commercial use and you will get the source code when you subscribe to our DWS mailinglist.

Free DWS ISAPI module

Free DWS ISAPI is a Delphi compiled TWebModule installable like MS ASP scripting engine (asp.dll) oder MS ServerSideInclude module (ssinc.dll). Implemented are functions of TdwsUtilLib and TdwsISAPILib but no file access (security).

TdwsLibs and 3rd Party dwsLibraries

We are still working on some more shareware/commercial TdwsLibs and encourage devlopers to present and sell their Functions and Libraries on www.dwscript.com

DWScriptIDE - Integrated Development Environment for DWS dialects

DWScriptIDE is a script editor that lets you edit and test your scripts in real time on your PC and preview the results with a webbrowser. The editor controls show colored tag/script highlighting, webpreview uses the installed IE4+.
Implemented in the script engine are functions of TdwsUtilLib and TdwsISAPILib (with POST action interface) and TdwsFileLib (disk access).

Source code is available with the DWS Dialect Construction Kit to extend the implemented functions to the user defined dialect.

Next version of DWScriptIDE will be able to load ISAPI modules. It will be the most advanced script IDE and easiest ISAPI testing and debugging tool, you will not have to restart your webserver for each debugging cycle.

DWS Dialect Construction Kit

With DWS Dialect Construction Kit a Delphi developer can design his own DWScript dialect with his distinct TdwsLibs and TdwsFuncs for commercial use. It includes the TDelphiWebScript, TdwsFunc, TdwsUtilLib, TdwsFileLib, TdwsISAPILib, TdwsBDELib, TdwsIBOLib (you need IBObjects by Jason Wharton) and TdwsIBXLib components, TdwsDemoLib as an example how to develope custom TdwsLibs and the DWScriptIDE with all sources, upgrade and email support for 1 year.

Component Features

  • TDelphiWebScript.Mode: htmlASP or htmlComment or none => script is embedded in HTML with "<% %>" or "<!--   /-->" or script only >
  • send/sendln => write to the HTML respond string
  • multiple TdwsFunc and TdwsLib components are connected to a TDelphiWebScript component
  • at this time there are 3 Libraries available:
    • short send (ASP like):
      <% Send(stringX)%> is the same as <%= stringX %>
    • TdwsUtilsLib (Utility Functions: maths, date, strings, random)
    • TdwsISAPILib (gives access to the parameters of current webrequest)
    • TdwsFilesLib (Simple File I/O and Textfile I/O) [not freeware]

Future Release Features (still under development)

  • more Libraries:
    • TdwsVclLib (connection to VCL components in the program)
    • TdwsBDELib (connection to TDataset via BDE)
    • TdwsIBOLib (connection to TIB_Dataset via IBObjects)
    • TdwsGuestbookLib (simple functions to build a textbased guestbook)
  • DWScriptIDE with ISAPI support - integrated development environment for script programming and module debugging