I am looking for the assembly, classes and function reference for Mono that I can use with Unity 2.6.1. I have read that Unity uses Mono V1.2.5 but the only documentation available at Mono site is the newest version, which is above 2.4 by now. A user kindly responded at the forum that I can use as guide all docs from .net 2.0, but already tried some assemblies that show an error when running, like System.Windows.Forms that are on .Net 2.0 but not on Unity's Mono. Also System.Data pops an error. Of course .net is not mono. Instead of guessing, it would be better to know what assemblies are available by having a formal reference. Also some functions will be available to free unity and other only to pro. It would be just perfect to know any limitations of each.
Is there any list like that? If not I suggest to Unity team to document it. Having the power of Mono is better if you have the reference.
asked Dec 17 '09 at 05:00 AM
Let's start with the easiest part: The only difference between Unity and Unity Pro regarding the Mono implementation is that Unity doesn't support native access. That part is documented in Plugins - Pro only feature
Now regarding a Mono 1.2.5 API documentation archive ... seems like that's not so easy to find.
One thing that should help: Most classes / methods have version "tags", like: Since: .NET 2.0. Anything that say "Since .NET 2.0" should work. The official .NET documentation is much better on that end IMHO than the Mono documentation.
Unfortunately, as you already found out - "Since .NET 2.0" only will work "in general": System.Windows.Forms certainly is not supported because Unity simply doesn't support forms. With System.Data, it's very unpleasant to not have the documentation of 1.2.5 available anymore because that's very "Mono-specific" (and I think it was more Mono-specific back in 1.2.5 than it is now with 2.6). There are some forum postings about accessing different databases from Unity, e.g. in MS SQL connection
One thing I also know is that in Mono 1.2.5, some of the APIs were implemented only partially or with bugs, for example: PerformanceCounters from the System.Diagnostics namespace (I found that out during a conversation with Miguel de Icaza after "it just didn't work" ... it's probably also somewhere in the release notes if you have a lot of time for looking).
So, I guess it about trial and error, and voting up Scripting: Upgrade Mono to 2.4 / 2.6 - having Mono 1.2.5 instead of Mono 2.6 becomes more painful as time goes by (but I'm pretty sure they have Mono 2.6 pretty high on their list - see also Aras' comment to that item.
answered Dec 17 '09 at 09:26 AM