Embedding Mono code in unmanaged applications on GNU/Linux

University essay from Lunds universitet/Högskoleingenjörsutbildning i datateknik

Abstract: In today’s society more and more work is carried out with the help of dif- ferent computer systems. To benefit from the data, integration between the systems is needed. Saab has developed a solution to the problem, by the name WISE. With a modular design costs can be minimized, because a new integration does not necessarily require new software, but can be achieved with configuration of an existing module. (a so-called driver). By supporting languages on a higher level than C++, development of new drivers can be speeded up to further decrease the costs. As a first step C# support was implemented with the help of C++/CLI. Such a solution is constrained to the Windows platform. To be able to meet the customers need for Linux compatibility this project was initiated, to create a wrapper driver with the help of Mono. In the report it is shown that it is fully possible to create a working embedding of C# with the Mono runtime. The documentation of the limited embedding-API is however inadequate, this resulted in us having to investigate the functionality by creating small test cases and read the source code to see how function calls behaved. We have implemented a working wrapper driver which with the help of Mono enables WISE to start up and call C# applications. To verify the functionality in the wrapper driver, we have implemented a test driver which creates all data types known by WISE and sends them between C# and WISE. To test our wrapper driver in a real scenario, we have developed a C# chat driver.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)