How to communicate between Mono and XOJO Web efficiently?

We have a big project, have many client platforms, like Mac/Windows/iPhone/Android and Web, we use Xamarin Studio and Visual Studio to share business logic code for building these Desktop & Mobile clients, and we develop a Plugin Framework DLL for these clients (C#), the purpose it is that in Desktop and Mobile client apps, we have a main project and several module projects, and we use the Plugin Framework to deal Data SYNC and CRUD operation with Web Server( PHP + Mongodb + RabbitMQ, provide Web Servicer API and use RabbitMQ to push notification and Sync message),and the framework can get and operate client SQLite Data.

Now, we plan to use XOJO to build the Web Client, can we use mono to build a ‘Plugin Framework’ in Web Client Server (Center Web server have one only, web client have several), and we plan use Mono(C#) to build the plugin framework, because we can share the Plugin Framework DLL code(provide for desktop & mobile client), and the RabbitMQ.Client.DLL is good choice, we plan to use the Web Client Plugin Framework to communicate with Center Web Server, and get data return to the XOJO Web client, and use the Web Client Plugin Framework to get and send RabbitMQ Notification, because XOJO have not driver library to deal these,

Question:
??How to use XOJO Web Client communicate with MONO C# Component in UBUNTU OS (two way) efficiently? Use Thrift or REST-JSON? we need a better way, Thanks! ~_~ ?

Possible: yes

Good idea?: I would say no.

This is going to be a World of hurt. On Windows you can use COM/.NET interoperability to consume some .NET code from a Xojo app. I am not sure if that works in a console app which web apps are built on top of. I don’t believe you could do it with Mono.

You could embed the Mono runtime into your Xojo app as a plugin and call the code that way. However the Mono runtime has some unique licensing restrictions and I believe you would have to pay Xamarin to do that.

At the end of the day you would be better off finding an alternative user interface mechanism for your large .NET code base.

.NET core is open source which may be sufficient to run your assemblies. If that’s the case and your on Windows only (Linux/Mac not 100% completed yet) you could incorporate .NET core & Roslyn into your Xojo app as a plugin.

Again I doubt this is worth the time necessary to make it work.

I have a way, but want to have some other idea help,
One is :

  1. Mono Call XOJO, use XOJO Web’s /special/ Event.

  2. XOJO Call Mono, XOJO post data to Mono ASP.NET Web Service URL? ( use Mono to build a ASP.NET Web Service?)

what about the efficiency? discuss PLZ!

You could do it that way but thats just standard Web API calls.

Could we have a better way to communication?

IPCSocket ?

From my research IPCSocket is Xojo specific for each given platform. It would be difficult to interface with it this way.