Architecture – Choice of Technology to Develop Multi-Platform Applications

Architecturecross platformdesktop applicationmobile

What I have is business WinForms application written in C#.
What I would like to do is to redesign it to meet multi-platform approach.

I was thinking about architecture involving application server (executing all the logic and performing database operations) and thin client side running on Windows and Mac OS as well as Android, iPhone or just in web browser. Windows version should also have to be able to use methods from some DLLs.

Solution that comes to my mind is desktop client developed to target Silverlight (for Windows and Mac OS users). Web part, based on ASP.NET, would be adjusted for mobile devices. All would use WebServices provided by WCF server running on Mono.

What do you think about this approach? Why is it good and why if it's not? I know that all of those platforms are in range of Adobe AIR but choosing it will result in abandonment of all existing code and development team's knowledge about .NET.

Thank you for any hint.

Best Answer

I was thinking about architecture involving application server (executing all the logic and performing database operations) and thin client side running on Windows and Mac OS as well as Android, iPhone or just in web browser. Windows version should also have to be able to use methods from some DLLs.

I would recommend you just make it a website. Pick any .NET server stack you want (preferably ASP.NET MVC) and just serve content as HTML5/CSS3/JavaScript.

That's the easiest way to go cross-platform. You can even use a tool like PhoneGap to compile your website to native android / iOS applications.

Silverlight

is an option but then you drop Linux support and force your users to install silverlight (I personally won't out of principle), You also have a completely separate code-base for mobile and desktop. I would personally only choose silverlight if you can port more then 50% of your UI directly into silverlight verbatim.

Related Topic