Hace un tiempo encontré en GitHub una extensión para Visual Studio que si bien no permite ejecutar el emulador de iOS en Visual Studio (básicamente por lo integrado que está Cocoa en OSX), sí que nos permite desarrollar para MonoTouch usando como principal IDE VisualStudio, incluso permite compilar las librerías. Básicamente lo que hace es añadir las referencias de las librerías de MonoTouch por nosotros (podríamos hacerlo manualmente, pero francamente, es un coñazo).
Bien, la extensión en cuestión es esta: https://github.com/ste8/VSMonoTouch. En el enlace tiene las instrucciones para su instalación e información de la misma. Igualmente, aquí hay un enlace con un ejecutable.

 

Imagen

Instrucciones:

Copiar los binarios de MonoTouch desde tu Mac hacia el entorno de Visual Studio. Es decir, lo ficheros de /Developer/MonoTouch/usr/lib/mono/2.1/ de tu Mac a C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv1.0 tu PC. Esto es así porque debemos indicarle a Visual Studio que ahí están los archivos (para que autocomplete, vamos).

Cuando creamos un nuevo proyecto en Visual Studio, este por defecto nos añade una referencia “invisible” a mscorlib.dll, para el correcto funcionamiento de la extensión, debemos sustituir esa referencia por la que utiliza MonoTouch, es decir copiar dicha dll de la solución de MonoTouch y decirle a VisualStudio que debe utiliza la dll de MonoTouch en su lugar.
Según la web del proyecto, con abrir el .csproj y añadir estas líneas debería valer:

<ItemGroup>

<Reference Include="mscorlib" />

<Reference Include="monotouch" />

<Reference Include="System" />

<Reference Include="System.Xml" />

<Reference Include="System.Core" />

</ItemGroup>

A mí particularmente no me funcionó porque me daba un error de duplicidad de referencias (deben ser las instrucciones para VS2010. Lo solucioné incluyendo en el .csproj esta sentencia:

<PropertyGroup Condition=" ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ "> <NoStdLib>True</NoStdLib>
</PropertyGroup>

Por último, dado que MonoDevelop aún no soporta proyectos de VS2012, puede que al abrir el proyecto con VS2012 este cambie el .sln y se vuelva incompatible con MonoDevelop. Es tan simple de solucionar como añadir al inicio del proyecto:

Microsoft Visual Studio Solution File, Format Version 11.00
#Visual Studio 2010

Como veis no es demasiado complicado, llevo un mes desarrollando así y os aseguro que vale la pena: la agilidad de VS, resharper, hacer UnitTest con tu runner favorito (el de resharper en mi caso), mantener proyectos con target para WP7&8, W8, Android e iOS desde el mismo IDE con código que sólo cambie la vista… ¿Cómo? Sí, pero de eso ya hablamos otro día.