FAQ

From $1
Table of contents

What is MonoTouch?

MonoTouch is a software development kit for Mac OS X that lets you use .NET programming languages to create native applications for Apple iPhone and Apple iPod Touch devices. MonoTouch allows developers to use the .NET framework and more efficient programming languages, such as C#, to create applications that run on the iPhone and can take advantage of native iPhone APIs. Developers can test MonoTouch applications on the iPhone simulator, as well as physical hardware, and can distribute MonoTouch applications on Apple's App Store.

What is included in the MonoTouch SDK?

MonoTouch is delivered as a static compiler that turns .NET executables and libraries into native applications. There is no JIT or interpreter shipped with your application, only native code. In addition to the core Base Class Libraries that are part of Mono, MonoTouch also ships with bindings for various iPhone APIs to allow developers to create native iPhone applications with Mono.

Do I need a Mac to use MonoTouch?

MonoTouch requires a Mac and Apple's iPhone SDK to test on the emulator and deploy on the device. And you will need to be an Apple iPhone developer to deploy on the device.

How is MonoTouch Licensed?

MonoTouch is a commercial product based on the open source Mono project and is licensed on a per-developer basis.

With which version of .NET is MonoTouch compatible?

MonoTouch is based on a hybrid .NET 2.0 and Silverlight 2 API profile. If you want to use existing C# code, you will need to compile it from scratch using our compiler and tools to make sure that the proper assemblies are referenced.

What .NET features does MonoTouch support?

MonoTouch supports garbage collection, multi-threading, and many features of .NET 3.5, including C# 3.0 and LINQ, with some exceptions due to the security system in the device. See Limitations for more information about the limitations of MonoTouch.

The following .NET assemblies are part of MonoTouch 1.0:

  • mscorlib.dll
  • System.dll
  • System.Core.dll
  • System.Json.dll
  • System.Runtime.Serialization.dll
  • System.ServiceModel.dll
  • System.ServiceModel.Web.dll
  • System.Web.Services.dll
  • System.Xml.dll
  • System.Xml.Linq.dll

In addition, the following Mono assemblies are part of MonoTouch 1.0:

  • Mono.Security.dll
  • Mono.Data.Sqlite.dll
  • Mono.Data.Tds.dll
  • monotouch.dll 

And the following third party assemblies are part of MonoTouch 1.0:

  • OpenTK.dll

Can I use standard desktop Mono assemblies or .NET assemblies with MonoTouch?

You can not reuse the 1.0 or 2.0 desktop/server assemblies from Mono or .NET with MonoTouch.  

To reuse existing .NET code with MonoTouch, you must recompile your libraries with MonoTouch's compiler and base assemblies.

In particular, replacing the assemblies from MonoTouch with assemblies from the desktop Mono edition will not work since many APIs are missing from the MonoTouch lightweight Mono profile.    

APIs in .NET are bound to the core mscorlib library.    On the desktop and server 1.0, 1.1 and 2.0 exists (version numbers: 1.0.3300.0, 1.0.5000.0 and 2.0.0.0 respectively), from the API exposed in mscorlib the rest of the assemblies flow.

In MonoTouch instead of using the server/desktop assemblies we picked the Silverlight foundation since this foundation is lighter: it has fewer dependencies, brings less code to the device and drop a number of features that do not apply to the iPhone (configuring the runtime through System.Configuration for example and .config files that end-users can edit).

Does MonoTouch support running Silverlight /Moonlight applications?

No. MonoTouch does not currently include Moonlight or Silverlight functionality.

Does MonoTouch support Windows.Forms applications?

No. MonoTouch does not currently include Windows.Forms functionality and is not planned.

Does MonoTouch support Visual Basic?

Currently MonoTouch does not support Visual Basic.   
 
We are looking at adding support for Visual Basic on upcoming versions of MonoTouch.
 
Technically, what needs to happen is the following: we need to provide the Visual Basic helper library (part of Microsoft.VisualBasic.dll) and compile it to work with the MonoTouch mscorlib.dll instead of the standard Mono 2.0 mscorlib.dll
 
With the above it will be possible to use Microsoft's Visual Studio to compile VB code that will run on MonoTouch.    But we want to support Mono's own Visual Basic compiler, but that will also require the compiler to run using the MonoTouch mscorlib.dll.   This is not difficult, but requires time to get done and integrate into our release process.
 
Finally, we will need to add support for our SDK to support the XIB automatic property generation for outlets and to add support to MonoDevelop for Visual Basic/iPhone solutions.
 
At this point there is no ETA on when the above will happen.

What is the difference between MonoTouch Professional Edition and MonoTouch Enterprise Edition?

A MonoTouch Professional Edition (previously known as Personal Edition) license is non-transferable, entitles the owner to one year of MonoTouch updates, and allows distribution of applications built with MonoTouch on Apple's App Store.

A MonoTouch Enterprise Edition license is owned by a legal entity for use by one developer at any given time, entitles the owner to one year of MonoTouch updates, and allows enterprise deployments of MonoTouch applications, as well as the distribution of applications built with MonoTouch on Apple's App Store.


Retrieved from "http://monotouch.net/FAQ"

Tag page

Files (0)

 
Page last modified 21:11, 9 Aug 2010 by Miguel