ISP Session Specifications

Environments supported

Basically, there are 3 supported environments, classic ASP, classic ASP.NET, ASP.NET Core.

Supported Session Variable Types

We don't sell you 'byte array persistance' but a wide range of variable types plus interoperability between the 3 environments.

redis support

Currently, Redis 2.8 up to 5.0 have been tested. On Windows, a Microsoft Redis-fork must be deployed and compiled.
Microsoft Redis for Windows clone MSOpenTech / redis
If you wish, you can download ADC Cure - Redis Build (non modified) our version.

More specific Redis.io support can to be found at the Official Redis Website

Variable types supported

Note: for sake of readability, colomn 'variable type' will only contain a description, not the technical storage types such as VT_BSTR, BSTR, System.String etc.
Variable type ISP Session/Cache COM ISP Session/Cache ASP.NET ISP Session Core Notes
String   Strings are unicode-16 compatible.
((U)Int32), Long Partly, see note Script, does not support unsigned types
((U)Int64), () Script does not support Int64 ISP session maintains the variable
((U)Int16), integer See note Script, does not support unsigned types
Though, ISP session maintains the variable
Byte
Char See note ASP script cannot support 'char'.
Though, ISP session maintains the variable
Null See note in ASP script, Empty but also 'Nothing', are equivalent to null in C#
DBNull Null (not to be confused with 'Empty')
Boolean
Date
Float
Double
Decimal
Currency Microsoft deprecated support for the 'Currency' type.

A Currency type in VBSCript, will be converted to a decimal Variant type when touched by ISP Session (for .NET).
Object/Variant
Flat Array Script only supports 'variant' arrays,
though 'typed arrays' such as string[] are maintained
Script variables are 'variant' corresonding with 'System.Object' in .Net
Though Microsoft deprecated Variant support in .NET Core, we'll continue to support them.
Dimensional Array Script only supports 'variant' arrays,
though 'typed arrays' such as string[] are maintained
Jagged Array Script only supports 'variant' arrays,
do not use jagged arrays in in ASP.NET if you plan to share the session with classic ASP
Jagged arrays can contain flat arrays
Persistable COM objects e.g. ADODB.Recordset supported COM objects (IStream-able) supported COM objects (IStream-able)
Serializable .NET objects Yes, but built in serialization is not recommended, and not compatible with classic ASP Yes, but only if you tarkget .NET framework up to 461-463. See comments. BinaryFormatter is used for objects.

Session Sharable data types (ASP - ASP.NET)

The table below should be considered if you plan to share Session variables between ASP.NET and Classic ASP. If you store types, that Vbscript cannot understand, the variable is lost.

Interoperable data types between classic ASP and ASP.NET (ISP Session). Also note, that in VBScript, all variables, in fact, are 'boxed' as a Variant, thus, System.Object, in .NET
VBScript data type ASP.NET (.NET) type Comment
String (VT_BSTR) System.String
Byte (VT_I1) System.Byte
Integer (VT_I2) System.Int16
Long (VT_I4) System.Int32
Boolean (VT_BOOL) System.Boolean
Date (VT_DATE) System.DateTime Variant dates have just a second-fraction resolution of 3 decimals,
do not share if you intend to work with a higher fraction resolution.
Null (VT_NULL) System.DBNull
Empty (VT_EMPTY) null
Currency (VT_CY) CurrencyWrapper will convert to decimal CurrencyWrapper is built into .NET and will convert to decimal, but deprecated in .Net Core
Array (VT_ARRAY | VT_VARIANT) System.Object[]
Not supported. Do not use jagged arrays since VBScript cannot support them, but only nested arrays within the Variant type. e.g. System.Object[][] (combinations are possible)
Double (VT_R8) System.Double
Single (VT_R4) System.Single
Decimal (VT_DEC) System.Decimal
Unknown/Dispatch System.Object e.g. ADODB.Recordset
Safearray (e.g. Dim a() as Byte, like in VB 6) eg. System.Byte[], System.Int[] Script cannot touch those arrays, although, they are maintained in the Session
Other types, like unsigned or 'Long Long' e.g. System.Int64 Script cannot touch these types (or use the CDec() function), as long as they fit in a 'Variant', they are maintained

Runtime

ISP Session/Cache for Classic ASP ISP Session/Cache for Classic ASP.NET ISP Session/Cache for ASP.NET Core
Runtime: 32/64 bit COM DLL with
Mvc 14.1 Runtime
assembly with
.NET Framework 4.5.2
assembly with
.NET Core 2.1
Dependenc(y)(ies): MSVC 14 runtime StackExchange Redis lib StackExchange Redis lib
32/64 bit: Two separate DLLs Agnostic Agnostic
Settings Web.config (compatible with ASP.NET) Web.config appsettings.json
OS/Environment Windows 2012 sp2 and
higher 32/64 (IIS)
.NET Framework 4.5.2 up to 4.8.
Not tested on Mono
.NET Core framework 2.1.1
and higher. Beta on Linux