5

Can i create application in visual studio that can be run on Mac, windows and iOS? My client asked me to create a line of business application that can be run on Mac, Windows or iOS through one click installation, and his precious application was developed as a Windows application in C#, that currently runs only on windows. I have seen xamarin, is any other option? Any help or suggestion would be greatly appreciated. Thanks.

moxy
  • 1,634
  • 1
  • 11
  • 19
ramya
  • 2,350
  • 6
  • 31
  • 57
  • Xamarin seems the only one.. but watch out, you will still need a mac to compile. – moxy Mar 02 '13 at 13:51
  • the problem is Xamarin is not opensource, for creating complex application its STARTER version will not work i suppose. – ramya Mar 02 '13 at 13:58

4 Answers4

3

Yes and NO ;)

it's possible (and brand new) through Visual Studio and Mono (as far as I understood it is an open source implementation of .NET) but you will still need a mac to compile the iOS / OSX versions, an iPhone/iPad/iPod touch to test on device, etc.

Honestly, I would go with creating an OSX app, iOS app and Windows app separately. Willing to do everything at once is nice (and often a cost question) but it is not a real option (unless cost is the major concern).

Even between iOS and OSX there are numerous differences, different concepts (option to have multiple windows on OSX / only one in iOS, different API even for common stuff, the "touch" of an iOS app will make you work differently, screen size will make you think of different functionalities or not all would fit in the iOS app). "UserFriendlyness" is a thing to take into account. a windows user and a mac user are not used to same interface, same application concepts, gestures on phones or trackpads, mac apps are generally not using the (F1,F2, etc. keys), etc.

There are stuff like phoneGap (ok not the desktop part of your question) that says everything works on all phones but it does not benefit of the advantages of a plateform, it goes to the lower common denominator, meaning that your app is often less efficient than if made natively.

Even more hazardous, you inherit from bugs of these tools, and some can be really tricky to understand (is there a problem in my code, in phoneGap/xamarin ?) and you could loose much time on stuff like these.

In the end it's just a matter of cost.

Even Excel from Microsoft is different between OSX and Windows plateforms, they even fixed a bug in excel 2011 for mac, that is still present in windows versions ;) (they have different business units if I remember correctly)

So yes, business logic, but mac apps is not only objective-C, you can import/work with C or C++ files in Xcode.

just my 2 cents.

moxy
  • 1,634
  • 1
  • 11
  • 19
  • Most of what you said is very well put, but you can't really compare Excel here.. that's not written in .NET even on Windows..so I think that argument doesn't apply. But the rest of it.. good stuff. – Matt Mar 02 '13 at 14:55
  • @Matt : thanks. The Excel example was not to point out a language but that the choice he is to make does not only imply a language and a way to do all at once, there are specificities to each platform, user habits, constraints about functionalities, screen size, API's, etc. that cannot be just merged in a big melting pot. And if it is possible it will be making some sacrifices to the lower common denominator. – moxy Mar 02 '13 at 15:05
3

Mono is a cross platform, open source .NET framework that will work for this.

user12205
  • 2,684
  • 1
  • 20
  • 40
MusiGenesis
  • 74,184
  • 40
  • 190
  • 334
1

You can create a web-application, which are machine, architecture independent.

Or you need to create two different platform application for Windows and one for Mac OSX, both sharing same database stored in some server or any kind of machine.

Anoop Vaidya
  • 46,283
  • 15
  • 111
  • 140
1

As MusiGenesis suggested, Mono would probably do the trick for you. You will still need Xamarin's MonoTouch for iOS support but if you separate your business-logic to a separate assembly that could easily be reused.

You might also want to consider making two different projects for the desktop editions, one with MonoMac and one with WPF (for Windows) to give your users a better experience but still with the actual logic in a separate assembly that you can reuse for all platforms.

Karl-Johan Sjögren
  • 16,544
  • 7
  • 59
  • 68
  • the problem is Xamarin is not opensource, for creating complex application its STARTER version will not work i suppose. – ramya Mar 02 '13 at 14:09
  • I see now that they have updated their pricing, and not for the better. The starter-edition might be a bit weak but it sounds like this is a fairly large project and then $299 can't really be such a bother? – Karl-Johan Sjögren Mar 02 '13 at 21:59