Interoperatbility between Unmanaged (C/C++) and Managed (Mono Platform) Programs


What is Mono?

The Mono project is an open source effort sponsored by Novell to create a free implementation of the .NET Development Framework.

Mono includes a compiler for the C# language, a Common Language Runtime (CLR) for the Common Language Infrastructure (CLI) and a set of class libraries. The runtime can be embedded into your application. It implements both ADO.NET and ASP.NET.

The project of this diploma thesis is intended as a contribution to the Mono Project. Thus it is essential for this thesis project to keep in touch with the people of the Mono Project in order to ensure integration of the implemented solution into the main Mono development stream. To get new developers started Mono provides a HowTo page.

Description of Task

In the following text managed always refers to programs executed by the Mono runtime (and written in C#), while unmanaged refers to programs written in C++ and compiled into native executables.

In order to facilitate the transition from existing C/C++ applications to the managed environment of the Mono Platform, the main task of this diploma thesis lies in the implementation of a runtime mechanism that allows managed programs to use unmanaged objects and vice versa.

Work in that area has already been done for the Mono Project (see Embedding the Mono runtime). So the first task lies in the evalutation of the existing facilities and finding out

  • what is still missing
  • what does not work reliably
  • what does the corresponding Mono project already have on the TODO list
Depending on the findings, the implementation task of the thesis lies in the addition of missing and correction of erroneous features, in order to make this interoperability infrastructure reliable enough to be used by enterprise applications.


Diese Diplomarbeit wird von der Firma Fabalabs in Zusammenarbeit mit dem SSW betreut. Die Entwicklung erfolgt daher auch unter den von Fabalabs aufgestellten Richtlinien und zu den auf der Projektseite beschreiben Konditionen (Bezahlung!, Konferenzbesuch!, ...). Dort befindet sich auch eine detailierte Projektbeschreibung.

Von Seiten des SSW soll der Fortgang der Arbeit in 14-tägigem Abstand mit dem Betreuer besprochen werden. Bei der Implementierung ist neben der Korrektheit und Robustheit des Programms auch auf guten Programmierstil zu achten. Für die Ausarbeitung der Diplomschrift sind die Richtlinen des Instituts für Systemsoftware zu beachten.

Betreuer: DI Albrecht Wöß
Bearbeiter: Friedrich Priewasser
Ausgabe: 1. März 2004