Author: lou
Date: 2007-09-19 10:20:19 -0700 (Wed, 19 Sep 2007)
New Revision: 6522
Modified:
openlaszlo/trunk/docs/src/developers/architecture.dbk
openlaszlo/trunk/docs/src/developers/language-preliminaries.dbk
Log:
Change 20070919-lou-idaGli by [EMAIL PROTECTED] on 2007-09-19 07:07:29 AST
in /home/lou/src/svn/openlaszlo/trunk/docs/src/developers
for http://svn.openlaszlo.org/openlaszlo/trunk/docs/src/developers
Summary: fix LPP-3826
New Features:
Bugs Fixed: LPP-3826 changes that made sense, and corrected many spelling errors
Technical Reviewer: Benjamine Shine
QA Reviewer: (pending)
Doc Reviewer: John Sundman
Documentation:
Release Notes:
Details:
Tests:
Modified: openlaszlo/trunk/docs/src/developers/architecture.dbk
===================================================================
--- openlaszlo/trunk/docs/src/developers/architecture.dbk 2007-09-19
17:13:30 UTC (rev 6521)
+++ openlaszlo/trunk/docs/src/developers/architecture.dbk 2007-09-19
17:20:19 UTC (rev 6522)
@@ -8,7 +8,7 @@
administrative advantages and cost effectiveness of web applications.
</para>
<para>
-OpenLaszlo applications are written in the XML language LZX, which compiles to
any of several runtime targets, including, as of OpenLaszlo 4.0, sw7, sw8, and
native browswer JavaScript, also sometimes called DHTML or Ajax. Applications
compiled to SWF7 or SWF8 run in the Flash 9 player.</para>
+OpenLaszlo applications are written in the XML language LZX, which compiles to
any of several runtime targets, including, as of OpenLaszlo 4.0, sw7, sw8, and
native browser JavaScript, also sometimes called DHTML or Ajax. Applications
compiled to SWF7 or SWF8 run in the Flash 9 player.</para>
<para/><section><title>Deployment Modes</title>
<para>
OpenLaszlo applications can be made available on the web, or <emphasis
role="i">deployed</emphasis> in either of two ways:
@@ -17,7 +17,7 @@
<itemizedlist spacing="compact"><listitem><para>Compiles source programs
as necessary and sends the resultant file to be executed on the client;
and</para></listitem><listitem><para>Proxies interactions between the client
and other servers on the Internet, performing data manipulation as
necessary</para></listitem></itemizedlist>
</para></listitem><listitem><para><emphasis role="em">SOLO</emphasis> You
use the OpenLaszlo compiler to "precompile" programs and make the resulting
file (in SWF or JavaScript) available on your sever. When executed on the
client, the application contacts other servers directly, without
mediation by the OpenLaszlo Server. This "serverless", or
-<emphasis role="i">Standalone OpenLaszlo Output</emphasis> deployment is caled
SOLO.</para></listitem></itemizedlist>
+<emphasis role="i">Standalone OpenLaszlo Output</emphasis> deployment is
called SOLO.</para></listitem></itemizedlist>
<figure><title>Applications may be deployed either SOLO or proxied by the
OpenLaszlo Server</title><mediaobject><imageobject><imagedata
fileref="images/deploy_options.png"/></imageobject></mediaobject></figure>
<para>
Later chapters explain in detail the differences between proxied and SOLO
OpenLaszlo applications. In general:
@@ -36,8 +36,8 @@
container. The OpenLaszlo Server may communicate with <glossterm>back
end</glossterm>
servers and data sources using a variety of protocols. OpenLaszlo
applications written in LZX are compiled by the OpenLaszlo Server and served
either as bytecode
-to a plug in that runs in the client's web browser (such as Flash or J2ME) or
as JavaScript (DHTML) that is directly executed by the browser itself. This
constitutes
-the <indexterm significance="preferred"><primary>front
end</primary></indexterm><glossterm>front end</glossterm>. OpenLaszlo
applications run consistently and reliably on a variety of operating systems
and device types, including Windows, Pocket PC, Mac OS, Linux, and Solaris, and
a variety of mobile and set-top box platformss.
+to a plug-in that runs in the client's web browser (such as Flash or J2ME) or
as JavaScript (DHTML) that is directly executed by the browser itself. This
constitutes
+the <indexterm significance="preferred"><primary>front
end</primary></indexterm><glossterm>front end</glossterm>. OpenLaszlo
applications run consistently and reliably on a variety of operating systems
and device types, including Windows, Pocket PC, Mac OS, Linux, and Solaris, and
a variety of mobile and set-top box platforms.
</para>
<para>
When compiling for execution by the Flashplayer, the OpenLaszlo Server outputs
bytecode in the SWF ("shockwave format") file
@@ -48,7 +48,7 @@
When compiled for execution natively in the browser, the OpenLaszlo Server
outputs JavaScript. This script is human readable but optimized for size and
execution speed, with comments removed, variable names shortened, etc.
</para>
<para>
-In the future, OpenLaszlo may support other run time clients as
+In the future, OpenLaszlo may support other run-time clients as
they become widely available.</para>
<figure><title>OpenLaszlo Compiles to Different
Runtimes</title><mediaobject><imageobject><imagedata
fileref="images/kernels.png"/></imageobject></mediaobject></figure>
<para>
@@ -196,7 +196,7 @@
<para>
The OpenLaszlo application platform supports the SSL security model. Data
transmissions across the Internet can
be encrypted using
-SSL encryption over HTTPS. When compiled for native execution by the browser,
the security model is that of whicherver browser is used to execute the
application.
+SSL encryption over HTTPS. When compiled for native execution by the browser,
the security model is that of whichever browser is used to execute the
application.
</para>
<para>
The security model employed by OpenLaszlo applications differs slightly
depending on the runtime target. OpenLaszlo applications compiled to swf format
execute on the client computer within the secure "sandbox" environment of
@@ -213,7 +213,7 @@
The OpenLaszlo architecture is designed to support multiple device types. Its
dynamic layout mechanisms enable simple modifications to such properties as an
application's overall
size to be intelligently applied by the platform. This simplifies adapting an
application to work on screens and devices of different size.</para>
-<para>All screen visualizations in OpenLaszlo appllications use time-based
rather than
+<para>All screen visualizations in OpenLaszlo applications use time-based
rather than
frame-based animation, and thus transparently accommodate the
processor speed differences of various device types. An interface
transition specified to take 500 milliseconds will take 500
Modified: openlaszlo/trunk/docs/src/developers/language-preliminaries.dbk
===================================================================
--- openlaszlo/trunk/docs/src/developers/language-preliminaries.dbk
2007-09-19 17:13:30 UTC (rev 6521)
+++ openlaszlo/trunk/docs/src/developers/language-preliminaries.dbk
2007-09-19 17:20:19 UTC (rev 6522)
@@ -2,8 +2,8 @@
<title>Language Preliminaries</title>
-<para>LZX is an object oriented, tag-based language that uses XML and
JavaScript syntax to create the presentation layer
-of rich internet applications. Typically these applications are compiled by
the
+<para>LZX is an object-oriented, tag-based language that uses XML and
JavaScript syntax to create the presentation layer
+of rich Internet applications. Typically these applications are compiled by
the
OpenLaszlo compiler. They may be deployed as standalone files, or they may be
served by the OpenLaszlo Server.
The specification of the language includes both a set of XML tags and a set of
JavaScript APIs.</para>
@@ -22,19 +22,19 @@
downloaded as byte code for a target rendering engine.</para>
<para>In the current implementation of the OpenLaszlo platform, LZX programs
are compiled in the OpenLaszlo Server and downloaded either as
-Flash movies (.swf files) to be executed in the Flash Player plugged into an
Internet browser, or compiled to DHTML which is downloaded to be executed by
the browser's JavaScript engine. It's important to understand that the Flash
Player is used only as an execution/rendering engine for the generated byte
code, and there's
+Flash movies (.swf files) to be executed in the Flash Player plugged into an
Internet browser, or compiled to DHTML which is downloaded to be executed by
the browser's JavaScript engine. It's important to understand that the Flash
Player is used only as an execution/rendering engine for the generated byte
code: there's
nothing inherent in LZX that marries it to Flash. In particular, LZX does not
employ or rely upon the Flash object model.</para>
<para>Similarly, because LZX programs are compiled by the OpenLaszlo Server
the use of JavaScript in LZX programs is subtly
different from its use in traditional web applications in which JavaScript is
used to do things like communicate with the browser
-or generate HTML pages. Those functions are basically irrelevant in LZX
applications. Thus although the language design is
+or generate HTML pages. Those functions are basically irrelevant in LZX
applications. Thus, although the language design is
rather traditional, the programming paradigm is fundamentally new.</para>
-<para>This chapter summarizes the traditional and innovative aspects of LZX.
It's an overview, not a tutorial; after reading it you will be better able to
decide how to go about learning the language. Depending on your background and
experience, you may determine that you need to go learn some more about XML or
object oriented programming before addressing LZX. On the other hand, if you
find these concepts accessible you may want to jump right in and begin coding,
in which case we suggest starting with the <ulink
url="../guide/laszlo_basics.html" type="laszlo-dguide">OpenLaszlo
Basics</ulink> tutorial.</para>
+<para>This chapter summarizes the traditional and innovative aspects of LZX.
It's an overview, not a tutorial; after reading it you will be better able to
decide how to go about learning the language. Depending on your background and
experience, you may determine that you need to go learn some more about XML or
object-oriented programming before addressing LZX. On the other hand, if you
find these concepts accessible, you may want to jump right in and begin coding,
in which case we suggest starting with the <ulink
url="../guide/laszlo_basics.html" type="laszlo-dguide">OpenLaszlo
Basics</ulink> tutorial.</para>
<para/><section><title>Overview of Syntax and Semantics</title>
-<para>In LZX, XML tags are used to create JavaScript objects, and Javascript
is used inside of LZX programs to
+<para>In LZX, XML tags are used to create JavaScript objects, and JavaScript
is used inside of LZX programs to
manipulate objects created by tags. In most cases, anything that can be done
with a tag can be accomplished in
JavaScript, and vice versa. However, this equivalence is not universally true,
and moreover one technique is
virtually always vastly superior to another in any situation. <emphasis
role="em">Learning</emphasis> LZX basically comes down to
@@ -46,7 +46,7 @@
<para>LZX strictly adheres to XML and JavaScript syntax</para>
<note><para>
In earlier releases, LZX did not enforce case sensitivity in JavaScript. Since
OpenLaszlo release 3.0 LZX has been a completely
-case sensitive language. See below for a more in depth discussion.
+case-sensitive language. See below for a more in-depth discussion.
</para></note>
<para>The following sections offer a brief refresher on the two kinds of
@@ -93,7 +93,7 @@
</para></note>
<para/></section></section><section
id="language-preliminaries.javascript"><title>JavaScript</title>
-<para>JavaScript is a language originally written at Netscape by Brendan Eich
for incorporation in the Netscape 2.0 browser. It was instantly successful and
widely adopted in other browsers, and to preserve its emerging value as a
standard, the European Computer Manufacturer's Association (ECMA) codified the
language as ECMAScript and now maintains control of its evolution. Although
there may be subtle differences between any implementation of JavaScript and
the language formally specified by the standards body, in colloquial usage the
terms JavaScript and ECMAScript are often used interchangeably. While perhaps a
little more accurate to say that "ECMAScript" refers to the pure language while
"JavaScript" means both the language and the associated libraries that are
available on most browsers, in this book we follow general usage and use the
terms loosely, trusting that it will be clear from the context what we're
talking about. The term "script" refers to any (procedural) code written in
Javascript.</para>
+<para>JavaScript is a language originally written at Netscape by Brendan Eich
for incorporation in the Netscape 2.0 browser. It was instantly successful and
widely adopted in other browsers, and to preserve its emerging value as a
standard, the European Computer Manufacturer's Association (ECMA) codified the
language as ECMAScript and now maintains control of its evolution. Although
there may be subtle differences between any implementation of JavaScript and
the language formally specified by the standards body, in colloquial usage the
terms JavaScript and ECMAScript are often used interchangeably. While perhaps a
little more accurate to say that "ECMAScript" refers to the pure language while
"JavaScript" means both the language and the associated libraries that are
available on most browsers, in this book we follow general usage and use the
terms loosely, trusting that it will be clear from the context what we're
talking about. The term "script" refers to any (procedural) code written in
JavaScript.</para>
<para>LZX incorporates a partial implementation of the <ulink
url="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMA-262
Edition 3 specification</ulink>.</para>
@@ -103,11 +103,11 @@
<para>Depending on your background, you may find certain aspects of LZX
familiar or foreign. For example, if you have experience with Java but not
JavaScript, you will need to be aware of key differences in the languages, in
particular with regard to data typing, the object model, and the scope or
namespace of variables.</para>
-<para>Like other so-called scripting languages such as Perl and Python,
Javascript is a loosely-typed language — you can declare a variable without
specifying its type. This makes for rapid prototyping and arguably more
readable code, but it also makes it possible for data-type errors to go
undetected.</para>
+<para>Like other so-called scripting languages such as Perl and Python,
JavaScript is a loosely-typed language — you can declare a variable without
specifying its type. This makes for rapid prototyping and arguably more
readable code, but it also makes it possible for data-type errors to go
undetected.</para>
-<para>JavaScript's approach to object-oriented programming lacks the rigor or
Java's. There are no packages or interfaces, for example, nor is it possible to
finalize classes. Finally, the behavior of local and global variables in
JavaScript is sometimes surprising to Java programmers.</para>
+<para>JavaScript's approach to object-oriented programming lacks the rigor of
Java's. There are no packages or interfaces, for example, nor is it possible to
finalize classes. Finally, the behavior of local and global variables in
JavaScript is sometimes surprising to Java programmers.</para>
-<para>Conversely if you are an experienced JavaScript programmer you may have
to "unlearn" certain assumptions, in particular with regard to the availability
of certain libraries and functions. For example, while the Math library is
present in LZX, the the REGXEP library for regular expressions is not.
Moreover, LZX has a more complete object oriented programming model than does
simple JavaScript. That is, LZX has classes and inheritance.</para>
+<para>Conversely, if you are an experienced JavaScript programmer you may have
to "unlearn" certain assumptions, in particular with regard to the availability
of certain libraries and functions. For example, while the Math library is
present in LZX, the the REGXEP library for regular expressions is not.
Moreover, LZX has a more complete object-oriented programming model than does
simple JavaScript. That is, LZX has classes and inheritance.</para>
<para>If you have experience with neither Java nor JavaScript you may want to
first work through a JavaScript tutorial like the ones available at <ulink
url="http://www.w3schools.com/js/default.asp">w3schools.com</ulink> before
delving too deeply into LZX.</para>
@@ -155,7 +155,7 @@
'implicit this' is a term we use to describe the behavior of free
references in LZX methods and handlers. In LZX classes, the object
bound to `this` is implicitly 'in scope' in all methods and handlers,
-as it is in Java (this is _not_ the case in Javascript). We added
+as it is in Java (this is _not_ the case in JavaScript). We added
this feature to LZX because we felt it led to more intuitive and
compact code.
</para>
@@ -211,7 +211,7 @@
`global.attr =`.
</para>
<para>
-`with` is a Javascript primitive that can be used to establish scope. Free
variables in the body of a `with` will be looked up first in the object that is
the argument (and then in whatever the enclosing scope is). Functions close
over their scope when they are defined, so by wrapping `with (_root)` around
each global function definition, free references in functions will be looked up
in the global context (as opposed to the SWF implementation, where global
functions are given a null scope, so when they are called from the idle
context, their free references appear unbound).
+`with` is a JavaScript primitive that can be used to establish scope. Free
variables in the body of a `with` will be looked up first in the object that is
the argument (and then in whatever the enclosing scope is). Functions close
over their scope when they are defined, so by wrapping `with (_root)` around
each global function definition, free references in functions will be looked up
in the global context (as opposed to the SWF implementation, where global
functions are given a null scope, so when they are called from the idle
context, their free references appear unbound).
</para>
<para/><section><title>"this" in states and animators</title>
<para>
@@ -372,7 +372,7 @@
<para>In JavaScript, the <literal>this</literal> keyword is used to refer to
the object through which the function was invoked. </para>
<para/></section><section><title>Handlers</title>
<para>
-A handler is like a method. But whereas a method is invoked by its name, a
hander must be associated with a particular event. The handler
+A handler is like a method. But whereas a method is invoked by its name, a
handler must be associated with a particular event. The handler
script will be executed when the referenced view receives an event
with this name. For example,</para>
@@ -411,11 +411,11 @@
<para>There are three general categories of methods and handler:</para>
<itemizedlist spacing="compact"><listitem><para> "On init" methods that are
invoked when their parent object is created;</para></listitem><listitem><para>
handlers that are invoked when their parent object receives a specified
event;</para></listitem><listitem><para> named methods that are explicitly
invoked by other methods.</para></listitem></itemizedlist>
-<para>Note that you can define a method using conventional Javascript syntax,
but in LZX the preferred way to declare a method is with the
<indexterm><primary>method</primary></indexterm><sgmltag
class="element"><method></sgmltag><remark role="fixme">[unknown
tag]</remark>
+<para>Note that you can define a method using conventional JavaScript syntax,
but in LZX the preferred way to declare a method is with the
<indexterm><primary>method</primary></indexterm><sgmltag
class="element"><method></sgmltag><remark role="fixme">[unknown
tag]</remark>
<!--unknown tag: method-->
tag.</para>
-<para>Also note that in LZX, unlike many other object oriented systems,
+<para>Also note that in LZX, unlike many other object-oriented systems,
you can override a method in an instance of an object. This topic is
covered in <xref linkend="class-inheritance"/>.</para>
@@ -593,7 +593,7 @@
then from the point of view of JavaScript, this would be an lz.bob object.
</para>
<para>
-In earlier versions of LZX (before OpenLaszlo 4), there was an asymmetric
mapping between tag and class names, often of the form LzFoo <—>
<foo>, as in the correspondance between, say the class name
<indexterm><primary>LzView</primary></indexterm><classname>LzView</classname>
and the tag name <indexterm><primary>view</primary></indexterm><sgmltag
class="element"><view></sgmltag>. (Notice in LzView the mixed case, and
the absence of the period between lz and the tag name.) Also there was a
distinction between LFC classes and user-created classes. The new lz.foo form
is consistent across LFC classes and user-created classes. The old forms will
still work, and they appear throughout this documentation and in example code.
At some point, however, the old forms will probably be deprecated, and it would
be a good practice to adopt the new form in your code.</para>
+In earlier versions of LZX (before OpenLaszlo 4), there was an asymmetric
mapping between tag and class names, often of the form LzFoo <—>
<foo>, as in the correspondence between, say the class name
<indexterm><primary>LzView</primary></indexterm><classname>LzView</classname>
and the tag name <indexterm><primary>view</primary></indexterm><sgmltag
class="element"><view></sgmltag>. (Notice in LzView the mixed case, and
the absence of the period between lz and the tag name.) Also there was a
distinction between LFC classes and user-created classes. The new lz.foo form
is consistent across LFC classes and user-created classes. The old forms will
still work, and they appear throughout this documentation and in example code.
At some point, however, the old forms will probably be deprecated, and it would
be a good practice to adopt the new form in your code.</para>
<para/></section><section><title>How to Combine Tags and Script</title>
@@ -613,7 +613,7 @@
<para/></section><section><title>What's Meaningful</title>
-<para>Although the admixture of two different sets of language rules in one
language does create opportunities for confusion, it's fairly easy to recognize
how LZX programs are structured, and what kind of code goes where. There are
only a few contexts in which script code can appear in LZX programs. After you
learn to recognize these contexts you are unlikely to be confused about what
syntax applies. Javascript is used:</para>
+<para>Although the admixture of two different sets of language rules in one
language does create opportunities for confusion, it's fairly easy to recognize
how LZX programs are structured, and what kind of code goes where. There are
only a few contexts in which script code can appear in LZX programs. After you
learn to recognize these contexts you are unlikely to be confused about what
syntax applies. JavaScript is used:</para>
<itemizedlist spacing="compact"><listitem><para>between an opening and closing
<literal><script></literal> and <literal></script></literal>
tag;</para></listitem><listitem><para>between an opening and closing
<literal><method></literal> and <literal></method></literal>
tag;</para></listitem><listitem><para>between an opening and closing
<literal><handler></literal> and <literal></handler></literal>
tag;</para></listitem><listitem><para>with the double-quoted right hand value
of an assignment statement within certain tags, such as
<literal>oninit="<replaceable>script expression</replaceable>"</literal>
.</para></listitem></itemizedlist>
_______________________________________________
Laszlo-checkins mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins