Microsoft did not provide a C# engine for Windows Script Host (WSH). CS-Script is an attempt to fill this gap. The core component of the CS-Script is a script engine that utilises the power and flexibility of the Microsoft .NET Framework.
CS-Script, by being a scripting framework, provides a lot of development opportunities when usage of traditional (non-scripting) programming techniques requires significant development effort.
Development environment is changeable.
Frequent code changes are expected.
Application logic is simple.
Application is needed for a very specific isolated task.
Intellectual property protection is not an issue.
Source code is open.
Maintenance and deployment requirements are very strict.
SW solutions ideally reside in a single file and is to be deployed by simple
copying of a minimal number of files.
Development speed is expected to be faster than usual.
Code is composed of relatively heavy chunks.
Simple deployment approach:
just bring both script and engine file (about 50 K size) on the system that has
.NET runtime installed and script can be run.
Portability:
Scripts can be run on any system, which has CLR installed.
Base language is a truly OO language:
full featured C# is used. It is called it "C# Script" but actually it is a C#.
"C# Script" better represents execution nature of the system.
All .NET functionality is available
FCL, COM Interop, Remoting.
Easily available Debuggers and rich IDEs
MS .NET Studio or third-party ones.
Execution model within the script is the same as for any .NET application:
static void Main().
Any script can be easily converted into application and vice versa.
Optimised interpretation:
interpretation of any statement in the script is done only once even though the
statement is frequently used throughout the code.
Script language is type safe:
strong typing is a luxury not available in most of the scripting languages.
Dynamic typing is also available: use Object as a default type and do
boxing/unboxing all the time.
All SW development tasks can be done in the same language.
GUI development for script applications becomes easy.
Extensibility:
scripting system can be extended by using the assemblies written in any .NET
languages or COM components