← Back to team overview

sikuli-driver team mailing list archive

Re: [Question #189458]: [research] Sikuli-script.dll for calling API from .NET

 

Question #189458 on Sikuli changed:
https://answers.launchpad.net/sikuli/+question/189458

daluu posted a new comment:
Interesting discussion. While porting the Java API to .NET is the
optimal choice, as Matthew suggested there are other options, though
less integrated/native.

Porting to .NET is probably not ideal unless adopted by the Sikuli team
because that would also be like forking it for another platform and then
you'd have 2 different code bases in different feature/release/bug fix
cycles.

Other options besides what Matthew suggested, could be:

* expose Sikuli Java API as a web service (REST, XML-RPC, SOAP), then
consume that web service with a .NET client library wrapper that gives
you same API but in .NET form. Then you simply need load that .NET
client library to use as API, assuming the Java web service is up.

* expose Sikuli Java API with a shell/command line interface, and then
call that from .NET shell execute. Can also make a .NET client library
wrapper to abstract away the need to make shell calls as well.

I'm not familiar with the Java process & marshalling approach, but the
web service approach fits well with cloud & distributed
computing/testing model, and can scale.

For the web service approach, and even shell approach, some of the basis
of that work is already available. So one simply needs to customize the
exposed Java API from the Java side, then write the .NET client library
wrapper:

Shell & XML-RPC integration
http://code.google.com/p/simplesikuli/

Other options via XML-RPC or APIs:
https://github.com/enix12enix/sikuli-remote-control
https://github.com/enix12enix/sikuliserver;

This topic discussion also applies generically across platforms (e.g.
use Sikuli with Perl, PHP, C/C++, VBScript, node.js, etc.). And in such
case, the web service approach (and shell calls too) adapts more easily
across the platforms (compared to figuring out how to marshall data in
other platforms from a Java process).

-- 
You received this question notification because you are a member of
Sikuli Drivers, which is an answer contact for Sikuli.