========================================================== ==========================================================
Qomolangma penproject v0.9
Category: rich Web Client
Key words: JS Oop, JS framwork, rich Web Client, Ria, Web component,
Dom, dthml, CSS, JavaScript, JScript
Project Initiation: aimingoo (aim@263.net)
Project Team: aimingoo, Leon (pfzhou@gmail.com)
Contributor: Jingyu (zjy@cnpack.org)
========================================================== ==========================================================
6. Some keywords in qomo openproject
~~~~~~~~~~~~~~~~~~
1. JScript and JavaScript
--------
Javascript is the script first proposed and implemented by Netscape Navigator 2.0, a browser product of Netscape.
Language. The original name is livescript. It was initially designed to provide interactive capabilities for page elements, such as checking the <form> form
Is valid, and a prompt dialog box is displayed when necessary.
Javascript only borrowed the names of the popular Java language, but it has nothing to do with Sun's Java language.
Later, Microsoft had to develop its own script engine in its Internet Explorer (IE) browser.
To implement the Javascript scripting language that became a de facto standard. In fact, if it is not promoted by Netscape,
Probably, VBScript can only be used in IE.
Later, Netscape submitted JavaScript to ECMA as the standard, called ecmascript, serial ECMA-262.
The latest version is ECMA-262 3th edition, usually called ecmav3.
However, Microsoft is not satisfied with imitating or recreating Netscape's JavaScript, So Ie's development team expanded Java
Script syntax and language features, and thus form a JScript. With the success of IE in the browser market, JScript has
It has become a de facto standard for the Javascript language, which makes the standard order of ecmascript V3 and later subject to a certain degree.
.
In IE, although the language attribute of the <SCRIPT> label can be specified to force syntax detection during compiler interpretation
The recognition language is always the latest version of JScript (supported by the current browser.
The following table provides a comparison between JavaScript and JScript. For more information, see the JScript Language manual.
(Table 1) Comparison between JavaScript and JScript versions
----------------------------------------------------------------------------------
Master features of ver. For NN JScript for IE/IIS in OS Javascript
----------------------------------------------------------------------------------
1.0 2.0 1.0 earlier versions of ie3
1.1 3.0 2.0 ie3 later versions (winnt4) Introduce array objects to eliminate a large number of errors
1.2 4.0-4.05 introduce switch statements, Regexp, etc.
1.3 4.06-4.7x3.0 IE 4.0, IIS 4.0, jsh 1.0 fixed some incompatibility, compliant with ecmav1
5.0 IE 5.0 (Win98 se, winme) (* ecmav3 is partially implemented starting with JScript)
5.1 IE 5.01 (Win2k)
5.5 IE 5.5 (winme)
5.6 IE 6.0
1.4 (server side) (not implemented)
1.5 6.0 (not implemented) introduced Exception Handling, conforming to ecmav3
----------------------------------------------------------------------------------
(Table 2) ecmascript versions and their implementations
----------------------------------------------------------------------------------
Ver. Javascript JScript description
----------------------------------------------------------------------------------
Ecmav1 1.1 1.0, 2.0 ECMA-262 V1 Based on JavaScript 1.1.
1.2 JavaScript 1.2 Release, ECMA-262 V1 still not completed.
1.3, 1.4 3.0 complete implementation of ECMA-262 V1
Only descriptive descriptions are added for ecmav2 ECMA V1.
Ecmav3 (x) Part 1 ECMA-262 v3
1.5 5.5 complete ECMA-262 v3
(X) 5.6 there is no difference between the client and jscript5.5.
----------------------------------------------------------------------------------
2. Object-oriented
--------
(Note: The descriptions below are non-academic materials)
An object is a data structure. It encapsulates the attributes and behavior information of the described things, and describes things through inheritance.
Derivative relationships in reality (or in the execution environment. Another role of inheritance is to strengthen the reuse of information and renew
It provides the characteristics of polymorphism.
To sum up, an object-oriented language environment should:
1) implement a specific "object" Data Structure
2) Implement Object Inheritance
3). Information encapsulation in objects
4) understand the polymorphism mechanism at the compiler level and provide the polymorphism characteristics at runtime.
For the above characteristics of objects, the standard academic documents are summarized as inheritance, encapsulation, and polymorphism.
In addition, in a strongly typed language environment (such as a compilation language), the class type is usually implemented based on the object ".
In this case, "class" is the type description, and "object" is the variable Declaration (VAR ). More machine-level
The description is that "class" is used to declare the layout of the data structure, while "object" is allocated in the memory according to this layout.
Data Block (instance ).
Some strongly typed languages provide "class type" to describe a class reference. In this case, the "class" will have
A description structure (struct) in the memory ). This also means that "only the language that provides the runtime information (rtti)" Can
Provides the "class type" language feature.
Some object-oriented concepts include:
-Property)
-Attribute)
-Reader (getter/setter)
-Method)
-Virtual Method)
-Dynamic Method)
-Pure virtual method/abstract Method)
-Event)
-Mutilcast event)
For more information about these concepts, see. In the implementation of OOP core by qomo openproject
These concepts are often mentioned. You will also clearly see how to implement the complete language features of OOP.
3. object-oriented and Object-based languages
--------
A language that provides the "object" data structure. If it cannot fully implement the three basic features of object-oriented
It is considered an object-based language ". Complete implementation
These three features are called "object-oriented languages ".
Javascript is an object-based language. We usually say it has an "incomplete OOP feature ". Qomo
Openproject will implement more OOP features based on native JavaScript, enabling Javascript
It can easily describe a larger framework and develop more complex rich Web Client/application.
Qomo openproject pairs will borrow a lot of OOP features and syntax features from Delphi and C. Therefore, if you
If you need to have a deep understanding of the Implementation Technology of OOP core in qomojs, you may need to understand the basics of Delphi or C #.
Basic knowledge.
If you only need to apply qomo to your system, you only need to remember some syntaxes and rules and carefully
Read the sample code. ^. ^
4. object-oriented development architecture
--------
The description of the development architecture is different from the syntax description of the language itself. In qomojs, oop core only contains the syntax
Implement More OOP features and support capabilities. However, oop core itself does not describe the architecture.
In. net, the underlying. NET Framework is a development architecture, while FCL (framework component library)
Is a component library, which is at the same level as the visual component library of Delphi.
Meaning.
However, the "architecture" itself does not have hierarchical restrictions. That is to say, you can have the framework at the RTL level,
You can also have the framework at the class library level, or at the "Component Library" level.
. Then, you can find "plug-in architecture", "module scheduling architecture", or "Ajax-like architecture ".
Something called architecture.
Therefore, if we understand the encapsulation mode of FCL in the component library, we can also analyze and obtain its architecture.
Mode. -- In the book "Inside VCL (in-depth core-VCL Architecture Analysis)", Li Wei analyzed this angle
The component architecture of VCL.
The support of various OOP features at the underlying layer of qomojs enables it to describe and implement various underlying architectures and components.
Architecture and a higher (or lower) level of architecture design. In qomo openproject, we will mainly implement a visual
Component Architecture, and a subset of Delphi VCL/. Net FCL is developed above.
In addition, we also provide template programming support and SOA support on the underlying architecture. These are bottom racks
And sometimes they are understood as language features. -- Of course, it depends on your perspective.
It is very easy to implement an Ajax architecture in qomo openproject. In addition, you can also see qomo
Openproject integrates the Atlas (Microsoft's Ajax Toolkit) and activeui's template framework with faster means. Then an SOA framework will be integrated.
These frameworks and their implementations can all run well in qomo openproject. If you want to use qomo for Language Research
Instead of application development, you can follow this method to implement it layer by layer.
One day, you find that a line of code can complete all the work you want, And a 256-bit CPU machine also runs
When you do not move this line of code, I think you will reflect: B-end development should be a lightweight architecture.