.NET Embedding 0.1 release notes
This is the first public release of Embeddinator-4000. It supports the Objective-C language on both macOS or iOS. More languages and platforms will be added in future releases.
Requirements
- macOS 10.12 (Sierra) or later;
- Xcode 8.3.2 or later;
- Mono 5.0 or later;
Optional
- Visual Studio for Mac
- Xamarin.iOS 10.11 preview Available from the alpha channel of Visual Studio for Mac
What's New
Everything!
The Embeddinator-4000 (e4k) can create a native library (or framework) from a managed assembly. This is done by embedding the mono runtime along with generated glue code to call the public API exposed by the assembly.
Some of the supported .NET features are:
- Reference and value types;
- Interfaces, exposed as Objective-C protocols;
- Enums to
NS_ENUM
orNS_OPTIONS
; - Methods and properties;
- Extensions methods, exposed as Objective-C categories;
- Operators overloads;
- Default values (on methods and constructors);
- Special support for
System.String
asNSString
,byte[]
asNSData
, other arrays toNSArray
...
When using with Xamarin.iOS it is possible to create applications that consume managed NSObject-subclasses, e.g. you can use a custom, managed UIView
from an Objective-C application.
Known Issues
- This release only generates Objective-C code;
- This release only targets macOS and iOS, the latter requires Xamarin.iOS (10.11+) to be installed;
- Some C# features (e.g. generics) are not yet supported;
- In some cases the generator produces duplicate symbols, which won't compile;
A list of issues, including bugs, enhancements and ideas, is being tracked on github.