Mac Utilities for Civ3

I subscribe to MacTech which has been running a series on .net programming on Mac OS. I rather lost interest when I found that it hasn't been integrated into integrated into the Apple tool chain, so it's all a bit clunky.
 
AlanH said:
I subscribe to MacTech which has been running a series on .net programming on Mac OS. I rather lost interest when I found that it hasn't been integrated into integrated into the Apple tool chain, so it's all a bit clunky.
Not completely sure what you mean by that... Is it that its an add-on (a la Java Virtual machine) rather than integrated into the OS?

Reason I ask is that I am learning C#. In theory, this is a platform-independent language, so (again) in theory, if I am careful it may be possible to make a Mac version.

However, as this would require a the need to NOT use any windows forms, or even any .net libraries, then it might be simpler to port using the .Net framework, which should make conversion to C# and porting to the Mac quite a lot easier - The only thing that would need to be avoided is calls the the windows API.

It does look like there is some movement to get the .net framework onto mac, and some C# compilers as well (rotor, mono). In short - might be possible.
 
I wouldn't be concerned that it is an add-in like Java. That's how it runs on Windows as well. Java is a similar structure, with a virtual machine that adapts the platform agnostic system calls to the specific machine it's running on. My problem with it concerns whether it produces a Mac-like application or not, and whether there is a set of development tools that works well on a Mac to achieve efficient code development and debugging. If it only produces something that runs in a terminal window, like a Windows DOS prompt window, then no thanks. Java Swing makes a passable job of providing a Mac-like GUI, but I've no idea whether anything like that exists for .NET on the Mac.

The articles I read talk about Rotor, and were actually published about a year ago, so may be out of date. Rotor is described as a research focused Shared Source Common Language Infrastructure (SSCLI).

It does have a C# compiler and a JScript.NET compiler, a VES. It has a Platform Adaptation Layer (PAL) that maps the .NET system calls either to Win32 or Unix APIs, and the MacOS build uses the Unix PAL.

According to the articles it doesn't come with ADO.NET, ASP.NET or Windows Forms, and uses Tcl/Tk to provide a GUI implementation, mainly as a demonstration vehicle, I think. So anything created using it would be very Unix-y and not very MacOS in style. I think that's the point at which I lost interest, really :)

Looking around now, I see that Mono is favourite, but it still looks like a steep curve just to get it installed and working as a development system. I think I'd rather do a native Cocoa translation of a tool.
 
<shrug> Well, I haven't researched this very deeply at all, and my understanding of all the cross-platform issues are fairly basic anyway.

As I understand it, C# as a language is supposed to be platform independent. On the assumption that there is a suitable Mac compiler, then at least the engine could be translated painlessly. It then comes down to the GUI. If its just a style issue, then is it not just a personal preference? (by the way - I will admit that the "old" style of VB forms are ugly compared to the "new" style windows forms. (Note that windows.form, in source code, are actually just XML, so making a Mac-style might not have been too much of a challenge to the clever bods out there).
 
C# is similar in concept to Java. Java looks acceptable on a Mac because Apple have produced conversions for all the user interface elements - buttons, popups, window widgets. I've no idea what Tcl/Tk looks like, but if it's dependent on X-Windows it'll probably be pretty awful.

If Windows forms are described using XML then it should be possible to interpret that to display Mac window elements. But how do the controls feed back the user's clicks and typing and menu selections? There has to be an event model to handle interaction, like the stuff in VB to handle button events and so on.
 
Top Bottom