Red Five Labs have announced a Community Technology Preview of their .NET Compact Framework for Symbian OS. Aimed at developers it allows mobile applications targeting (written using) Microsoft's .NET Compact Framework 1.0 to run unchanged on Symbian OS. The preview version is for S60 2nd Edition, but other versions will be supported in later releases. More information is available on the Red Five Labs website and blog.
Read on in the full article.
Wow this may turn out to be an important turning point in getting acceptance of Symbian OS within the enterprise environment. Certainly from my point of view I wouldn't want to develop in C++ with all the extra messing about that it entails when the rest of the company was using C# or VB.NET.
We'll have to see just how easy it is to build something in .Net and deploy on Symbian. Particularly how easy it is to build for multiple OS's. I suppose the main difference will be the UI's between windows mobile, UIQ and S60.
But anyway this is great news and I look forward to testing a S60 3rd edition version when it comes out.
I am a little confused: I don't see the essential difference between what Red Five Labs is doing and a product called AppForge Crossfire:
http://www.appforge.com/developers/index.html
which is on the market for a long time and didn't have that much influence, as far as I know.
I am somewhat unclear about the 'advantages' indicated: perhaps someone can enlighten me ?
E.g. you dont have to use symbian specifc bits if you really dont want to, OS9 even allows try/throw/catch.
Unfortunately its a fact of life that if you allocate something this can fail due to out of memory. This is far more likely to occur on a device with only a small amount of Ram.
Whether you choose to use cleanupStack, TRAP, randomly add the upper case character 'L' to method names etc to handle this or any other mechanism, such as try/throw etc the problem needs to be handled. The complexity is nothing to do with what system 'keywords' or conventions you choose to use, its the fact that you have to do something about handling it at all. Lots of people would appear to believe that OpenC or VB or .NET, or Java or whatever magically gets rid of the problem - unfortunately it doesn't.
Sure Java 'automatically' handles cleanup of allocated things, however almost no apps actually deal with the OutOfMemory Exception, they either crash or exit - as so much is hidden most people conveniently forget about the problem.
The built in Symbian infrastructure gives you get a fighting chance of being able to roll back, recover and continue without crashing/exiting. Given its right in your face' its hard to ignore and forces developers to bother to do something about the issue. Maybe the .NET CF can handle some things automatically, I dont know enough about it at this time, however no one has magically managed to cause the amount of Ram on any phone I have ever owned to simply expand as/when it needed some to run a new app, until that point the real world problem of running out of ram exists.
My understanding of this is that .NET CF is very different to the CrossFire which allows you to write in VB.
.NET CF has a number of advantages outlined on the Red Five Labs site.
bbj - I'm inclined to agree with you on the advantages to an extent. However there is something to be said for a common code base and this is especially good for people who have experience using CF. I imagine it is especially relevant in enterprises who often need to develop bespoke applications quickly across multiple mobile platforms.
Developers I've talked to indicate the .NET CF development is quicker and easier, especially for existing Windows developers, but it is limited in what it can do and the overhead it brings. [Note I'm not an expert here]. Thus applications that interface with a corporate database or similar are ideally suited to this sort of thing.
I understand very well the search of programmers on mobile devices for a chance to survive in the jungle of all those environments which even seem to become more numerous by the day now (iPhone, Google phone, next J2ME edition, you name it), and the search for "common code bases".
But I really don't think that programming for something very complex (a Symbian CF variant) on top of something very complex (Symbian itself) is easier than programming directly for the complex thing, at the end of the day, with all things considered. The additional layer just introduces more bugs, more chances for incompatibilities, more documentation problems, and so on.
This all will eat badly into the time that is saved by not having to learn Symbian and having a common codebase!
My personal stance on all this, at the moment: If I want to program for mobile devices now, seriously, not just hacking together some database frontends, I have to bite into the sour apples, one for every platform, again and again. If that's too hard for me, maybe I should play somewhere else 😊
.net compact framework isn't going to give you performance that's anywhere near native code either, so it's not direct competition for Symbian C++.