Apr 16

The next meeting of the Boston/New England Windows Phone User and Developer Groups will occur on Wednesday, April 21st starting at 6:30pmat the Microsoft offices in Waltham, MA (201 Jones Road, 6th Floor).

Map picture

There are lots of exciting things going on around Microsoft and phones, and this month’s agenda reflects it! -

Introducing Your Next of KIN: Microsoft’s New Feature Phone Platform
If you haven’t already heard, Microsoft has announced a new feature phone platform in KIN. In this presentation, we will discuss what KIN is (and isn’t) and talk about the first two KIN devices announced – the KIN 1 and KIN 2.

Introduction to Windows Phone 7 Development
The Windows Phone 7 platform introduces an exciting new platform for smartphones – not only for users, but developers as well. In this presentation/demonstration, you will learn about the basics of Windows Phone 7 application development using Visual Studio 2010, Silverlight and Expression Blend.

I look forward to seeing you all there!

Dec 11

I thought I would pass along a “good news/bad news” experience I recently had with regards to Windows Mobile 6.5, the .NET Compact Framework 3.5 and ActiveSync. Hopefully, it might serve to help someone in avoiding some coding and testing frustration.

I have been working on a project that requires responding to new incoming messages on Windows Mobile 6.5 devices. Fortunately, the State and Notification Broker API (“SNAPI”) made this simple enough. Now, my C# code needed to play a sound if certain conditions were met. Simple enough – the System.Media.SoundPlayer class in the .NET CF 3.5 would do the trick. Once the code was written, it was time to test.

The first test went according to plan. Use an emulator, deploy in debugging mode, set a breakpoint to ensure that I was hitting the correct branches in application logic and run with it. Sure enough, everything performed as expected. The next test was essentially the same, with the exception being connecting an actual Windows Mobile 6.5 device for testing. Again, there were no problems.

For the next test, I decided to remove the breakpoint in Visual Studio. I run the code and… no sound. My intellectual response - “WTF?!?!?” ;-)

I’ll keep the story brief here, omitting all the second-guessing and testing that went on up until my finally figuring out the root cause of the problem. The issue, as it turns out, is that -

  • SNAPI and the .NET Compact Framework 3.5 work very well. By “well”, I mean “fast”, especially when running on the latest hardware with Windows Mobile 6.5.
  • ActiveSync runs… well… about as fast as it always has on Windows Mobile, despite OS and hardware improvements.

Keeping in mind that ActiveSync and my application run on different threads, here is what I was able to determine:

  • ActiveSync begins a synchronization operation. As part of this sync, a new email arrives. Based upon device settings, ActiveSync prepares to play a sound and grabs resources.
  • At around the same time, my application receives the notification from the broker about a change in the unread email count changing. My logic has to do quite a bit of processing, but still managed to get to the point of playing a sound while ActiveSync still had a hold on resources. Result – my sound wouldn’t play.

“Fine”, I thought, “This is strictly a timing issue.” When I was in debugging mode, the stepping through the code and the latency associated with running in debug mode gave enough time for ActiveSync to complete. As a result, I decided to add code to pause my code to give time for ActiveSync to release resources. Here is where the real surprise came into play.

I spent quite a bit of time tinkering with the amount of time my application had to sleep in order to be able to play my sound. It took upwards of ten seconds for ActiveSync to release the resource I needed. When you consider the fact that ActiveSync had a “head start” on my code (AS was the cause of the SNAPI event firing, mind you), the amount of time from start to finish for AS was, well, A LOT. Ten seconds?!? Needless to say, I was very surprised and disappointed. This wouldn’t have surprised me a few years back, when slower hardware and slower network speeds could be the culprits. But today? With faster hardware and networks?

I guess the moral of this story is… If you are coding for Windows Mobile with a dependency on ActiveSync, NEVER assume performance. Code for the worst case and hope to be pleasantly surprised.

Nov 15

It’s time once again for our monthly Boston/New England Windows Mobile User/Developer Group meeting! This month, our meeting will be held on Wednesday, November 18th starting at 6:30PM at the Microsoft offices in Waltham, MA (201 Jones Road, 6th floor).

Map picture

This month’s topic -

It’s Off To The Market (place)
Coinciding with the launch of Windows Mobile 6.5, Microsoft has also launched the Windows Marketplace for Mobile. This “one-stop shop” for Windows Phones allows you to browse, purchase and download applications for your device – right from your device!

In this presentation, we will look at the Windows Marketplace for Mobile from both the end-user and developer perspective. We will talk about how to get started, what to consider and what the Windows Marketplace brings to the table.

Aug 18

In case you haven’t heard, the first of the WinMoDevCamps is occurring tomorrow (8/19/2009) in Seattle. Just what is WinMoDevCamp, you ask?. Well, here is the answer, direct from the WinMoDevCamp web site -

WMDC004-background

“WinMoDevCamp is a series of upcoming not-for-profit gatherings to develop applications for the upcoming release of the Microsoft Windows Mobile 6.5 O/S. The event is currently being planned in 7 cities around the world. Our first Windows Mobile Developer Camp event has been scheduled for August 19 in Redmond, Washington at the Microsoft Campus. You can register now on the form below. Dates will soon be announced for the following additional cities: Austin, London, New York, San Francisco, Singapore, and Toronto. We will also encourage other mobile developers to host their own events on the same dates. This website will have facilities for local events to organize as well.”

The last sentence in this paragraph is the reason for this post. While a New York City event is planned, there is nothing set for Boston. This begs to ask the question -

If a WinMoDevCamp event was planned for the Boston area, would you attend?

If there is the interest in this event, we here at BostonPocketPC.com are willing to try and make it happen. However, no one likes having a party where no one shows up ;-) The best way to express your interest – send an email to winmodevcamp at bostonpocketpc dot com. Please don’t delay – the sooner we can gauge interest, the faster we can get the ball rolling!

Jul 13

Sorry for the late notice, all. Sumer is supposed to be the traditional “slow time”, but a number of scheduling conflicts have led to need to cancel this month’s Boston/New England Windows Mobile User and Developer Group meeting. I apologize for any inconvenience this may cause.

We will be picking up with next month’s meeting on August 19th. Stay tuned for more information…

Jun 20

I really enjoyed delivering my presentation on “Windows Mobile Widgets 101” this past Wednesday at the Boston/New England Windows Mobile User/Developer Group. The goal was to show just how simple it was to get started with widget development. With the Windows Mobile 6.5 Developer Toolkit now available for download, now is as good a time as ever to get ahead of the game.

I have put my presentation deck (as PDF) and samples together into a single ZIP file for download over at BostonPocketPC.com. Enjoy!