Editor's note: After the release of Windows Phone 7, the mobile development industry, except for the iPhone and Android
It will be clear that more and more developers begin
7. Platform transfer. This article, written by Zhao Yu, a famous developer for infoq, details the Modern. Net DDD recently held
At the Conference, Chris hard, a famous developer, demonstrated how to develop Windows Phone-Oriented Systems Based on. NET/C #.
7. Applications on the iPhone and Android platforms, as well as precautions.
First, Chris lists the utilities and frameworks used on the three platforms and other peripheral environments:
|
Windows Phone 7 |
IPhone (monotouch) |
Android (monodroid Preview) |
Operating System |
Windows |
Mac |
Cross-platform |
Development Tools |
Visual Studio 2010 |
Monodevelop |
Vs 2010/monodevelop |
Design Tools |
Expression blend 4 |
Interface Builder |
XML file/droiddraw |
Development Framework |
Silverlight for WP |
Superset of Silverlight 3 |
Superset of Silverlight 3 |
Community information |
Excellent |
Better |
Shang Zao |
IPhone vs Windows Phone 7 vs android
Monotouch is a mono-based iPhone launched by Novell.
The OS application development kit can publish applications to the Apple App Store. Mono is A. Net runtime environment developed based on The ECMA standard, using JIT (Just-in-
Time) Compilation Method to execute the Il code, but because the iPhone
OS device restrictions, monotouch uses the AOT (ahead-of-time) Compilation Method to directly deploy native code to the iPhone
OS devices (iPhone, iPhone
4, iPad. Monotouch also provides a linker that links some of the static links actually used in the SDK and program code to the application, thus reducing
Volume. Applications developed using monotouch can be stored on the iPhone
The operating system runs independently. This is because monotouch puts a runtime inside the application. According to Chris, this will increase the application volume by about 6 MB.
Using monotouch,. Net/C # programmers can use existing knowledge for development and use reflection, generics, LINQ, lambda, and other advanced. net
/C # features. Native API-oriented bindings are stored in the monotouch namespace in monotouch. dll, and are used with cocoatouch (that is, for iPhone
Native objective-C framework developed by OS. Monotouch does not expose cocoa directly during binding.
Touch function, but to a certain extent, rewrite its API to a more inclined form of. Net programmers. For example, the frame attribute of uiview is
System. Drawing. rectanglef type, not Cocoa
The original cgrect in touch. For some types such as nsarray, monotouch also converts them to strongly typed arrays in a proper place. In the debugging party
Monotouch uses the soft-debugger of Mono and supports debugging on simulators, real machines, and even through WiFi.
Monodroid is an application development kit for Android systems. It is basically the same as monotouch. It is currently in the preview and release stage, and only a few early-subscribed users get the SDK.
According to Chris, a considerable amount of code can be reused with monotouch and monodroid, including existing open-source projects, such as JSON. net,
And xnatouch. Xnatouch is a monotouch-based xNa Framework implementation that simplifies Xbox and Windows Phone
7 game porting to iPhone OS. However, binary files cannot be shared during reuse, but code must be re-compiled for different platforms.
In the UI section, the three platforms have their own native solutions. Besides Windows Phone
In addition, iPhone and Android use the C # binding of the native API provided by monotouch and monodroid for development. For example, monotouch
During the development of the line UI, the architecture of the iPhone OS standard application is used, including the MVC driver mode. Developers can use the interface
Builder edits the XIB file. monotouch will automatically generate C # code in a local Class Based on the XIB content. All outlet, action, and other elements will be in the code.
.
Chris also mentioned other areas where specific code must be written for the platform. For example, in the file storage, monotouch and monodroid can write data directly like a local path, in Windows Phone 7, independent storage must be used:
- Void savelocal (string data)
- {
- # If (monotouch | monodroid)
- File. writealltext (_ localpath, data );
- # Elif windows_phone
- Using (VAR appstorage =
- Isolatedstoragefile. getuserstoreforapplication ())
- {
- Var file = appstorage. openfile (_ localpath, filemode. Create );
- Fileextension. writealltext (file, data );
- }
- # Endif
- }
-
Similarly, when you use WebClient to obtain data, you can directly call the downloadfile Method on monotouch and monodroid to download the file. In Windows Phone 7, you need to use the openread method to process the binary data stream.