Mac OS X Development with Mono
From The Oxygene Language Wiki
This is a Platform topic
Feel free to add your notes to this topic below.
Delphi Prism provides a variety of tools and technologies to help developers build applications for the Mac OS X platform that go beyond the basic class library support that is provided by Mono itself.
Tools and Technologies
- Mac OS X Project Templates
- MacPack MSBuild Task and MacPack Project Options
- NIB File Code Generators
Articles
- Creating Monobjc Applications for the Mac
- Implementing Key-Value Coding and Cocoa Bindings
-
Creating Cocoa# Applications for the Macdeprecated
Cross Platform Development Concerns
In general, cleanly written .NET/Mono executables can be compiled with Delphi prism on any operating system and against either the .NET or Mono frameworks, and will run fine on all supported platforms. Mono does a good job of abstracting away the platform differences in the common APIs provided by the framework.
However, some care has to be taken to not introduce platform specific dependencies. This includes:
- Hardcoded assumptions about the path separator ("/" on Linux and Mac OS X vs. "\" on Windows). Try to use the functions provided by System.IO.Path to work with paths, rather than using "/" and "\" literals
- Native imports (P/Invoke) and DllImportAttribute attributes linking in Windows-Only (or Unix-only) APIs
- Use of the Microsoft.Win32.Registry namespace
- Use of Windows only APIs, like WPF
- Use of standard shell folders such as %APPDATA% (which Mono simulates in ~/.config) vs. use of appropriate system folders on Mac OS X and Linux.
See Also
Area: Oxygene Platforms
Platform Glossary — Keywords — Types — FAQ — How To