On Windows? Pretty unusual activity.
I can tell you how I do it. I never tried iPod, but develop for Mac OS X. I install Mono on Mac OS X. See
http://en.wikipedia.org/wiki/Mono_%28software%29[
^].
Then I develop .NET applications on Windows, using standard libraries and some of non-standard ones, such as
System.Windows.Forms
which have very good compatibility with Mono.
Such applications work on Mono without recompilation.
Unlike Linux, such applications for Mono do not behave like quite good citizens on Mono. So, some Mac-specific development may be required. There is a very depending binding library providing binding between Mono, Objective-C (
http://en.wikipedia.org/wiki/Objective-C[
^]) and Mac OS X library, notably Cocoa API (
http://en.wikipedia.org/wiki/Cocoa_%28API%29[
^]). This binding library is called Monobjc, see
http://en.wikipedia.org/wiki/Monobjc[
^]. It allowed for pure Max OS X development, but such application won't run on Windows even under Mono, well, quite naturally. However, they can be developed and compiled on Windows, in somewhat blind-folded mode.
Also, applications developed with Monobjc cannot run under Mono directly. Executable file should be run as a command-line parameter to the Monobjc
runtime system, which works like a Max OS X application.
Reportedly, iPad development is also supported, I never tried.
One important aspect of Max OS X programming is creation of
application bundle,
http://en.wikipedia.org/wiki/Application_bundle#Mac_OS_X_application_bundles[
^]. This is the way to run application on click at the item using Finder or a compatible file manager; see
http://en.wikipedia.org/wiki/Finder_%28software%29[
^].
I must say, this activity is pretty much exotic, and information on Internet is very limited, which makes development a certain problem for not very experienced developers. At the same time, it's quite doable.
—SA