J2ME has always been the standard in cross phone applications. Most java app are truly cross phone. The only phone we could write code in .NET was the Windows mobile or Pocket PC. A company called AppForge came up with a solution to run .NET code. But in 2007 the company was acquired by Oracle and shut down.
Now Red Five Labs have come up with a .NET based solution called Net60 which runs windows mobile based .NET code. Currently .NET 2.0 framework is supported and they plan to add support for compact framework 3.5. Now what made me exited is their licensing policy. With AppForge it was not possible to develop when the trial expired. With Net60 that is not not case. You can get a IMEI bound license for your non commercial application. Now, isn’t that wonderful? That means I can write my own apps to run on symbian and use them. That also paves way for .NET based open source apps. Lets face it, Nokia holds 41% market share for smartphone applications, which is a very large number (source).
I recently got myself a Nokia E63 phone, which is actually an economic version of Nokia E71 (only diff is 2Mpx cam instead of 5 Mpx cam and no GPS and plastic body instead of steel). It has the full qwerty keyboard. I spend a lot of time reading and writing mails as communication has become a large part of my role, so the full keyboard is really helpful. I was looking for a good way to write C# code and run it on my phone ( E71- Symbian OS S60 3rd edition feature pack 1). After a few tries it worked very nicely. So here is what you need to do in order run .NET code on your Symbian phone.
Aquiring the SDK
1. Get the Net60 SDK from here. It is about 13MB. You would have to provide your phone IMEI no and email. That is the phone where the application would run. If you want a version where it will run on different phones, then you would have to get a commercial license.
2. Check your email to get the free non commercial express license from Red Five Labs. ( I’d strongly suggest you see the video tutorial at their site, which is the next set of steps about)
Writing the Application
1. Create a compact framework 2.0 application (not CF 3.5)
2. After you are done with the application add a Genesis Setup Project to the solution
3. Point to the executable, fill up the necessary fields
4. Add Net60.sisx as dependency, also add the license that you received from RF Labs.
5. Compile, install the output on your cell phone and run
Debug version vs Release Version
The debug version comes with logger and a runner tool. If you are developing, I would suggest that you use the debug version. Making a build and deploying each time you change the code can be pretty annoying. There is a NET60 Launcher tool that can run a .NET executable. So instead of building installation package and deploying each time you can just use that tool to run the exe. Make sure you copy the executable under c:\DATA\RedFiveLabs\Apps\ folder so that it shows on you NET60 Launcher.
There are some additional API provided by RF Labs to control various features in Symbian OS. These are distributed over a few assemblies. These assemblies are
RedFiveLabs.Mobile.Messaging ( for SMS etc)
RedFiveLabs.Mobile.OpenGL ( oh yes open GL support)
RedFiveLabs.Mobile.Pim ( for contacts)
Have fun .Netting on Symbian