7
votes

I'm curious, out of all the possible C# .NET inversion of control solutions out there, if anyone has ever tried Dynamo IoC (http://www.dynamoioc.com/) and whether or not it works with projects designed for MonoTouch and MonoDroid?

While I am not explicitly using either MonoTouch or MonoDroid, I am using Unity 3D (http://www.unity3d.com). I expect that if an IoC framework (e.g. Dynamo) works on MonoTouch and MonoDroid it will more likely than not also satisfy my needs with Unity 3D.

NOTE: I've been doing research on inversion of control containers, and their compatibility with MonoTouch, MonoDroid, etc. for a couple of days now; this questions does not come from laziness, but a lack of details I've found when doing my research specifically regarding Dynamo IOC and its compatibility with MonoTouch, MonoDroid, etc.

3
I've been researching IOC containers for about 2 days now, but have not found very much on Dynamo IOC beyond benchmarks citing its speed. I may have missed something when doing my searches, but I don't feel my question is inappropriate. - Sean Quinn
You're missing the point. I'm not saying your'e being lazy. I'm saying asking open ended question seeking comparisons of different products on the market is totally off-topic for this site. - Kirk Woll
I see your point, I've removed the sidebar and rephrased the question to be more pointed specifically asking only about Dnamo IoC and its compatibility with MonoTouch and MonoDroid. Thank you for the comment; I think that this question now more aptly meets the spirit of StackOverflow's question and answer system. - Sean Quinn

3 Answers

5
votes

I can't answer about DynamoIoC, but I have used TinyIoC and OpenNetCF IoC on MonoTouch and MonoDroid without problems.

Within MvvmCross I currently make use of a very limited set of the OpenNetCF functionality and that works across wp7, ios, droid and winrt.

1
votes

Dynamo does not appear to be usable with C# projects targeting iOS platforms, via MonoTouch or Unity 3D.

I was able to find this on Mono's limitations, courtesy of a few other questions and answers here on StackOverflow; after a more thorough review of Dynamo IoC's code and a better understanding of what the System.Linq.Expressions namespace entails, it looks like Dynamo is able to achieve most of its speed through the use of the dynamic expressions offered by Linq. It is my understanding that code using System.Linq.Expressions falls under the same category as dynamic code generation, thus rendering Dynamo IoC unusable for MonoTouch (and by proxy Unity 3D projects targeting iOS).

0
votes

I'm just embarking on a MonoTouch project and I'm using Munq.IocContainer. Munq is a small DI framework that I've used previously in an ASP.NET MVC project and a Windows Mobile 6 application. Although it doesn't have the bells and whistles of the larger frameworks it is fast and easy to configure.

Please ignore above. I started using Munq which was working very well in the simulator but failed horribly when I tried to deploy to an actual iPhone. This is because Munq JIT's some code which AFAIK is not ok in MonoTouch on iOS. I've gone back to Funq from which Munq is derived. Munq was actually intended for use in ASP.NET MVC3 so reverting to Funq also means there are no references to system.web that need to be removed.