Glossary of terms used in the CSO Gateway documentation and in source code comments

Client side terms | Server side terms | In the CSO Gateway

Client side terms

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


cso-class, cso-enum, cso-interface

A cso-type that was registered with one of the following method: (Type.registerClass, Type.registerInterface and Type.registerEnum), is called, respectively, a cso-class, a cso-interface and a cso-enum.

See Also:  cso-type
cso-generated class, cso-generated enum, cso-generated interface

The Type Morpher of the CSO Gateway is used to create cso-generated types from classes, structs, interfaces and enums. The Type Morpher will convert classes and structs into cso-classes, these cso-classes are called cso-generated classes. It will convert interfaces into cso-interfaces, these cso-interfaces are called cso-generated interfaces. And it will convert C# enums into cso-enums, these cso-enums are called cso-generated enums.

cso-generated object

An instance of a cso-generated type.

See Also:  cso-generated type
cso-generated type

A cso-generated type is a cso-type whose type-defining-script was dynamically generated from a type loaded in the .NET CLR. The type can be a user-defined type or even a type from the .NET framework.

cso-native class, cso-native enum, cso-native interface

Cso-classes, cso-interfaces and cso-enums that are predefined in the CSO Gateway are called, respectively, cso-native class, cso-native interface and cso-native enum.

See Also:  cso-native type
cso-native object

A cso-native object is an instance of a cso-native type.

See Also:  cso-native type
cso-native type

A cso-native type is a cso-type predefined in the CSO Gateway. See the CSO Gateway API Documentation - Client side topic.

See Also:  cso-type

A cso-object is an instance of a cso-class or one of the enumerated values of a cso-enum. Cso-objects are created by using the new operator on a prototyped function object that was registered as a class with the Type.registerClass method. The enumerated values of a cso-enum are also considered cso-objects even if their underlying javascript type is Number.

See Also:  cso-type

A cso-type is a javascript type whose definition originates from the CSO Gateway. There are 3 kinds of cso-types: classes, interfaces and enums. Classes and interfaces are defined by adding functions and values to the prototype of a function object which will play the role of the constructor. The CSO Gateway implements the object-oriented paradigm by registering these prototyped functions with the Type.registerClass and the Type.registerInterface methods. Enums are registered with the Type.registerEnum method.

Cso-types registered with the registerClass, registerInterface and registerEnum methods are called, respectively, cso-class, cso-interface and cso-enum.

In terms of how they are created by the CSO Gateway, cso-types can be split into 2 categories: cso-native types and cso-generated types.



The term javascript is used to refer to any of the many implementations of the ECMA 262 language specification that are found in the script engine of popular browsers. It is a goal for the CSO Gateway to use only what is common to all these implementations.

javascript type

Since javascript is an untyped language (or loosely typed) the term javascript type needs to be clearly defined.

In the context of the CSO Gateway, the javascript type of a value is defined by the Intrinsic Object corresponding to what is return by the typeof operator, that is number, string, boolean, object, function. Except if the value was created by calling the new operator on a function that was previously registered with the Type.registerClass , the Type.registerInterface or the Type.registerEnum method. In this case the javascript type is defined by that function object. These special types that are registered with registerClass and registerEnum are called cso-types.

The Object.getType and the Object.getTypeName are, for the most part, returning the correct type and type name for a given value. One exception would be for enums, the Number constructor is returned instead of the (empty) constructor defined for the enum.

When the discussion is clearly located on the client-side, a javascript type might be refered to simply as a type.


The term type usually refers to a type in the .NET CLR.

See Also:  javascript

Server side terms

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


cso-compatible object

An object is said to be cso-compatible if all the objects that will be encountered by the Object Gateway while recursively converting the object are instances of cso-compatible types.


An object being an instance of a cso-compatible type does not imply that the it is a cso-compatible object. There are 2 reasons for that:

  • A cso-native type may have a generic server-side equivalent (Example: CsoGateway.Collection.List`1 and System.Collections.Generic..::.List<(Of <(T>)>)) and the specified actual type parameters of the constructed generic type may not be cso-compatible.
  • Because of polymorphism and the fact that derived classes of cso-compatible class are not automatically cso-compatible, a property might return an instance of a non-cso-compatible type althought the return type of the property -is- cso-compatible.

cso-compatible type

A type is said to be cso-compatible if one of the following is true:


This status is not inherited. Derived classes of cso-compatible class are not automatically cso-compatible.

cso-ready type

A type is said to be cso-ready if all the conditions necessary for the Type Morpher to create a corresponding cso-generated type are met. For example, for a -class- these conditions includes

After the Type Morpher has created the cso-generated type successfully, the type is no longer said to be cso-ready, it is said to be cso-compatible.

In the CSO Gateway

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z



The term Importer refers to a group of functionnalities inside the CSO Gateway:

See Also:  Loader


Object Gateway

The term Object Gateway refers to a group of functionnalities inside the CSO Gateway:

  • The ObjectGateway web control that takes a cso-compatible object in input, sends it to the ToClientSideMainConverter class and puts the value-creation-script for the cso-object on the page.
  • The ToClientSideMainConverter class that provides conversion for primitive types and the recusive aspects of object conversion.
  • The others converters (implementing the IToClientSideConverter interface) used to convert cso-native type in the Native Type Libray and also custom converters.