Mono Mobile Profile

When Mono for iOS was launched, we designed a new lightweight API profile.  This lightweight profile was designed to deliver all of the major features that developers needed and remove things that did not make sense on iOS or caused binaries to bloat too much on an environment where everything would have to be included.

This mobile profile was based on Silverlight, because Silverlight also had those requirements: small downloads and a good set of features.    The major difference for a developer between the Silverlight profile and the standard desktop profile is that System.Configuration and Microsoft.Win32.Registry have been eradicated.

We took the Silverlight API and extended it to add things that Silverlight had dropped.  We called this the Mobile profile.

This mobile profile is the foundation for Mono on iOS, Android and other mobile efforts.

We are currently in the process of turning this mobile profile into a general purpose solution.   Instead of being based on the old Silverlight 4/Silverlight 5 profile, we are doing this based on the .NET 4.5 API, and removing the same bits we removed in the past: System.Configuration and the Registry.

Mono 3.0.3 is out!

We have released an update to Mono, version 3.0.3, it is mostly a bug fix release, but contains a few interesting goodies as well:

  • DTrace: Mono garbage collectors now feature multiple dtrace probes for users on MacOS and Solaris.
  • Many stability improvements and performance work on Mono’s Async support.

Garbage Collector

Sgen now has a concurrent GC that can significantly reduce max pauses. This is an experimental feature that is been continuously developed. Click here for more details.

Bug Fixes

#8401#9247#8903#9087#9225#9186#9118#9137#9133#9116#1446,#2246#6918#8904#8927#2907#8829#8786

Ongoing work on Mono

As a reminder, we have adopted a new development strategy for Mono.   We are no longer doing multi-year development efforts that we land all at once.   Instead we are doing incremental fixes and improvements in our master branch, and all experimental code is now done on branches that are only merged when the work is completed and stable

For more details see the Change in Policies post.