Entity Framework support in MonoTouch and Mono for Android - xamarin.ios

Now that the upcoming Mono version includes EF4, are the imminent plans to include it in MonoTouch and Mono for Android?

For Android, the chances that we include it are very high, as Android can run the entire CLR. On iOS the situation is more complicated, as there are various limitations imposed by the iOS kernel that prevent some forms of generics code from running.
Additionally, all of the EF work runs on top of Mono 2.11, while both mobile products are based on a much older codebase, so any upgrade will have to wait until both products are rebased on top of the upcoming Mono 2.12, and that wont happen until December or so.

Related

Android armeabi devices with API level 15+

I'm developing an app for API level 15+ that has some jni code and i'm wondering if there are devices with armeabi ABI (ARMv5) and API level 15+
Can i include only armeabi-v7a and x86 libraries and skip the old armeabi?
Android itself doesn't support ARM versions below ARMv7 from Android 4.4 (API level 19). Since Android 4.0 (API level 15), it doesn't support ARMv5/ARMv6 by default but can be modified to build for those platforms (see https://groups.google.com/d/msg/android-building/Q_gU1zb6DLc/Bq5QryioQ_kJ), and there are custom builds that run on ARMv6. I'm not entirely sure if there are any official, certified compatible devices that run such a combination (Android 4.0-4.3) though - there should at least not be any such certified devices running Android 4.4, since the compatibility definition document strictly requires ARMv7 from that version.
So in practice you should be pretty safe to skip it, but you might exclude some fringe third party ROMs by doing that.
See https://stackoverflow.com/a/28926267/3115956 for a similar answer to a similar question.
Can i include only armeabi-v7a and x86 libraries and skip the old armeabi?
No, iff app is to be used on old cpu based architecture devices.
And Yes, if we are sure that no customer have older than ARM7 cpu based architecture device.
In our case we purchased the Chilkat licence for one year and they happily supported with ARMEABI .SO files. Hence it is upto the use case. It is affordable for and organisation.
Also wants to share the contact point for Chilkat if anyone wants to contact them for help. Email them at -> support#chilkatsoft.com
Thank you and Happy coding!!!

Async/Await in portable class library targeting Windows Store, iOS and Droid

Developping an MvvmCross application targeting Android and iOS (Xamarin/Mono) and Windows Store (because it's so easy/fast to debug compared to iOS/Android).
The Core of the app is PCL based.
Is it possible to use Async/Await in the Core library?
Xamarin mono supports Async/Await, and Windows Store supports it.
However, when selecting only Net4.5, Windows Store, Mono Android and MonoTouch as the PCL targets, SL4 and WP7.5 get automatically selected and Async/Await is not availlable anymore.
The latest I have is: TPL on PCL of mvvmcross
But PCL support from Xamarin has officially launched in the last week - so the latest I have is be out of date. Miguel has promised a blog post on the current status when he returns from Build.
Also, I have seen user comments like "I'm using asyncbridge and profile47 with heavily usage of async inside PCL. Works perfect on iOs and Android, with MvvmCross events it looks like a magic" from http://forums.xamarin.com/discussion/comment/18872/#Comment_18872 - would love to see this more fully blogged, explained, documented by those who have it working.

Monotouch 5.0 and iOS 4.3 compatibility

I have got an application developed with Monotouch 4.0.7. This app is running on iPads with iOS 4.3.
Now, I want to migrate to the latest Monotouch version is 5.0. Will I be able to deploy my app on iPads with iOS 4.3? Or Monotouch 5.0 only for iOS 5.0?
Yes, it is possible to develop for iOS 4.3 (or even earlier iOS versions) with MonoTouch 5.0.
To set the minimum iOS version your app needs, go to the project's options, and in the iPhone Application page set Deployment Target to the minimum version.
Have in mind that MonoTouch will not tell you if you use iOS 5.0 API in your app. You can add iOS 5.0 features to your app, but you must not try to use those features on a lower version (here you can see how to accomplish this).
You can upgrade to Monotouch 5.x without any problems. In Monodevelop, change your SDK to 5.x
Just make sure your deployment target remains 4.3, if you still want to target that platform.
You will have to pay attention to not calling any methods that don't exist in 4.3.
If you want to have different/extended behavior on iOS 5 devices, you can check the OS version and use a different code branch.
Another small thing to be prepared for: iOS5 behaves differently in some situations. For instance if you are having hierarchical UIViewControllers, iOS5 will automatically call all UI events like ViewWillAppear(), even if you don't use the new UIViewControllery hierachy API.
What I want to say: test your app thoroughly on both iOS versions.

System.IO.MemoryMappedFiles on MonoTouch?

I wanted to convert a small test application from Windows .NET 4 to MonoTouch but I am missing System.IO.MemoryMappedFiles.
Then I tried it with a plain Mono console app and the namespace isn't there either.
I tried Mono 2.10 in combination with MonoDevelop 2.4.
Is it supposed to be there or not? I'm kind of confused, as .NET4 compatibility was announced with Mono, as far as I know.
Mono 2.10 has some support for memory mapped file. However it is not 100% complete (and Windows-specific things like security are not likely to be ever included) so YMMV.
You can browser what's available from the GIT repository:
https://github.com/mono/mono/tree/mono-2-10/mcs/class/System.Core/System.IO.MemoryMappedFiles
Since this is a .NET 4.0 feature you'll need to use the 'dmcs' compiler to get your code to compile (and also reference System.Core.dll where the types resides).
As for MonoTouch it provides a subset of Mono (originally based on the 2.1 profile from Silverlight and extra, even some 4.0, features). Currently (for MonoTouch 4.x) this does not include any type from System.IO.MemoryMappedFile.* namespace. Future versions will offer more .NET 4.0 features (if they are available from iOS).

XCode 4 - Base SDK == Latest iOS (iOS 4.3)

To continue in my post-XCode 4 upgrade confusion, i came across this....
My Build Settings has Base SDK as iOS 4.3.
Now back in XCode 3.x days I remember 2 things:
The Base SDK was always set to iOS 4.0.
The target device was set to iphone 3.0 (to ensure greatest iphone audience).
What consequence is there for this Base SDK?
I mean, if SDK 4.0 provides support for features that only iOS4/iPhone4) provides, then why are these two separate build settings?
You can choose iOS 4.0 as your base SDK, but as long as you do not use APi's that are 4.0 and up your code should run on 3.x unless you used apis that were only in 3.2 and so on =)
Always a good thing to check the availability of methods when you look in the class reference.
I recommend using 4.x stuff.. because the people that use 3.0 are not worth supporting ( Only the really old devices are still running that, iPhone 1 -- most users have upgraded by now to an iPhone 3Gs or 4 ), the features you get in 4.x, including GCD are awesome.

Resources