<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="../make-menu.xsl" type="text/xsl"?><html>
   <head>
      <this-is section="dotnet" page="intro" subpage=""/>
      <!--
           Generated at 2011-12-09T20:47:22.916Z--><title>Saxonica: XSLT and XQuery Processing: Saxon on .NET</title>
      <meta name="coverage" content="Worldwide"/>
      <meta name="copyright" content="Copyright Saxonica Ltd"/>
      <meta name="title" content="Saxonica: XSLT and XQuery Processing: Saxon on .NET"/>
      <meta name="robots" content="noindex,nofollow"/>
      <link rel="stylesheet" href="../saxondocs.css" type="text/css"/>
   </head>
   <body class="main">
      <h1>Saxon on .NET</h1>
      <p>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.</p>
      <p>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 IL code used on .NET, and adding various components
designed to integrate Saxon fully into the .NET environment. These additions include:</p>
      <ol>
         <li content="para">
            <p>Addition of command-line interfaces <code>Transform</code>, <code>Query</code>, and <code>Validate</code>.</p>
         </li>
         <li content="para">
            <p>Addition of a front-end API suitable for calling Saxon from .NET languages such as C#, VB.NET, or ASP.NET</p>
         </li>
         <li content="para">
            <p>Internal changes within Saxon to take advantage of services offered by the .NET Common Language Runtime,
for example collation support, URI handling, and XML parsing.</p>
         </li>
      </ol>
      <p>Both the basic and schema-aware versions of Saxon are available on .NET, with the same functionality as the
      Java versions.</p>
      <div class="boxed"
           style="border: solid thin; background-color: #B1CCC7; padding: 2px">When Saxon-EE is used on .NET, queries and stylesheets are selectively compiled to IL code for faster execution. Internally,
         the Saxon compiler generates Java bytecode; the IKVM runtime automatically translates this to IL code when it is loaded.
         Code generation typically improves the performance of queries by around 25%. The code is transient (in memory): it
         cannot be saved as a persistent executable.</div>
      <p>Installation of Saxon on the .NET platform is described at <a class="bodylink" href="../about/installationdotnet.xml">Installation (.NET)</a>.</p>
      <p>The commands <code>Transform</code>, <code>Query</code>, and <code>Validate</code> have the same format
as their Java counterparts. They are described in the following places:</p>
      <ol>
         <li content="para">
            <p>
            <a class="bodylink" href="../using-xsl/commandline.xml">Transform</a>
         </p>
         </li>
         <li content="para">
            <p>
            <a class="bodylink" href="../using-xquery/commandline.xml">Query</a>
         </p>
         </li>
         <li content="para">
            <p>
            <a class="bodylink" href="../schema-processing/commandline.xml">Validate</a>
         </p>
         </li>
      </ol>
      <p>An introduction to the API for Saxon on .NET is provided at <a class="bodylink" href="../dotnet/dotnetapi.xml">Saxon API for .NET</a>;
full specifications are available <a href="../dotnetdoc/index.html" class="bodylink">here</a>.</p>
      <p>For information about writing extension functions using .NET languages, see
<a class="bodylink" href="../extensibility/dotnetextensions.xml">Writing extension functions for .NET</a>.</p>
      <div class="boxed"
           style="border: solid thin; background-color: #B1CCC7; padding: 2px">Saxon has been successfully run under the Mono environment (Mono is a .NET emulation for non-Microsoft platforms).
      However, it has not been comprehensively validated under Mono and there may be undiscovered restrictions.</div>
      <table width="100%">
         <tr>
            <td>
               <p align="right"><a class="nav" href="dotnetapi.xml">Next</a></p>
            </td>
         </tr>
      </table>
   </body>
</html>