# Saxon on .NET

Saxon is available on both the Java and .NET platforms. This section of the documentation describes aspects of Saxon that are specific to the .NET platform.

The Saxon source code is written in Java. It has been ported to the .NET platform by cross-compiling the bytecode produced by the Java compiler into the MSIL code used on .NET, and adding various components designed to integrate Saxon fully into the .NET environment. These additions include:

1. Addition of command-line interfaces `Transform`, `Query`, and `Validate`.

2. Addition of a front-end API suitable for calling Saxon from .NET languages such as C#, VB.NET, or ASP.NET

3. Internal changes within Saxon to take advantage of services offered by the .NET Common Language Runtime, for example collation support, regular expression support, URI handling, and XML parsing.

Both the basic and schema-aware versions of Saxon are available on .NET, with the same functionality as the Java versions.

Installation of Saxon on the .NET platform is described at Installation (.NET).

The commands `Transform`, `Query`, and `Validate` have the same format as their Java counterparts. They are described in the following places:

1. Transform

2. Query

3. Validate

An introduction to the API for Saxon on .NET is provided at Saxon API for .NET; full specifications are available here.

For information about writing extension functions using .NET languages, see Writing extension functions for .NET.

Next