7

Tengo curiosidad, de todas las posibles soluciones de inversión de control C# .NET que existen, si alguien alguna vez ha intentado Dynamo IoC (http://www.dynamoioc.com/) y si funciona o no con proyectos diseñados para MonoTouch y MonoDroid?¿Dynamo IoC funciona con MonoTouch y MonoDroid?

Si bien no estoy usando explícitamente MonoTouch o MonoDroid, estoy usando Unity 3D (http://www.unity3d.com). Espero que si un marco IoC (por ejemplo, Dynamo) funciona en MonoTouch y MonoDroid, lo más probable es que también satisfaga mis necesidades con Unity 3D.

NOTA: He estado investigando sobre la inversión de contenedores de control y su compatibilidad con MonoTouch, MonoDroid, etc. durante un par de días; esta pregunta no proviene de la pereza, sino de la falta de detalles que he encontrado al hacer mi investigación específicamente sobre Dynamo IOC y su compatibilidad con MonoTouch, MonoDroid, etc.

+0

[El sitio de Stackoverflow no es su asistente de investigación personal] (http://meta.stackexchange.com/a/128553/102937) –

+0

He estado investigando contenedores de COI durante aproximadamente 2 días, pero no he encontrado mucho en Dynamo IOC más allá de los puntos de referencia citando su velocidad. Puede que me haya perdido algo al hacer mis búsquedas, pero no creo que mi pregunta sea inapropiada. –

+0

Te estás perdiendo el punto. No digo que seas flojo. Estoy diciendo que hacer preguntas abiertas para buscar comparaciones de diferentes productos en el mercado es totalmente fuera de tema en este sitio. –

Respuesta

5

No puedo responder sobre DynamoIoC, pero tengo utilizaron TinyIoC y OpenNetCF IoC en MonoTouch y MonoDroid sin problemas.

Dentro MvvmCross Actualmente hago uso de un conjunto muy limitado de la funcionalidad OpenNETCF y que funciona a través de WP7, ios, androide y WinRT.

+0

He estado mirando a TinyIoC y definitivamente está en mi radar. No había escuchado sobre OpenNetCF.IoC antes; Echaré un vistazo a eso también. Gracias por las recomendaciones! –

+0

Si ayuda, el equipo de OpenNetCF son codificadores de Windows Mobile/WinCE de largo plazo: ¡su código está muy bien establecido! Incluso solía ser un cliente que paga hace unos años. – Stuart

+0

También almacenamos dogfood en gran medida la biblioteca OpenNETCF IoC en aplicaciones que se ejecutan en CF, escritorio de Windows, WinPhone, MonoDroid y MonoTouch. Esas aplicaciones se mejoran y amplían continuamente, por lo que IoC termina siendo un proyecto activo. – ctacke

1

Dynamo no parece ser utilizable con proyectos C# dirigidos a plataformas iOS, a través de MonoTouch o Unity 3D.

Pude encontrar this en las limitaciones de Mono, cortesía de algunas otras preguntas y respuestas aquí en StackOverflow; después de una revisión más exhaustiva de Dynamo IoC's code y una mejor comprensión de lo que conlleva el espacio de nombres System.Linq.Expressions, parece que Dynamo puede lograr la mayor parte de su velocidad mediante el uso de las expresiones dinámicas que ofrece Linq. Entiendo que el código que usa System.Linq.Expressions pertenece a la misma categoría que la generación de código dinámico, lo que hace que Dynamo IoC sea inutilizable para MonoTouch (y por Proxy Unity 3D proyectos dirigidos a iOS).

+0

Solo para comprobar: ¿realmente ha intentado ejecutar esto en un dispositivo real con MonoTouch? Si no, entonces, por favor no empuje esto, hay una respuesta y un hecho aceptado. – Stuart

0

Me estoy embarcando en un proyecto MonoTouch y estoy usando Munq.IocContainer. Munq es un marco DI pequeño que he usado anteriormente en un proyecto ASP.NET MVC y una aplicación Windows Mobile 6. Aunque no tiene las características de los marcos más grandes, es rápido y fácil de configurar.

Por favor, ignore arriba. Comencé a usar Munq, que funcionaba muy bien en el simulador pero fallaba terriblemente cuando traté de implementarlo en un iPhone real. Esto se debe a que Munq JIT tiene algún código que AFAIK no está bien en MonoTouch para iOS. Volví al Funq del cual se deriva Munq. Munq fue diseñado para ser utilizado en ASP.NET MVC3, por lo que volver a Funq también significa que no hay referencias a system.web que deba eliminarse.