Melify's Internet Application Framework Publisher's Website [
1]
An open-source version of the toolkit can be downloaded at Sourceforge: [
2]
Builds on and expands Don Libes'
cgi.tcl.
Its precursor, the RedOlive toolkit, has been released to the public domain and can be accessed via the Wayback Machine at:
http://web.archive.org/web/20060709184637/http://tk.redolive.com/bin/Toolkit?page=DownloadDon Libes says the RedOlive toolkit "...is a higher-level library...sits on top of cgi.tcl and provides very elegant pages with even simpler code."
"If you like the idea of big corporations telling you how different the Internet is from conventional programming environments and why you should buy their stuff and have 10s of consultants on loan to you to get your job done? You are in a wrong place, click the 'back' button now!"
This work was inspired by the original work of Don Libes [
3] and funded by RedOlive Inc. where it's being used for their entire line of products and thanks for their permission to have it released to the public.
So what's this all about?- Very small footprint (a couple of megs including apache web server) with no administration and setup (can be setup in one minute flat! see the installation at the bottom).
- No special hardware requirements. Run it on your notebook, at home or work.
- Easy-to-learn Scripting Language [4]
- Rapid Application Development & Prototyping Backbone. Create an online application in a short few days.
- You concentrate on the business goals and let the toolkit do the rest of work for you.
- Perfect for Usability & Acceptance Testing. Why put up with low fidelity toys, when you can have a high fidelity application in a few days!
- Programming Environment for Internet Application Development.
- A Virtual Shared-Component Library for all your Internet Applications.
- Learn and Re-Use your code from one application to another.
- Build and Test Standards and Browser Compatibilities into your components and do not rely on individual developer's control.
- Your very own Online Corporate Document Manager, free with this package.
- If HTML is the assembly language of the internet, this toolkit is 4GL in comparison.
- Saves you money and time. 2-order-of-magnitude less code and an order-of-magnitude fewer people.
- Emacs bindings for all functions. So you don't have to type too much.
- Need 10 volumes of documentation & instructions? Donate it to your charity! batteries are included
You are 2 clicks away from having your site up and running, really!
Screen Shots (all image links broken 2012-10-28)
- Document Manager Screen http://www.melify.com/images/wikit/docmgr.gif
- Toolkit online Help http://www.melify.com/images/wikit/help.gif
- Application Code Helper http://www.melify.com/images/wikit/help.gif
- Remote Editing Capabilities http://www.melify.com/images/wikit/editor.gif
The Environment: You code your online application the way you normally program in TCL, C++ etc. Little or no knowledge of
HTML is required. A pop-up Calendar for example is created with a single line of TCL code (about 1200 lines of
JavaScript that you don't have to do). Your application code is about 2-orders-of-magnitude smaller, and you need an order-of-magnitude fewer people to develop it, and it is designed for extreme programming.
Now that's "real" money and time in your favour.A Virtual Component Library: The idea here is that you can keep your toolkit separate from your applications (re-use). When changes are made to the Toolkit, it becomes transparent to all applications. Say you changed the look of a notebook in the Toolkit, all applications using this widget will be affected automatically. The toolkit was inspired by Don Libes' (cgi.tcl). You may choose a separate server for the Toolkit or on the same machine that the application is running; the choice is yours. The toolkit is platform independent and makes heavy use of
Starkit technology.
Developers of applications can modify any page from a remote site after the initial delivery. Toolkit is self documented, all documentation of the code, examples and applications can be made available online for inspection and editing purposes.
An Online Corporate Document Manager: Is a demo to demonstrate the use of the toolkit and how to create a sophisticated internet application in 2-3 days. It is not complete, but %80 functional. I will complete it in due course and release is later on. Document Manager is about 1200 lines of Tcl code; I put it together in about 3 days. This work was originally done by a team of 5 people over the course of 6 months. You can develop an online application in days all by yourself.
Another Nice Feature: is that you can bundle your code into a
starkit and hand it over to your web server for execution (that is the reason for the directory structure within the toolkit). Both Toolkit and your application are
Starkitable. You can also byte compile your code and release it with
tbcload.kit file.
Partial Listing of Toolkit Widgets & Components: bookmark, calculator, calendar::1, calendar::2, center, countries, db::table, dialog::error, dialog::information, dialog::question, dialog::shell::1, dialog::shell::2, dialog::shell::3, dialog::warning, disable, divider::1, divider::2, divider::3, email, env, find, footer, form::2, form, groupbox::1, groupbox::3, hierarchy, labeled, listsort, macbutton, menu::h::1, menu::h2, menu::v::1, menu::v::2, menu::v::3, notebook::1, notebook::2, notebook::3, notebook::4, notebook::5, notebook::6, notebook::7, notify, phone, postit, quotation, rounded, search, playsound, states, steps, template::1, template::2, template::3, template::4, tree:, url:popup,
Toolkit is Self-Documented:
######################################################
#####
######################################################
m::proc -public Contents::user {
-directory:required
-ufiles:required
-udirs:required
} {
<b>Any HTML code</b> placed here will appear in the
help section of your application
} {
Trace
tk::form -name ACTION -callback Contents::actions:callback -guts {
User::Content -directories $udirs -files $ufiles
}
}
Persistent Data: variables can be stored on any page and at any location. These variables can then be accessed from any other page. You can store Lists, Objects (serialized) and anything else.
Save :
tk::session::setAttribute -name "FirstName" -value "Susan"
Restore :
set fname[tk::session::getAttribute -name "FirstName"]
Built-in RDBMS:
Get a List back:
set result [tk::db::sqlite::query "select * from users"
Get an array back:
tk::db::sqlite::query:v -variable myvar "select * from users"
Contact Information: Please see Publisher's Website [
5] for Download and Instructions
Please read the disclaimer notice