Red Five Labs tillhandahåller sedan tidigare möjligheten att köra programvara för Dotnet Framework på Symbianmobiler. Och Microsoft stöder sitt Windows CE. Därmed kan program skrivna i språket C# (C sharp) eller något annat av de språk som stöds av Dotnet Framework, återanvändas på dessa tre plattformar.
Dock ej utan ändringar vad det gäller Iphone – för att smälta in på plattformen måste C#-programmet bland annat utnyttja programbibliotek för Iphones unika gränssnitt.
Tanken med Dotnet Framework, som ursprungligen var en Microsoftteknik – är densamma som med Java, att överbrygga inkompatibiliteten mellan olika processorer med hjälp av virtuella maskiner – Javamaskiner respektive Dotnet Runtimes – som gör att du kan skriva ett program, kompilera det, och sedan köra det varsomhelst där det finns en virtuell maskin.
Microsoft har konstruerat Dotnet Runtimes för sina egna operativsystem, medan öppen källkodsprojeket Mono stöder Mac OS X och Linux.
Ett fullt stöd på Iphone (som använder en begränsad version av OS X) skulle bryta vissa av Apples tekniska regler. Därför har Monotouch fuskat och istället utvecklat en vanlig kompilator för C# och andra Dotnetspråk till Iphone. För att kunna köras på Iphone måste C#-programmet alltså vara kompilerat med Monotouchverktygen och inget annat.
Chefsprogrammerare för Monotouch är Miguel de Icaza, en av de stora namnen inom öppen källkod och grundare av bland annat projektet Mono, som Monotouch utnyttjar.
– Det här betyder att Mono inte längre är ett renodlat öppen källkodsprojekt, säger Miguel de Icaza till tidningen The Register.
– I Linux känns det som att vi alla spelar i samma lag och där är allting med Mono öppen källkod. Men Iphone känns mer som en kommersiell plattform med kommersiella verktyg. För oss är det här ett sätt att tjäna pengar utan att behöva känna någon skuld för att vi licensierar ut verktyg kommersiellt.
Javakompilatorer för olika plattformar har existerat länge, men det här är enligt Miguel de Icaza första gången någon gör en Dotnet-kompilator som genererar maskinkod för en fysisk processor.
–Vi hade från början inte planerat att göra den här produkten, den kom mest till på efterfrågan från användarna, säger Miguel de Icaza.
Att det inte finns något Dotnet Runtime för Iphone betyder att en del av Dotnets dynamiska funktioner inte stöds.
Version 1.0 av Monotoch släpptes igår och stöder Iphone Software 3.1. Version 2.0 kommer bland annat att innehålla ett bättre stöd för databasspråket Linq, som är en del av Dotnet Framework.