Embedding Mono code in unmanaged applications on GNU/Linux
(2011)Computer Science and Engineering (BSc)
- 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... (More) - 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. (Less)
Please use this url to cite or link to this publication:
http://lup.lub.lu.se/student-papers/record/2154362
- author
- Arvidsson, Martin and Hermansson, Viktor
- organization
- year
- 2011
- type
- M2 - Bachelor Degree
- subject
- keywords
- c#, mono-project, marshalling, embedding, wise
- language
- English
- id
- 2154362
- date added to LUP
- 2011-09-06 00:00:00
- date last changed
- 2018-10-18 10:17:29
@misc{2154362, 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.}}, author = {{Arvidsson, Martin and Hermansson, Viktor}}, language = {{eng}}, note = {{Student Paper}}, title = {{Embedding Mono code in unmanaged applications on GNU/Linux}}, year = {{2011}}, }