开发者

guidelines for developing a small Mac OSX project

I'm a .NET developer with some questions about a small Mac project coming up.

We are going to be creating a small program for Mac OSX. The software will need to have a simple UI (1 screen) and will need to consume a WCF web service.

  • Should we code on our Windows boxes or on Mac machine开发者_开发技巧s? We have a couple Mac Minis, but we mostly do Windows development.

  • What IDE/dev environment should we use? (Eclipse, Xcode, etc.)

  • How does Mac software deployment generally work?

...

  • No one has mentioned Java/Eclipse. Isn't that an option?


Here are two options:

  1. Write in Objective-C, using Xcode on Macs
  2. Write in C#, using Mono on Windows or on a Mac with SharpDevelop

The advantage of #1 is the resulting app will be much easier to deploy to others, but you might have trouble consuming the WCF service. It depends on what exact interface you are exposing and what the types of the parameters are.

The advantage of #2 is that you can use your C# skills. I don't know the state of WCF in Mono, and the GUI may not look native.

If you go with #1, the main issue will be using Objective-C. Since you are targeting the Mac, make sure you enable the Garbage Collector, or else you will have to also learn memory-management. If you use Xcode 4, it's similar in spirit to Visual Studio, although the details are different. For a simple project, following the tutorials will probably be enough -- I suspect the hard part will be interacting with WCF. To make your life easier, make the interface to the service extremely simple (simple parameter types and returns).


Your question is overly broad. You have two options:

  1. When in Rome...: download Xcode, look at example apps, read Apple's documentation, find some tutorials, and learn Mac app development the usual way.

  2. The Devil You Know...: look into stuff like the Mono project that will let you write a Mac app in C#, so you can use your existing libraries and don't have to learn Objective-C.

Which is better depends on your needs. If you just want to get a small app done and don't have a lot of time/money, I'd go with #2. If you're concerned about quality (compatibility libraries always have their quirks), I'd go with #1. My gut says #2 is better for you.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜