There are no reviews yet. Be the first to send feedback to the community and the maintainers!
MonoMac - .NET/C# Bindings to the Cocoa API DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED DEPRECATED WARNING: MonoMac is not actively maintained, and it has design mistakes that prevent it from properly managing memory. You should use the open source Xamarin.Mac instead which is actively maintained, and has none of these design problems. https://github.com/xamarin/xamarin-macios. OLD NOTES: MonoMac provides a new set of C# bindings to the Cocoa APIs on OSX and can be used to create applications that use the native OSX APIs using Mono and C#. The code is licensed under the terms of the open source Apache License version 2 or the MIT X11 license, at your own choice. Building: To build MonoMac, you need to get two packages: * maccore * monomac The first contains the code that is shared between MonoMac and MonoTouch. MonoMac contains the actual bindings that are OSX-specific. You MUST check out both modules side by side currently. To build monomac type "make" which will create the monomac.dll MonoMac requires Mono v2.6.4 or higher, you can find a RC for 2.6.4 at http://mono.ximian.com/monobuild/preview/download-preview/ Using: Download the MonoDevelop IDE from www.monodevelop.com for MacOS X, it comes with both MonoMac templates and project types that will help you get started. More Information: http://www.mono-project.com/MonoMac Discussion: The discussion of the development of MonoMac is taking place on irc.gnome.org in channel #monodev and on the [email protected] mailing list: http://lists.ximian.com/mailman/listinfo/mono-osx Pending Tasks We are looking for contributors to these areas: * API binding for the rest of the Frameworks * We need samples to be written * We need tutorials to be written (like the ones we did for MonoTouch) * We need to port existing Cocoa samples to C#: * To exercise the binding * To serve as reference for new developers * To identify missing frameworks * To prioritize bindings Binding APIs Information on how to bind new APIs can be found on the MonoTouch web site: http://monotouch.net/Documentation/Binding_New_Objective-C_Types Goals We had two main requirements: the binding should just work and the code should be MIT X11 licensed. For the binding to just work, we turned to the .NET Framework Design Guidelines book as it captures years of design decisions, programming idioms and advise that would help C# and .NET developers. By following the Design Guidelines we: Avoid surprises Blend with other C# and .NET libraries Reduce the room for errors Increase developer joy Minimizes time for the developer to be productive Every bit of existing .NET knowledge translates Luckily for us, .NET was designed from the start to be an interoperability framework. A framework that supports the most advanced requirements to make multiple runtimes and frameworks to communicate seamlessly with each other. We used these features to create our bindings. The above goals turned into the following technical requirements: * Developers should be able to consume Cocoa APIs as C# APIs * Allow developers to subclass Objective-C classes * Subclass should work with C# standard constructs * Derive from an existing class * Call base constructor * Overriding methods should be done with C#'s override system * Do not expose developers to Objective-C selectors * Provide a mechanism to call arbitrary Objective-C libraries * Make common Objective-C tasks easy, and hard Objective-C tasks possible * Expose Objective-C properties as C# properties * Expose a strongly typed API, for example instead of exposing the generic-container NSArray or individual NSObjects. This means that developers get a few benefits: * MonoDevelop can flag errors as you write the code * MonoDevelop can present documentation popups on types, methods, properties and parameters as you type them. * Minimize runtime errors by catching invalid casts at compile time. * Encourage in-IDE API exploration without rebuilding, and without having to look up the types in the documentation. * Turn int and uint parameters that should have been enums as C# enumerations and C# enumerations with [Flags] attributes * Expose the basic Foundation as C# native types: * NSString becomes string * NSArray becomes strongly-typed array * Events and notifications, give users a choice between: * Support the Objective-C delegate pattern: * Strongly typed version is the default * Weakly typed version for advance use cases * C# event system * Class libraries should be MIT X11 licensed, like the rest of Mono's class libraries. * Expose C# delegates (lambdas, anonymous methods and System.Delegate) to Objective-C APIs as "blocks". * Curated APIs: there is no point in binding every UNIX or CoreFoundation C API available, as those are not very useful in practice. Bind only those that are required to build applications or get access to mandatory functionality.
mono
Mono open source ECMA CLI, C# and .NET implementation.SkiaSharp
SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.CppSharp
Tools and libraries to glue C/C++ APIs to high-level languagesmonodevelop
MonoDevelop is a cross platform .NET IDExwt
A cross-platform UI toolkit for creating desktop applications with .NET and Monotaglib-sharp
Library for reading and writing metadata in media filesEmbeddinator-4000
Tools to turn .NET libraries into native libraries that can be consumed on Android, iOS, Mac, Linux and other platforms.VulkanSharp
Open source .NET binding for the Vulkan APICocosSharp
CocosSharp is a C# implementation of the Cocos2D and Cocos3D APIs that runs on any platform where MonoGame runs.monotouch-bindings
A collection of third party bindings for MonoTouchgtk-sharp
Gtk# is a Mono/.NET binding to the cross platform Gtk+ GUI toolkit and the foundation of most GUI apps built with Monot4
T4 text templating enginesharpen
Sharpen is an Eclipse plugin created by db4o that allows you to convert your Java project into c#website
Mono's web site.libgdiplus
C-based implementation of the GDI+ APIngit
Automated jgit port to c#LineEditor
LineEditor is an interactive line editor for Command Line applications in .NETSkiaSharp.Extended
SkiaSharp is a cross-platform, comprehensive 2D graphics API for all .NET platforms. And, here is where you will find all sorts of extras that you can use with it.cxxi
C++ interop frameworkxsp
Mono's ASP.NET hosting server. This module includes an Apache Module, a FastCGI module that can be hooked to other web servers as well as a standalone server used for testing (similar to Microsoft's Cassini)roslyn
Roslyn Compiler - Tracks Mono Patchesdocker
Docker images, for the Docker container systemmono-tools
The mono-tools package contains a series of extra tools for Mono users.mono-addins
Mono.Addins is a generic framework for creating extensible applications, and for creating add-ins which extend those applications.moon
Moonlight, an open source implementation of Silverlight for Unix systemsmono-curses
Mono/.NET bindings to the Unix Curses as well as GUI framework for creating text applications with Curseswinforms
Winforms samples for use with Mono's implementation of System.Windows.Formsaspnetwebstack
Mono branch of Microsoft's ASP.NET WebStacksdb
A command line client for the Mono soft debugger.opentk
OpenTK is a set of bindings to OpenGL, OpenCL and OpenAL. This is not the main repository, just a temporary import to allow Mono developers to make changes to this module. Please do not contribute changes here, contribute them to the upstream maintainers at http://www.opentk.comcocos-sharp-samples
CocosSharp samplesikvm-fork
A fork of the original cvs based IKVM repositorymono-basic
Visual Basic Compiler and RuntimeTsToCSharp
Emit C# strongly typed interface code from TypeScript definition files.mono-upnp
UPNP binding for Mono/.NETdebugger-libs
Debugger librariesmd-website
MonoDevelop WebSitedbus-sharp
DBus Sharpapi-doc-tools
.NET Reference API Toolchainwebkit-sharp
C#/CLI bindings to WebKit/Gtk+sysdrawing-coregraphics
System.Drawing implementation using CoreGraphics.maccore
MacCore contains the shared code between MonoTouch and MonoMacMono.Zeroconf
Cross platform ZeroConf client that works with the underlying ZeroConf stack on the platform for Mono and .NETmwf-designer
Windows.Forms designer for Mono. Work in progressheap-shot
cecil-old
ECMA CIL Manipulation Librarymono.posix
POSIX/Unix interface for Mono, .NET and .NET Core. Provides functionality for managed code to access POSIX/Unix features not accessible via the BCL. This repository supersedes the older code in https://github.com/mono/monotao
The Tao OpenGL, OpenAL, GLU, FreeGlut bindings for .NET and Monomonodroid-bindings
Mono for Android Jar Bindingsentityframework
monkeywrench
Continuous build system used by Mono and Moonlight.linux-packaging-mono
Packaging metadata for mono-project.com packagesreference-assemblies
Binary reference assembliesmod_mono
Apache module to host the XSP ASP.NET hostjurassic
Mono port of the Jurassic JS Engine (http://jurassic.codeplex.com/).mono-tls
New TLS implementation for Mono.bockbuild
Build & packaging system, responsible for the Mono project distribution for Macxamarin-gtk-theme
linux-packaging-msbuild
SkiaSharp-API-docs
SkiaSharp and HarfBuzzSharp API reference docsuia2atk
Accessibility bridge between UIA and Gnome's ATKcsvorbis
mono-webbrowser
Browser backends for Mono.WebBrowsermoma
Mono Migration Analyzer. A tool to scan compiled assemblies and determine their compatibility with Mono.olive
Olive is an incubation module used to host new Mono code under development based on Microsoft's APIs. Olive code eventually graduates and is moved into the Mono distribution.monocov
Mono Code Coverage profiler moduledebugger
Mono Hard Debuggermonodevelop-flatpak
gtk-sharp-ribbon
guiunit
A unit test runner which interoperates with any Gui main looprepo
This is the mono repo - we'll put everything heremonologue
Monologue is Mono's blog aggregation software for the Mono communitygir-sharp
C# binding generator for GIR formatlb
Lame Blog, the lamest blog engine in the worldWindowsAPICodePack
WindowsAPICodePack as imported from MonoDevelopgluezilla
roslyn-binaries
Pre-built binaries of Roslynstetic
The Gtk# GUI designerpty-sharp
API for managing Unix pseudo-terminals from managed codemono-microthreads
Microthreads implementation built on top of Mono.Tasklets librarygnome-keyring-sharp
Bindings to Gnome's KeyRing APIsnuget-binary
Temporary repo to hold nuget binaries for use with MonoDevelopwinforms-tools
Open source Windows.Forms tools.old-code
Old mono code that has not been developed in yearsgio-sharp
Bindings to Glib's libgiognome-sharp
Bindings to the core Gnome APIscrimson
mooncodecs
open source codecs that can be plugged into Moonlight or Silverlight applicationsrocks
Mono.Rocks is a library of utility functionsrelease
(Deprecated, no longer used) Tools to manage Mono's releases (scripts, web pages, build files)WebAssembly.JSInterop
WebAssembly JSInterop librarylinux-packaging-fsharp
Packaging metadata for mono-project.com packagesnuget
Nugetmonohotdraw
Vector drawing programdbus-sharp-glib
Managed dbusMono.Simd.Math
Math library that uses Mono's accelerated Mono.Simd libraryeglib
heap-buddy
boringssl
Custom version of Boring SSL used by Monogoogle-sharp
Love Open Source and this site? Check out how you can help us