tags:

views:

139

answers:

4

I develop code using .net, and sometimes using ruby. My friend wants me to develop a small time keeping application for use on a mac. Basically a windows form application. I want to develop on my pc (it has all my tools) - I know the writing/deployment process for windows. Is it different if I want to make it work on a mac? Does the CLR work with OS X? Do I need to install something special on my buddy's laptop?

+4  A: 

You'll want to look into the Mono project -- this is a CLR compatibility layer for multiple platforms (including Windows). Be aware that Mono is not a fully compatible system, and you'll need to check that your application is Mono ready. This can be done by using the MoMA tool (also provided by Mono).

scwagner
So this involves installing mono pc (for development purposes) and on the mac for deployment purposes ... or would it simply require creating an executable (or the mac equivalent) and delivering that?
Daniel
Mono is an IL-interpreter replacement. In my experience, you can copy the binary files output from Visual Studio (.exe, .dll, etc.) onto a Mono box on a Mac and just run "mono MyProgram.exe" and It Just Works.
scwagner
Well, provided your application doesn't use some unimplemented stuff from Mono atleast.
Matthew Scharley
Hence why you should test it using MoMA. It's very good at finding not implemented bits from Mono.
scwagner
+1  A: 

I don't know what would be harder, getting Mono setup and running on all the computers you need the program, or learning Cocoa / Objective-C for true native mac development.

If you end up wanting to do some serious, native Apple Programming, you should learn Objective-C and the Cocoa API. You could start here: http://www.cocoadevcentral.com/d/learn_cocoa/

Mac users are very particular and will notice if an application looks, or acts differently then what they expect, so if you plan on marketing said software, it could be a headache.

micmoo
While you're correct for developing a "native" application to run on OS X for a commercial product, I don't think that "learn Cocoa / Objective-C" is within the expected scope of answers for "friend wants me to develop a small time keeping application".
scwagner
True... but why wouldn't you want to know as many languages are you can :p
micmoo
+1  A: 

Is a web application an option?

Its platform independent and you could utilize your .net experience.

Luke Lowrey
+1  A: 

Mono is certainly a viable option. Since you also develop in ruby, you may want to consider the Ruby-Cocoa bridge. This is supported by Apple and will allow you to develop in ruby, but still make calls to the Cocoa framework to take care of more system/GUI-specific tasks.

Reed Olsen