Why Compact Framework?

Most readers who’ve been following some of my past posts will know that my head is currently buried deep in the Compact Framework, and allowed to poke my head up on occassions to get back to the web stuff.

Some days I wonder around the web looking at .NET CF related articles (it’s all part of the learning process) and I generally get the impression that it’s a great area to develop in, but how do you convince everyone else?

The mobile phone is almost everywhere. It’s quite rare to walk into many places and not see someone with one. I remember while I was still at University that some people said they used more than one phone on a regular basis (they different phones on different networks). And I think as more cheaper MS Windows Mobile based devices come onto the market, the more of those people will be jumping onto that bandwagon. My guess is that the Windows Mobile based devices is a growing market, and is growing at an interesting rate. I don’t have figures on it, but it just seems to be. And there are definately a lot of new devices being released much more often.

Anyway, I came across this blog post by Mike Zintel (.NET CF Group Manager) tonight. First reaction? “Holy s*. They have .NET CF on an XBox now?”

Ok, I think more specifically it is something called the XNA Framework, which allows you to write games in managed code and run it on an XBox 360 and on Windows. Like SQL Server 2005, they are going to put a version of the CLR (Common Language Runtime) onto the XBox 360. (They have a March CTP available of the XNA Build. Seems like it is an “add on” for VS 2005.)

And suddenly you have this beast where .NET developers around the world who would like to write games in their own free time (if any) can do so easily. And who knows, maybe Microsoft will open up XBox Live a bit and allow these developers to sell their game(s). Yeah, I doubt the games will be to the level of the professional studio stuff. But it could potentially be something quite interesting. There’s definately a lot of .NET developers out there developing for various different platforms (Windows Mobile [Compact Framework .NET], Windows [.NET Framework] and for the Web [ASP.NET]).

Oh, and did anyone hear about that news on WPF/E (WPF/E == Windows Presentation Framework Everywhere. WPF was formerly known as Avalon, and to put it in even simpler terms, it allows you to build UIs using XML and then developers can handle the expected behaviour/interaction experiences in Managed code)? Some more specifics, and demos of it were shown recently at Mix 06. Sounds really promising. At Mix 06 they also said that Atlas has a go live license now.

Thinking In Mobile

One of the interesting issues with my transition from being a Web Developer (ASP.NET) to being a Windows Mobile Developer (CF.NET) is the issue of memory management.

We all know that the little devices don’t have nearly as much memory as our more basic computers sitting around the office.  So naturally, the memory management side of things will be slightly different.

Awhile ago I was able to consistantly produce an OutOfMemoryException on a form that retrieved about 30+ rows of data from a web service, and then insert it into a Sql Mobile 2005 DB.

Recently I came across a “Memory Problems FAQ” (written by CF.NET MVP Daniel Moth) which is dedicated to memory issues with regards to the Compact Framework. It’s a good read for those moving from the full Framework, to the reduced compact Framework. Oh, and if you’re going to develop for the Compact Framework, it’s always interesting to read about how the nuts and bolts work. Or in this case, how the CF.NET Garbage Collector works.

While i’m still Thinking in Mobile, I honestly believe the Microsoft Windows Mobile powered devices (Pocket PC Mobile Ed and Smart Phone) are getting better with each generation of both the OS, and the devices. And i’m sure it will keep on getting better.

And i’m sure they’ll get cheaper too. Right now there seems to be a new Windows Mobile powered device mentioned on E ngadget every month or so.  So my take on it would be, the more devices on the market, the more the prices will be driven downwards.

I think what we need to see more of though, is 3G capable devices. Especially in the Australian market, given that all four major carriers offer 3G services.

That, and the increased speed and bandwidth available through 3G services over GSM networks.

I know there are a few Windows Mobile devices that are capable of running on a 3G network, such as the i-mate JasJar.

There will come a day when the Telcos, either individually, or collectively just “turn off” the GSM network. Heck, the 3 network (Hutchison & Telecom) have stated that they plan to migrate people off their Orange CDMA network and onto the 3 service. There is not much point for Telcos to run more than one network if the other networks they run add up to a small percentage of their revenue.

I think, if you’re not developing for .NET CF devices today, you should seriously think about it. Mobile phones are everywhere today, and this is a boat you may want to jump aboard. Even if it’s just hacking together something for yourself and a few friends who also own Win Mobile devices. Hehe 😛

A few interesting Microsoft Windows Mobile Technical Articles

Just found a few Windows Mobile Technical articles in the Microsoft download center.

You can download them from here.

The articles touch on a few different areas including .NET CF apps using VS2005, introduction to the new Windows Mobile 5 Managed APIs. Mappoint Location Server, developing multithreaded apps using .NET CF 2. As well as a few others that touch on different areas of mobile development.

Oh, and do check out Rory’s TinyThings videos on Windows Mobile 5.0 and .NET CF 2.0.

My .NET CF 2.0 development has been going well, but I’m finding a lot of articles that are all about WM5/CF2. And not as much WM 2003/CF2. But that’s probably the nature of things at the moment. Everyone wants to target the latest and greatest. I’m not complaining though, at least I still get to utilise CF 2.0 in VS2005 (as opposed to CF 1.0/VS2003).

Guess that’s the reality of working life, as opposed to doing “theoretical work” (ie: stuff done in uni) where you can just target the latest and greatest, and as long as you can get it working in the emulator, it’s all fine. The other thing to remember is that a lot of the Telcos in Australia aren’t selling any WM5 devices (well, it’s not on our list for the plans we’ve selected).

Sparkle rocks

I’ve downloaded and installed the Microsoft Expression Interactive Designer January CTP (formerly known as Sparkle) and it is looking quite impressive.

Have a read of this blog post on Expression Interactive Designer by Manuel Clement (who works on the team that is responsible for the product).

Oh, and the Expression Graphic Designer January CTP (formerly known as Acrylic) has also been released. Haven’t downloaded this one yet, but I will when I have some more time. I’ve tried a previous version of this though.

Look forward to playing around with Sparkle a bit in the next few days (Thursday is a public holiday. So that’s perfect!).

Chris Tacke: Smart Device Framework 2.0 documentation released

Chris Tacke has posted a link to OpenNetCF’s Smart Device Framework 2.0 documentation.

Chris also mentions in the same blog post that they are “extremely close to a beta release of SDF 2.0”.

Cool, that is very good news for all those developing for Mobile Devices using CF.NET 2.0 in VS 2005.

I’m definately looking forward to it, I’m currently using a few features that come with SDF 1.0 alongside CF.NET 2.0 running on Win Mobile 2003.

Going from the web development world (and a bit of desktop dev) for quite awhile (almost 2 years at the current job) to the Mobile device development world is very very different. (Not everything is different, it just feels different). Or maybe it’s because i’m coupling the move alongside the move to a newer IDE.

It poses fresh challenges for me though, some things I can bring through with me going from targetting web browsers, to little mobile devices include my programming language of choice (C#) and a reduced .NET Framework (and extended where appropriate) amongst other things.


On a side note, what’s with the 40+ degree heat in Melbourne today? It’s just way too hot. And made me feel sorry for the tennis players playing tennis in that heat!

Atlas Class Browser

Wilco Bauwer has posted an Atlas Class Browser which will show the public properties/events/methods of each Atlas type.

It includes the Web, Web.Net, Web.Data, Web.Services, Web.UI, Web.UI.Data namespaces.

If you prefer, however to explore the actual Atlas JavaScript files, but prefer a more “spaced out” version, check out Ralph Sommerer’s post. He’s got some funky “InScript Code Listing Enhancer” going on.

Looking at one of Ralph’s links (AtlasCore), you can click on the InScript link to see another representation of the classes/global variables/functions for each JavaScript file.

This is all very handy as there is still very little documentation aside from the Hands on Labs, and the QuickStart documentation.

I’d also recommend reading Wilco’s blog posts on Atlas.

Exchange Server 2003 SP2 released

Just noticed that the Service Pack 2 for exchange has been released. Cool!

What’s got my attention the most about this service pack is the enhancements for mobile devices. Saw a demo if it at MEDC (Mobile & Embedded Developers Conference) Melbourne.

The feature which allows you to do a remote “wipe” of the device is a good feature I think. Imagine your phone is stolen with all of your Smart Phone/Pocket PC Phone device is stolen with sensitive data (phone numbers, etc…) still on it. The “remote wipe” feature will allow the Exchange server admin to do a remote wipe of the device which basically wipes everything off it.

More Exchange 2003 features can be read here on the Exchange blog.