Thank you for your responses, much appreciated. You must have gathered
from my questions just how glued I am to the traditional desktop app
format and my ignorance of webappery. Being aware of the existence of
Java, JS, AJAX, PHP etc isn't going to be good enough for the future, is
it? I need to research and play.
A cursory glance at Java scared me a little! Too much new stuff to cope
with quickly even though it's oop. Google's Web Toolkit obviously helps
but I'd need too much help.
JavaScript, however, looks more like C++ for the web. Much nicer and I
get the feeling that there are a number of IDEs out there which will
help me get a handle on it all.
Q1 - if JS is the way to go what IDE is good to use?
JS also appears to have lots of libraries available; Dojo, Yahoo,
Scriptaculous are ones I've ambled through.
Q2 - any thoughts on these or others?
AJAX is amazing, isn't it? But you knew that! The one thing I use
heavily in my progs is drag-and-drop. I try to avoid picking from lists
whenever possible and I thought (erroneously, it now appears) that
webapps were short on d'n'd.
Q3 - is AJAX so tied to JS that you always get AJAX libs in with JS libs
or do they come separately?
OK, so serverside: ASP is MS, right? Pesumably, therefore, this is no
good for cross-platform implementation.
Q4 - so what else is used that is not native MS but will work on W**dogs?
And finally, the underlying database itself. My own stuff is minimally
relational - it's just a lot of (very big) flat files with sufficient
key fields to allow for looking things up. I simply don't need the
inherent complexity of a RelDB. I therefore do not use SQL anywhere.
Nor, come to that, do I use Oracle, ODBC, ADO, etc.
Q5 - What should I be looking at?
Q6 - where does PHP fit in to all this - if at all?
If you got this far then just let me say how much your words are
appreciated here. Amongst my colleagues I am known to know a lot but *I*
know I don't know as much as I should. I just hope you don't mind
helping me get over these first few hurdles.
Brian
You really want to use one of the new generation of web frameworks
based on a scripting language. These include object-relational
mappers and Javascript libraries, and their design incorporates a lot
of best practices, including testing frameworks.
The key is trying to hit the sweet spot where you're maximizing
development productivity and neither over or under engineering your
code. This is one of the very, very difficult parts of a project like
this.
Look at Rails and Django. If either one of them suit your fancy and
your requirements, use it.
--Tom
Try to keep in mind the distinction between client (in web browser)
and server ( web server). Both can be scripted for dynamic behaviour
and both work together in various ways. You can even generate the
client code on the server and push it across to be run.
Libraries like Dojo are client side and make the web page dynamic
without necessarily getting more data from the server. Dojo is good
because in has support for ARIA which is the new standard for making
web apps accessible, and that's vital IMHO. JQuery are working on ARIA
support as well. For client side IDEs, Firefox has the venkman
debugger and FireBug is fantastic, letting you edit DOM and code and
CSS in place.
JS is the only common web client scripting language (though there was
some experimental work in Firefox to DOM script with Python). For AJAX
you need to script XMLHTTPRequest object to request data from the
server so is tied to JS as that is the language available (IE supports
VBS too, but I didn't say that ;-)). You can just use JS and
XMLHTTPRequest is available for most browsers, however libraries
simplify the work involved, espec cross browser differences.
Ajax is good for some things but adds alot of complexity and means you
end up duplicating some things the browser does, it also introduces
issues that don't quite fit into the web way. For example if you are
not careful to ensure a unique URL for each important state then
history and shortcuts don't work (which may be what you want).
Serverside: yes ASP is MS only though ASP.NET could potentially run on
the Mono platform, but adding more complexity. PHP is an open equiv to
ASP and runs on most platforms. Both are fairly low level environments
and as Tom say platforms like Rails make life much easier. Drupal is
another but perhaps more a CMS. Django is really a framework for
creating web platforms (confusing I know).
DBs is a big one, ADO and ODBC are ways you access a RDB. Using a RDB
is good for several reasons like enabling new or adhoc querys. SQL is
a powerful language in it self and lets you split data from
presentation without using object layers which are much more a
programming way of doing things. good RDB design requires experience.
Stick to an open data base: SQLite is lean and mean and basically aims
to be a structured replacment to file operations in smaller sites with
lighter concurrency needs, postgreSQL is a full featured RDBMS for
large systems, mySQL fits in the middle and is deservedly popular.
As for what to look at well I'm planning to seriously look at RAILS as
I hear so many good things with respect to productivity. Combined with
Dojo or JQuery it could be ideal. Drupal is the other one on my list
to explore. Look for something mature with an active community. Any of
the above really.
Steve
--
Steve Lee
--
Open Source Assistive Technology Software
web: fullmeasure.co.uk
blog: eduspaces.net/stevelee/weblog