Overall strategy for development technology

Dear all,

I am starting a large project, from scratch, related to kind of health follow-up application.

I need for that: a mobile application (using Unity technology), a web application (host on a linux atm). Moreover, I feel I will need a Host application, close to the web application, to exchange, store information in my DB.

The good thing with ‘from scratch’ project, is that you can choice technologies according to the overall requirements of the system. My problem now, where I need your advise, is the language to choose, to develop the computation algorithm, the decision making system.

I see this as a kind of ‘library’, used by all mobile, Host application and web application to compute data from a unique brain, a library whose version can then be deployed easily to all the targets. The objective is, of course, re-use already developed things, and make easier the maintenance and the deployment of new versions.

I am a Python developer, so I planned to start Host application front with this language, thinking about a ctypes interface to a C++ library (built .so on ubuntu, .dll? on windows for unity?). This C++ could be built using CLR options for Unity interfacing. It sounds possible, but I didn’t find any clear architecture description.

But what about web application? (here I am not very familiar with this, but I know web2py to retrieve my python - C interface?).

I am also thinking about C# everywhere. I know this can run on Linux, but I don’t know the performances. What about web application?

Any consideration missing? What do you think?

Thanks,
Fred

You can write whatever you want externally, then write a plugin to interface with it, then use C# only for interfacing with your plugin and displaying data.

What do you mean by plugin?
To my mind, unity needed .NET executable resources to be executed, right? Then I guess there are requirement for the plugin development, no?

If the data and calculations are not being handled on the client, use whatever you want. If you already know and are comfortable with python, just use that. The client is just going to exchanging data with the host, it’ll just be a data format (xml, json, txt, whatever).

But this requires connection.
I was thinking about a client which is able to do a minimum of work on local data, in case no connection is possible.
Is that too old school ?

It’s a mobile app, it is expected to have a connection. I guess it really depends on the app, and what it is doing. If the heavy lifting is done on the server app, it makes most sense to just have it there. That also means that you don’t have redundant code to maintain and keep in sync.

This is clear. I need to think about this, and the related performances.

To come back to my initial question, what about the .Net requirements for unity plugin (I don’t know at all) ?