Mono 1.0 Features
CLI runtime engine.
The Mono runtime engine implements the ECMA Common Language
Infrastructure specification to the best of our knowledge and is
able to execute code produced by the Microsoft .NET Framework.
The Mono runtime engine is available for various architectures and
operating systems: x86, x86-64, PowerPC, SPARC, S390, StrongARM,
HPPA on Linux, Windows, HP-UX, Solaris, MacOS and BSD operating systems.
In addition an advanced native optimizing compiler is available
for x86, SPARC, s390 and PowerPC available in both an
ahead-of-time (AOT) compilation mode to reduce startup time and
take advantage of all available optimizations and a Just-in-Time
(JIT) compilation mode.
The Mono runtime engine uses the Boehm conservative Garbage
Collector (bundled with the release).
Known Issues
Code Access Security (CAS) is not supported in Mono 1.0
Java runtime engine.
The Mono 1.0 release bundles the IKVM Java virtual machine and the
tools required to get Java and .NET interoperability.
Known Issues
The Java functionality is limited by the features supported by the
GNU
Classpath libraries.
Class Libraries.
The class libraries as shipped with Mono implement the .NET 1.1
profile. Binaries produced with Mono will run only with the .NET
1.1 framework or later versions on Windows systems.
These are the libraries that make up the Mono 1.0 release:
- mscorlib.dll
- System.dll
- System.Data.dll
- System.DirectoryServices.dll
- System.Drawing.Design.dll
- System.Drawing.dll
- System.Runtime.Remoting.dll
- System.Runtime.Serialization.Formatters.Soap.dll
- System.Security.dll
- System.Web.dll
- System.Web.Services.dll
- System.Xml.dll
- Microsoft.VisualC.dll
- Microsoft.VisualBasic.dll
- cscompmgd.dll
- IBM.Data.DB2.dll
- System.Data.OracleClient.dll
Please read the section on known issues with
the above libraries for details.
The Gtk# 1.0 GUI programming toolkit.
Gtk# is a cross platform GUI programming toolkit available for
Linux, Windows and MacOS X systems and is the recommended platform
for doing desktop application development at Novell.
Gtk# provides access to any of the Mono supported languages to the
the libraries that make up the GNOME 2.2 platform, and it is fully
is compatible with new versions of GNOME.
- art-sharp.dll: LibArt 2D graphics engine.
- atk-sharp.dll: Accessibility toolkit.
- gdk-sharp.dll: Low-level windowing interface.
- glade-sharp.dll: Glade GUI designer support.
- glib-sharp.dll: GLib integration.
- gtk-sharp.dll: The GUI toolkit.
- pango-sharp.dll: Unicode text rendering.
- rsvg-sharp.dll: SVG rendering library.
All of the above are available for Mono and the Microsoft .NET
Framework to develop cross platform applications. In addition on
Linux and MacOS X the following are also available:
- gconf-sharp.dll: Gnome Configuration integration.
- gnome-sharp.dll: GNOME UI libraries.
- gecko-sharp.dll: Mozilla integration.
- vte-sharp.dll: Terminal Emulator Widget.
- gtkhtml-sharp.dll: The lightweight HTML rendering engine
Work is underway to make these APIs available to Windows .NET
developers as well.
Known Issues: MacOS X
Gtk# applications fail to start with `Cannot open font file for font Verdana 12'
This is only an issue if you are executing GTK+
applications remotely from MacOS X. To solve this, use the
following workaround:
$ export GDK_USE_XFT=0
Mono and Novell specific Libraries.
The following are the libraries the that this release includes,
with a short description of their functionality. Refer to the
documentation for more information on them:
- Commons.Xml.Relaxng.dll: XmlReaders and validators for RelaxNG.
- Mono.Cairo.dll: Integration with CairoGraphics
- Mono.CSharp.Debugger.dll: API to generate debugging information.
- Mono.Data.SqliteClient.dll: Sqlite database provider.
- Mono.Data.SybaseClient.dll: Sybase database provider.
- Mono.Data.TdsClient.dll: MS SQL server provider.
- Mono.Data.Tds.dll: MS SQL server provider.
- Mono.GetOptions.dll: GetOptions convenience library.
- Mono.Http.dll: Http loadable extensions for Web applications.
- Mono.Posix.dll: Access to Unix APIs and System calls.
- Mono.Security.dll: Cryptographic library extensions.
- Mono.Security.Win32.dll: Win32 support for cryptographic libraries.
- Novell.Directory.Ldap.dll: Novell eDirectory and LDAP integration.
Third Party Libraries.
We are distributing the following third-party libraries and
components with Mono 1.0 as they are useful to developers:
- ByteFX.Data.dll: MySQL client access library (LGPL)
- SharpZipLib.dll: Zip, Tar, Bzip compression library.
- PEAPI: Generation of CIL images
- NUnit: to build Unit testing.
- Npgsql.dll: Postgresql client access library (LGPL)
GNU Classpath for the CLI.
We bundle a version of the GNU Classpath with this release of
Mono to support the execution of Java applications. The support
of Java is limited in what is supported by GNU Classpath.
C# 1.0 Compiler
The compiler implements the ECMA C# 1.0 implementation with
support for CLS compliance compilation. In addition it has
support for implicit method group conversions and
iterators. These features are turned on by default.
Although there are known parsing errors and compilation errors for some
extreme corner cases, we are not aware of the compiler generating
incorrect code at the time of the release.
IL assembler/disassembler
- The Assembler does not support v-table fixups, local thread storage nor unmanaged exports.
- The disasembler (monodis) is not complete and will be replaced with a command-line compatible one in the future (ildasm).
.NET 1.1 profile known issues
This is not a comprehensive list, nor does it list all of the
differences with the .NET Framework, refer to the documentation.
Known Issues: General
The Code Access Security (CAS) APIs are available, but they are
non-functional in the above libraries.
COM support has been stubbed out, and will throw
`NotImplementedExceptions' if used.
IBM DB2 and OracleClient
These are both managed wrappers for proprietary client libraries,
so their availability is limited to the platforms where their
client libraries are distributed.
System.Data
Currently we support TDS protocol version 7.0, some features in
the Framework require version 8.0.
System.Drawing
-
Metafiles and Printing are not supported.
-
Pen does not support dash caps, different end caps and compound array.
-
CustomLineCap and AdjustableArrowCap are not
supported.
-
In TextureBrush, ImageAttributes are not supported.
-
TextureBrush and LinearGradientBrush have
problems in handling transformation matrix because
of a known Cairo bug. Cairo does not tile a pattern
well, if it is transformed at the same time.
-
PathGradientBrush support is not complete.
Known Issues: System.Reflection.Emit
- AssemblyBuilder.DefineUnmanagedResource is not implemented.
- ILGenerator.UsingNamespace is not implemented.
- EnumBuilder.GetMethodImpl will always return null.
Known Issues: System.Runtime.InteropServices
- ExtensibleClassFactory is not implemented.
- GetManagedThunkForUnmanagedMethodPtr is not implemented.
- GetThreadFromFiberCookie is not implemented.
- GetUnmanagedThunkForManagedMethodPtr is not implemented.
- NumParamBytes is not implemented.
- ReadByte (object,ofs) is not implemented.
- ReadInt* (object, ofs) is not implemented.
- ReleaseThreadCache is not implemented.
- UnsafeAddrOfPinnedArrayElement is not implemented.
- WriteByte (object, ofs) is not implemented.
- WriteInt* (object, ofs) is not implemented.
Known Issues: System.Security.Cryptography.X509Certificates
- X509Certificates.CreateFromSignedFile: minimally implemented.
Known Issues: System.Threading
- CompressedStack is not implemented.
Known Issues: System.Web
The behavior of Trace.axd in Mono 1.0 does not match the .NET
behavior and we recommend that you do not store passwords on
Trace.axd files. If this feature is important to you please see Bug #60739
for a patch.
- HttpClientCertificate: No support at all for client certificates.
- HttpBrowserCapabilities: Not all properties supported browscap.ini file
- HttpClientCertificate: We are not supporting client certificates
- ISAPIRuntime: We won't implement any of these.
Known Issues: System.Web.Security
- FileAuthorizationModule: Init not implemented
- FormsAuthenticationModule: Encrypt ticket
- PassportAuthenticationModule: Not implemeted.
- PassportIdentity: Not implemented.
- WindowsAuthenticationModule: Not implemented.
Known Issues: System.Web.UI
- Control: MapPathSecure and BuildProfileTree
- PartialCachingControl: CreateControl is not implemented
Known Issues: System.Web.UI.WebControls
- BaseValidator: we don't do client side validation
- XmlBuilder: SetTagInnerText not implemented.
- Xml : check permissions when accesing file and executing xsl transformation
Known Issues: System.Xml.*
- XmlValidatingReader: XDR is not supported.
- XmlSerializationWriter: XML generated not identical in corner cases.
IBM DB2 and OracleClient
These are both managed wrappers for proprietary client libraries,
so their availability is limited to the platforms where their
client libraries are distributed.
Microsoft.VisualBasic
The Microsoft VisualBasic runtime is included and will allow
applications that were compiled using Microsoft's Visual Basic
compiler to execute with Mono. The following are the known
problems with it:
- COM interoperability functions are not implemented.
- System.Drawing and Windows.Forms helper routines are not implemented.
- Filesystem class is not complete (7 methods missing).