Advanced

Embedding Mono code in unmanaged applications on GNU/Linux

Arvidsson, Martin and Hermansson, Viktor (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:
author
Arvidsson, Martin and Hermansson, Viktor
organization
year
type
M2 - Bachelor Degree
subject
keywords
c#, mono-project, marshalling, embedding, wise
language
English
id
2154362
alternative location
http://portal.ch.lu.se/Campus.NET/Services/Publication/Export.aspx?id=1879&type=doc
date added to LUP
2011-09-06
date last changed
2012-06-28 11:19:34
@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},
  keyword      = {c#,mono-project,marshalling,embedding,wise},
  language     = {eng},
  note         = {Student Paper},
  title        = {Embedding Mono code in unmanaged applications on GNU/Linux},
  year         = {2011},
}