Sunday, December 30, 2007

In-house training available in the US

If your company is based in the US and you have a group of developers who would benefit from an in-house training, send me an email at for a detailed proposal and pricing information.

Download the latest course catalog

With year 2007 coming to an end very soon, are you looking forward to a more exciting year 2008? I sure am, and 2008 is going to be a very exciting year for developers! With the new Visual Studio 2008, you now have a wealth of new features to make your development life easier. But before you can make use of all these new cool features, you have to spend time getting up to speed with them. And if you are looking for a easy way to jumpstart your developer career in 2008, download my latest course catalog. There are four exciting courses launching in the first quarter - Windows Mobile, Visual Studio 2008, and ASP.NET 3.5 Web development.

Have a Happy and Fruitful New Year!

"An investment in knowledge pays the best interest"
Benjamin Franklin

Friday, December 21, 2007

Playing with Media in Silverlight 1.0

Waiting for Silverlight to deliver on it's promise of delivering rich media experiences? Take your first steps with this tutorial on how to embed a Windows media file in your Silverlight application, control its playback, and create simple effects on the video.

Wednesday, December 19, 2007

Tip: How to know the OS version of your Windows Mobile device

You can use the OSVersion property from the Environment class to obtain the OS version number of your Windows Mobile device, like this:

Dim OS As OperatingSystem
OS = Environment.OSVersion

Tip: How to programmatically check the orientation of your Windows Mobile device

In the past, I always compare the value of Me.Width and Me.Height (within a Form window) to determine the orientation mode of my Windows Mobile device. Besides this method, you can also use the ScreenOrientation property available in the SystemSettings class in the Microsoft.WindowsCE.Forms.dll, like this:

Dim o As Orientation = Microsoft.WindowsCE.Forms.SystemSettings.ScreenOrientation

For portrait mode, it returns Horizontal. For landscape mode, it returns Vertical.

Tip: Missing controls in Toolbox - Visual Studio 2008

I encountered a problem today when I uninstalled my Visual Studio 2008 Beta 2 and then installed the RTM version of Visual Studio 2008 Professional.

When I created a Windows Mobile project, the controls in Toolbox were missing. In place of the usual controls is a tab labelled "#13119". The usual remedy of right-clicking the Toolbox and then selecting Reset Toolbox did not help.

After some searching of Visual Studio folders, I finally found the solution. You need to navigate to the following folder:

C:\Documents and Settings\\Local Settings\Application Data\Microsoft\VisualStudio\9.0

And within this folder are some hidden files. Simply remove the following files:

"toolbox.tbd", "toolboxIndex.tbd", "toolbox_reset.tbd", "toolboxIndex_reset.tbd"

Then restart Visual Studio 2008. Your controls should now come back up! ;-)

Click here for more mobile development tutorials!

Tuesday, December 18, 2007

New Course - Web Application Development using ASP.NET 3.5, AJAX, and Silverlight

Important Update: Sorry for the mistake; the correct date for the course should be: 18th to 20th March. (21st March is Good Friday.)

This course is targeted at beginning Web developers who need to get jumpstarted to ASP.NET Web development in the shortest amount of time. This feature-packed and lab-intensive course will show you how to develop ASP.NET 3.5 applications, as well as numerous tips and tricks to enhance your Web applications using AJAX and Silverlight.

What you will learn
Day 1 – Basics of ASP.NET 3.5
* ASP.NET Fundamentals
- Understanding Postback
- Navigating from one page to another
- Web server and HTML controls
- Hiding and displaying controls
- Setting the focus of controls
- ASP.NET page caching
- Image maps
- Files uploading
* Validation
- Using the Validation controls
- Writing your own custom JavaScript
* Design
- Applying themes to your web pages
- Master pages and site navigation
- Displaying Drop-down menus
- Globalization and localization

Day 2 – Database, Security, and Web Services
* Database
- Database access using ADO.NET
- Data binding using the data controls
- Data caching
- Encrypting and decrypting configuration strings
- Building a shopping cart
* Security
- Implementing security using the security controls
- Creating and administering user accounts
- Personalizing your Web application using the Profile service
* Web services
- Developing and Consuming Web services
- Encrypting and Decrypting data

Day 3 – AJAX, Silverlight, Deployment
* Architecture of the ASP.NET AJAX Framework
- How to update part of a Web page without a page reload
- How to auto-complete user input
- How to update a panel at regular intervals
- How to create a panel that’s always floating and visible
- How to populate a DropDownList control without a page refresh
- How to display a confirmation dialog on a control
- How to call Web Services directly from a web page
- How to access the properties of a Profile property from a Web page
- How to add drag and drop functionality to a control
- How to give users control of the information shown by a panel
* Introduction to Silverlight 1.0 and 1.1
- Animation
- Media
- Integration with ASP.NET Futures
* Deployment
- Xcopy deployment

• Time: 9am to 5pm daily
• 18th to 20th (Tue to Thur) March 2008
• Closing date for registration: 19th Feb 2008

• $1099
• To qualify for Early Bird Discount, register before 19th Jan 2008 and receive a $200 discount ($899 after discount)
• Inclusive of 1 lunch and 2 tea breaks for each day

Download the application form here.


I am excited to announce that Developer Learning Solutions has teamed up with asp.netPRO to offer a free one-year online-only subscription to the magazine ( US$14.99 value) for all attendees of the "What is new in Visual studio 2008 & .NET 3.5" and the "ASP.NET 3.5, Ajax, and Silverlight" courses.

asp.netPRO is devoted to professional developers who use Microsoft's ASP.NET (Active Server Pages.NET) technology to build Web-enabled applications and business solutions. It is the information resource to help build, debug, deploy and run the next generation of Web applications.

Developing "Touch" UI for Windows Mobile

Unless you have been hiding in the mountains for the last couple of months, you must have heard of (and even experienced) the revolutionary "touch" interface of Apple's iPhone and iPod Touch. And that leaves the rest of us wanting that feature for our phones (Windows Mobile, Symbian, etc).

While the HTC Touch fills that void by supporting a touch UI, it requires people to buy a new device, which most of us do not have the luxury of doing so. So what to do if you have a Windows Mobile 5.0/6 device and are keen to develop applications that support the "touch" UI? Well, come and join us in the upcoming Windows Mobile 6 Programming course and I will show you the techniques to develop "touch"-enabled applications that allow users to navigate your application using their fingers. And best of all, these techniques work across all Windows Mobile devices.

Check out the course details here.

Monday, December 17, 2007

Big Book of Windows Hacks

I just received my copy of the Big Book of Windows Hacks by Preston Gralla (published by O'Reilly Media). At more than 600 pages, this is literally a big book containing all the useful hacks to make your Windows XP and Vista work according to the way you want.

And I am honored that I am a contributor to this book. Check out my hacks in this book!

Saturday, December 15, 2007

Tip: How to get IP address of your Windows Mobile device

How do I know if my Windows Mobile device is connected to the Internet and if so, what is its IP address?
Use the following function to determine if you are connected. You can also use this to determine its IP address:

'---check whether you are connected to the Internet---
Private Function IsConnected() As Boolean
      Dim hostName As String = Dns.GetHostName()
      Dim currenthost As IPHostEntry = Dns.GetHostEntry(hostName)
      Return currenthost.AddressList(0).ToString() <> _
   Catch ex As Exception
      Return False
   End Try
End Function

Sunday, December 09, 2007

Crocs shoes and Apple

OK, I am going to confess that I am quite a fan of Croc shoes....and today I got my second pair of the Crocs islander. If you have never worn a pair of Crocs before, I know what you must be thinking now... "boy....that color/design is really weird....are you sure you dare to wear this out....?".

Well, wait till you try your feet on a pair of Crocs and you will know how comfortable it feels. It is virtually weightless and feels like ... er ... you are not wearing any shoes! And depending on your taste, there is always a color/design that suits you.

But wait....why am I talking about shoes in a technology blog? If you look at Crocs and Apple, both companies seem to have something in common.....underdogs in an industry where both do not have the majority market share...and yet they continue to innovate by focusing on design and quality. I have always liked to walk into a Crocs showroom and be facinated with new designs that make me think: "why didn't I think of that!" Likewise, Apple's attention to details and usability have always been their trademark.

And if you are still with me ... both companies are great inspirations for me to develop courses that are fun, informative, and most importantly, effective for you to learn new technologies in the shortest amount of time. And if you have never attended any of my classes, I would like to invite you, just like Crocs who in the early days asked customers, to give it a try and experience it themselves. Go on, pick a design (course) and see if you like it. :-)

Saturday, December 08, 2007

Next run of the Windows Mobile 5.0/6 Programming Class

I have finalized the dates for the next run of the Windows Mobile 5.0/6 Programming class. Details as follows:

* Windows Mobile 6 Standard (Smartphone) Programming - 27th Feb 2008
* Windows Mobile 5.0/6 Professional and Classic Programming - 28th and 29th Feb 2008

Click on the links above to download the course brochures and application forms. See you at the class!

Geo-tag Your Photos Using ASP.NET and Google Maps: Part II - Upload, Tag, Save, and Retrieve Photos

The Google Maps API is a free mapping service that allows you to embed maps into your Web pages using JavaScript. Google Maps also provides the ability for you to insert markers at landmarks of interest. You can use this feature to associate photos with different geographical locations — a process known as geo-tagging. I conclude my two-part series by extending the project created in Part I so users can upload photos to it and geo-tag each photo.

Download the free PDF version of the Nov 2007 issue of the ASP.NET Pro magazine now.

Using the Smart Device Framework for Windows Mobile Development

The .NET Compact Framework's class libraries are sadly inadequate for developing full-featured Windows Mobile applications, sometimes forcing you to rely upon the problematic Platform Invoke. Enter Smart Device Framework (SDF), a group of extensions designed to pick up where the Compact Framework's class libraries leave off.

New Course - Visual Studio 2008 (.NET 3.5, VB 2008, C# 2008, ASP.NET 3.5, WPF, WCF)

I will be launching a new course entitled "What is new in Visual Studio 2008 and .NET 3.5" in 2008. As you are probably aware, Microsoft has recently released the RTM version of Visual Studio 2008 to MSDN subscribers (and soon to the public). Visual Studio 2008 includes many enhancements, both in the IDE as well as in the framework and languages. In this intensive 3-day course, you will learn the key enhancements in Visual Studio 2008 and .NET 3.5:

Day 1 – Languages - What is new in Visual Basic 2008 and C# 2008
• Enhancements in the Visual Studio 2008 IDE
• Visual Basic 2008
• C# 2008
• LINQ – Language Integrated Query

Day 2 – What is new in ASP.NET 3.5
• New IDE Support
• New controls
• WCF Support for RSS, JSON, POX and Partial Trust
• Silverlight 1.1

Day 3 – Windows Presentation Foundation and Windows Communication Foundation
• Windows Presentation Foundation (WPF)
• Windows Communication Foundation (WCF)

• Time: 9am to 5pm daily
• 12th to 14th (Wed to Fri) March 2008
• Closing date for registration: 12th Feb 2008

• $1099
• To qualify for Early Bird Discount, register before 12th Jan '08 and receive a $200 discount ($899 after discount)
• Inclusive of 1 lunch and 2 tea breaks for each day

Download the course application here.


I am excited to announce that Developer Learning Solutions has teamed up with asp.netPRO to offer a free one-year online-only subscription to the magazine ( US$14.99 value) for all attendees of the "What is new in Visual studio 2008 & .NET 3.5" and the "ASP.NET 3.5, Ajax, and Silverlight" courses.
asp.netPRO is devoted to professional developers who use Microsoft's ASP.NET (Active Server Pages.NET) technology to build Web-enabled applications and business solutions. It is the information resource to help build, debug, deploy and run the next generation of Web applications.

Friday, December 07, 2007

Windows Mobile Course - 5th to 7th Dec 2007 Thank you!

A big thank you to those of you who attended the Windows Mobile Training from 5th to 7th Dec 2007! I had a great 3-day conducting the course and it was really enjoyable to interact with each and every one of you. And not forgetting the laughters and fun we had. ;-)

For those who missed this course, come join me in the next run from 27th to 29th Feb 2008. Details coming soon! [Update: New dates are now available. Check out this link]

Here are some of the comments from you guys:

"It was a great exposure on window mobile programming on mobile computers such as the MC35 and MC70..."
Noor Jaffer, Y3 Technologies Pte Ltd, Singapore

"It was a good training with an even better trainer. The entire training was interesting and value for money. Will certainly join the other courses when I can. Thanks!"
Desmond Pek, ITE

"Excellent course. Definitely worth every penny. "
Heng Shui Ming, Singapore Epson Industrial Pte Ltd

Wednesday, November 28, 2007

Last call - Windows Mobile Course 5,6,7 Dec 2007

Despite the relaxed holiday season in December, the Windows Mobile course is nearing full-class. If you are still undecided if you want to enroll in the class, do so quickly as there are only 2-seats left. You need to bring your own notebook (with Visual Studio 2005 pre-installed) and I will provide you with a 2GB pen drive (you can keep it after the class) containing all the required software components/code samples for the course. And of course, lunch is provided and not to mention, lots of fun as you learn how to build cool Windows Mobile applications!

Friday, November 23, 2007

Professional Windows Vista Gadgets Programming (Wrox)

This afternoon, I received my author's copy of the Professional Windows Vista Gadgets Programming (Wrox). It sure looks and feels good! Even though this is not the first book I have written, I still feel excited every time I receive my own book.

And in case you missed the seems like Windows Mobile will soon be supporting Windows SideShow....a topic covered in depth in this book. Check out the news from Engadget.

iPod Vending Machine in San Francisco

I was recently in San Francisco where I spotted this iPod vending machine at the basement of Macy's shopping centre. I think this is a brilliant idea to get people to spend money without thinking too know, your kids will see this and pester you to buy one for them. And before you regain your sanity, you will be busy swiping your credit card and reaching to pick up the iPod that has magically appeared in the little window...

Wednesday, November 14, 2007

Build Your Own Windows Mobile RSS Reader

Phones using the Windows Mobile 6 Standard do not have touch screens, which poses certain challenges when developing applications to run on them. Learn how to develop with these challenges in mind as you build a useful RSS Reader application for these devices.

Sunday, November 11, 2007

Create Your Own Mailing List Server with .NET 2.0

Learn how to build your own mailing list server, making use of the new classes located in the System.Net.Mail namespace in .NET 2.0, as well as some techniques to retrieve emails from Outlook.

Coming to a city near you - Windows Mobile 6 Programming Course

I am currently in the planning stage to run the Windows Mobile 6 Programming class in the United States in 2008. This will be a 3-day class that covers all the fundamentals of developing Windows Mobile 6 applications - Classic, Professional, and Standard. You will be up and developing your own Windows Mobile applications after the end of the 3-day.

Drop me a note to let me know where you are located and your desired dates. If you would like in-house corporate training, do also drop me a note. For detailed course content, drop me an email at and I will send it to you.

Wednesday, October 31, 2007

Picture SMS Using the .NET Compact Framework 2.0

Got a client that's asking to send messages via SMS? If so, you know there's no easy way to do it without third-party software. Learn how to build your own image-sending SMS application using only the .NET Compact Framework.

Monday, October 29, 2007

Microsoft & SITF Wireless Chapter presents “I Want Windows Mobile for FSI Solutions”

Developing Windows Mobile applications and need a platform to help market your applications to your target audience? Need to train your developers to get up to speed but don't have the budget for the training? Need access to devices for testing but faced with limited budget?

Microsoft and SITF Wireless Chapter has announced the “I Want Windows Mobile for FSI Solutions” programme to help local ISVs to get jumpstarted in this market. Check out the slides for more information on how to qualify.
If you qualify, you get:

1. Free 3 days training on Windows Mobile development
2. A free Motorola MC35 Windows Mobile Professional device
3. A loaner Moto Q Windows Mobile 6 Standard device for testing

Developer Learning Solutions has been appointed the training partner for this programme. Check out the course info here.

Learn Geo-tracking and Geo-Tagging

In my new book - Professional Windows Vista Gadgets Programming (Wrox), I have included a sample project that shows you how you can geo-tag your photos using Microsoft Virtual Earth.

In addition, you will also learn how to implement geo-tracking using a GPS receiver and a Windows Mobile device. If you have always wanted to know the cool things you can do with a GPS receiver, check out the images in this post!

New book - Professional Windows Vista Gadgets Programming

I am extremely excited to announce that my new book - Professional Windows Vista Gadgets Programming (Wrox) is on track to be released in Dec 07. I have worked hard to make this book a useful resource for developers building Windows Sidebar and SideShow gadgets.

Check out the following for the synopsis and head to to reserve your copy today!

As an easy-to-use application that provides information at a glance, a gadget basically takes the concept of portal dashboards and moves them to the more accessible Windows desktop where users can quickly and easily obtain weather information, RSS news feeds, and much more. In Windows Vista, there are two types of gadgets – Sidebar and SideShow gadgets. Sidebar gadgets are mini applications hosted in the Sidebar pane located on the Windows desktop, while SideShow gadgets are applications that send information to SideShow-enabled devices such as an external LCD display, or even a remote control.

With this hands-on guide, you’ll discover the simplicity of developing Vista Sidebar and SideShow gadgets that can run on the Windows desktop as well as send information to SideShow-enabled devices.

This book contains two parts – the first covers Sidebar gadgets while the second part covers SideShow gadgets. In each part, Microsoft MVP author Wei-Meng Lee begins by walking you through the development of a simple gadget, introducing you to the key concepts in the process. Each chapter breaks down the specific APIs that are relevant to enhancing a gadget, and helpful code samples throughout every chapter detail the step-by-step progression of how a gadget is built. By the end of the book, you will be confidently programming Vista gadgets.

What you will learn from this book
* Components of a Sidebar gadget
* Detailed description and code samples on using the Sidebar APIs
* Using .NET Interop to enhance Sidebar gadgets
* Interfacing Sidebar gadgets with SideShow-enabled devices
* Localizing Sidebar gadgets
* Debugging Sidebar gadgets
* Detailed walk through of a Sidebar gadget project
* SideShow architecture
* Using the SideShow managed class for .NET development
* Understanding the Simple Content Format (SCF) content format for sending SideShow data
* Interacting with SideShow-enabled device
* Detailed walk through of a SideShow gadget project

Who this book is for
This book is for developers who want to build Windows Vista gadgets that target both the desktop as well as SideShow-enabled devices.

Sunday, October 28, 2007

Code-Free User-Interface Design with Expression Blend

Microsoft Expression Blend is a new full-featured design tool for creating highly-interactive and sophisticated Windows application user interfaces using Windows Presentation Foundation (WPF). With Expression Blend, a designer can design and create the UI of an application without worrying about the logic of the application. Once the UI is completed, it can be passed to the developer who will in turn code the business logic of the application. Find out how easy user-interface design is with Microsoft's new, full-featured design tool.

Getting Started with Crystal Report for Visual Studio 2005

Learn how Crystal Reports and Visual Studio 2005 combine to help streamline one of the most common development tasks: creating reports in business applications.

Monday, October 22, 2007

Get the Wrox's Silverlight 1.0 book free!

If you now register for the upcoming Silverlight course in 13-14 Dec, you will get the Wrox's Silverlight 1.0 book for free!

Register today! Application forms available here.

Confused about the various jargons on Silverlight? Check out this article.

Friday, October 19, 2007

Build Your Own RSS Reader

Are you a news junkie? How about building your own RSS Reader without spending a dime? I will be showing how to build your RSS reader in the upcoming Windows Mobile 6 Standard course.

Tuesday, October 16, 2007

New revised topics for Windows Mobile 6 Standard Course!

Thanks for the feedbacks and interests on the Windows Mobile 6 Standard (Smartphone) course! You have been heard! The course now will incorporate several new topics that will be of interest to Smartphone developers. Here are just some of the cool things you will be learning:
· OpenNetCF Smart Device Framework 2.1
· Voice Recording
· Video Streaming
· QRCode scanning
· Setting the Input modes of TextBox controls

As places are limited, please register early to avoid disappointment. Download registration form here.

Sunday, October 14, 2007

Video Streaming in Windows Mobile

I have just finished the prototype of a video streaming server and client applications that allow video images captured by a webcam to be transmitted real-time to a Windows Mobile device.

All you need is a computer with a webcam connected and a Windows Mobile 5.0/6 device with network connectivity. If you want to learn how to build this application, come join us in the upcoming Windows Mobile 6 Standard course on 5th Dec 2007.

Saturday, October 13, 2007

Tip: Emulating GPRS connection on Windows Mobile emulator

In my previous post I talked about how to get Internet connectivity using ActiveSync. However, there is one more option you can take besides using ActiveSync. That is, you can get connected via a GPRS connection. This is done via the Cellular Emulator available in the Windows Mobile 6 SDK.

1. In the Windows Mobile emulator, go to Start -> Settings -> Connections.

2. Tap on the Add a new modem connection link under My Work Network.

3. Give a name for this connection and select "Cellular Line (GPRS)" as the modem.

4. Tap Next two times (leave the fields empty) and click Finish.

5. In the Advanced tab, tap the Select Networks button.

6. Make sure My Work Network is selected in the first drop down list and tap OK.

* Make sure you configure your emulator to work correctly with the Cellular Emulator. See my earlier post on this topic.

Tip: Getting connected to the Internet using the Windows Mobile Emulator

Sometimes when you test your Windows Mobile application on the Windows Mobile emulator, you need Internet connectivity. However, by default the emulator does not have network connectivity. Hence, you need to do some work in order for you to get connected to the outside world.

The key to getting this work is using ActiveSync. In Visual Studio 2005, go to Tools Device Emulator Manager and right-click on "Windows Mobile 6 Professional Emulator" (assuming you are using this emulator) and select Connect. Whent the emulator is launched, in the Device Emulator Manager, right-click on the same emulator and select Cradle.

To confirm the Internet connectivity, use Pocket Internet Explorer and see if you can connected to the outside world. If not, you will see a connection error message. Tap on the Settings link and in the Settings window, tap the Advanced tab and tap the Select Networks button. Select My Work Network (see picture above). You should now be able to get connected!
* In ActiveSync, go to File -> Connection Settings... and check DMA under the "Allow connections to one of the following".

Are you looking for legal forms online? With a quick search you will probably find lots of small business forms or state tax forms available on the web. Obtaining public documents has never been easier.

Wednesday, October 10, 2007

Tip: Using the Cellular Emulator in the Windows Mobile 6 SDK

One of the very cool tools available in the Windows Mobile 6 SDK is the Cellular Emulator. The Cellular Emulator allows you to use the Windows Mobile Emulator to emulate making and receiving phone calls, as well as sending and receiving of SMS messages. However, getting it to work with your emulator is not so straight-forward. Follow the steps outlined below:

1. Launch Cellular Emulator from Start -> Programs -> Windows Mobile 6 SDK -> Tools -> Cellular Emulator.

2. Observe the COM port number used by the Cellular Emulator. For my example, it is COM3. You may see something similar or different (like COM4).

3. Launch the Windows Mobile 6 Professional Emulator (make sure it is not the Classic emulator) from within Visual Studio 2005. You can do so from Tools -> Device Emulator Manager and right-click on Windows Mobile 6 Professional Emulator and select Connect.

4. In the Windows Mobile 6 Professional Emulator, select File -> Configure... and click the Peripherals tab.

5. Under Serial port 0: enter the COM port number used by the Cellular Emulator. For my example, I enter COM3. Note that you have to manually enter the COM port; it is not listed in the dropdown list.

6. Finally, reset the Windows Mobile 6 Professional Emulator by selecting File -> Reset -> Soft. This step is essential!

You should now be able to get the Cellular Emulator to "talk" to the Windows Mobile 6 Professional Emulator.

Some common problems

1. From experience, you are likely to encounter problems with the Cellular Emulator if you install the Windows Mobile 6 SDK on a notebook. You are likely to see an error that says "COM17 is used, please verify" (or something similar). There is no official way to resolve this, but it seems like some folks managed to solve this by first uninstalling the Windows Mobile 6 SDK, then disable the Bluetooth services, followed by installing the Windows Mobile 6 SDK again.

2. If you find that the Windows Mobile emulator is not receiving SMS messages/phone calls made from the Cellular Emulator, the first place to check is the COM port settings in the Emulator Properties page. I encountered instances of this problem when the emulator started to lose the COM port settings after a while of use.

A call center service can help you with your telephone needs if you run a growing business. A good phone answering service can provide plenty of help; some companies wouldn't work without an external answering service to take calls.

Tip - Windows Mobile 6 Standard / Windows Mobile 5.0 Smartphone

In Windows Mobile 6/Windows Mobile 5.0 Smartphone, the Start menu is always shown in GridView. However, you can also switch it to ListView, but this is not easily performed by the end user. If you are a developer, you can use the Remote Registry Editor (shipped as part of Visual Studio 2005) to modify the following registry key:

Set the GridView DWORD Value = 1 for GridView and 0 for ListView.

Thursday, October 04, 2007

Getting Started with the Google Maps API

In the Oct '07 issue of ASP.NET PRO Magazine, I demonstrated how to build an ASP.NET Web application that allows users to upload photos and geo-tag them using Google Maps. View the PDF of the Oct issue here.

Friday, September 14, 2007

Registration Closed - 20-21 Sep 2007 Windows Mobile 5.0 Programming Course

Due to overwhelming response, the registration for the 20-21 Sep run of the Windows Mobile 5.0 Programming course is now closed. The next run for this course would be in Dec 2007. Details as follows:

5th Dec 2007 (Wed) - Windows Mobile 6 Standard (Smartphone) Programming
6th and 7th Dec 2007 (Thurs, Fri) - Windows Mobile 5.0 Programming using the .NET Compact Framework 2.0

For more details about the two courses, download the brochures and application forms here. As usual, please register early in order to enjoy the early-bird discount!

Creating a Windows Mobile Wireless Remote PowerPoint Clicker

Imagine giving a presentation from your cellphone! Learn how to write a PowerPoint clicker application for your Bluetooth-enabled Windows Mobile device.

Friday, September 07, 2007

Course - Developing Rich Interactive Applications (RIA) using Microsoft Silverlight

Want to learn Silverlight but are confused by all the various tools and technologies available? In this 2-day course, learn how the various tools and technologies like XAML, Visual Studio 2008, Expression Blend 2, Silverlight runtime, etc, work together. Packed with intensive hands-on labs, you will be on your way to developing cool Silverlight applications for your web site upon completing the course. Download the registration form here.

Course Date: 13-14 Dec 2007
Fee: S$598 (Early-Bird). S$798 (Usual).

Thursday, September 06, 2007

Get Started with Silverlight Using Visual Studio 2008 and Expression Blend 2

The Microsoft Silverlight browser plug-in enables developers to host Rich Internet Applications (RIAs), which feature animation, vector graphics, and video playback. Find out how to get started with Silverlight, and get a feel for how this new type of development works.

Wednesday, September 05, 2007

Developing a File Explorer for the Smartphone Using the .NET Compact Framework

This was an article I wrote for Pocket PC Magazine's (now known as Smartphone and Pocket PC Magazine) January 2005 issue. At that time, the version of Smartphone was 2003 and it did not come with a File Explorer. My article aimed to fill that void by showing readers how to build one themselves. And now that the latest version of Windows Mobile 6 Standard (aka Smartphone) comes with File Explorer, that article seems a bit redundant. Nevertheless, if you want to build a Windows-style Explorer, you can still gain something from my article. Additionally, this article is also useful for those of you wanting to know how to use the Treeview control to display hierarchical data.

Here is the synopsis of that article:

"Unlike the Pocket PC, the Smartphone 2003 platform does not come with a File Explorer for users to view the folders (and files) on the phone. This is perhaps due to the fact that Microsoft does not see the need for users to do this. However, it is often useful for developers to be able to view the directory structure of a Smartphone so that they can decide on which folders to use to store their applications and files. In this article, I will demonstrate how you can build a File Explorer for your Smartphone using the .NET Compact Framework. You will need to have Microsoft Visual Studio .NET 2003 and the Smartphone 2003 SDK to do this. "

Wednesday, August 29, 2007

NEW Course - Windows Mobile 6 Smartphone Programming

This course will introduce to participants the various techniques to program their Windows Mobile 6 Standard phones (previously known as Microsoft Smartphone). This feature-packed course will show you the challenges in developing non-touch screen user interfaces as well as the various techniques to develop line-of-business applications.

Includes coverage of what is new in the .NET Compact Framework 3.5 using Visual Studio 2008 Beta 2

What you will learn
* Introduction to Windows Mobile 6 Standard Programming
* Programming using the .NET Compact Framework 2.0
* User Interface Design for Smartphone
* Storage and File I/O
* Device Synchronization
* SMS Messaging and Email
* Localization
* Database
* Signing your application
* Project 1 – Building a RSS Reader
* Project 2 – Building a SMS Chat Manager
* What is new in .NET Compact Framework 3.5

* Time: 9am to 5pm
* 5th Dec 2007 (Wed)
* Closing date for registration: 5th Nov 2007.

Course Fees
* S$399
* To qualify for Early Bird Discount, register before 5th Oct and receive a $100 discount (S$299 after discount)
* Inclusive of 1 lunch and 2 tea breaks

Motorola Enterprise Mobility Business
230 Victoria Street #12-06/10
Bugis Junction Office Tower
Singapore 188024

Important Note
You will be required to bring your own notebook computer for the course. The required software will be sent to you one week before the commencement of the course. Please ensure that the required software is installed before attending the course.

Infrared Programming Using the .NET Compact Framework

If you've ever used a TV remote control, you've experienced the convenience of using infrared communications. See how to use infrared to communicate between a Windows Mobile device and a PC.

Monday, August 27, 2007

Want to build your own phone applications?

Have you ever used SMS messages for voting, say, in a singing competition? Or perhaps you have recently sent SMS messages to donate to a charity show? If you wonder how all these SMS voting systems work, be sure to join us in the upcoming Windows Mobile 5.0 Programming course.

In this two-day workshop, you will build a SMS Manager application that allows you to use SMS message for voting purposes. This application is useful in scenarios where you need to collect feedback from users realtime, and is very useful in places like lecture threatres where you want to encourage students' participations.

In addition, you will also build a Call Manager application. The Call Manager allows you to disable your phone calls when you are driving or in a meeting and automatically sends a message to inform the caller that you are unable to take the call (if it is your boss calling, send him/her a message that you are now very busy with work to take his/her call!).

If you have a Windows Mobile 5.0 phone edition device and want to know what are the things you can do to make it more useful (well, build the applications yourself!), join us this Sep 20th and 21st. For more information, contact me at

Register now and get a free 2GB USB flash drive!

Trying to find an international phone? Getting global phones can be difficult, especially when you are traveling around the world. Next time you want a satellite phone rental looking on the Internet could help.

Saturday, August 18, 2007

Preorder the new PSP from! is now taking orders for the new slimmer PSP that is scheduled to be launched in Sep. At the price of US$169.99, it seems like a good deal! I am no particular fan of games, but I am buying one for podcasts and RSS feeds. Click here to pre-order yours today. ;-)

Thursday, August 02, 2007

Try out the MC35 at the Windows Mobile 5.0 course

I am delighted to announce that Symbol (Motorola) has kindly agreed to loan a couple of MC35 to me. ;-) That means that if you have already signed up for the 16, 17th Aug run of the Windows Mobile 5.0 programming course, you would have a chance to try out first hand how well your application performs on it. If you have not signed up for the course, there is still time for the 20, 21 Sep run of the course. Download the application forms here.

* Symbol has traditionally been a leader in the enterprise mobility market, but with the launch of the MC35, they are sure looking at the pro-sumers market (e.g. managers and professionals). The MC35 has a slim footprint and comes with a built-in camera that changes into a barcode reader with the flick of a switch.

Friday, July 20, 2007

Course - Windows Mobile 5.0 Pocket PC Programming using the .NET Compact Framework 2.0

This course will introduce to participants the various techniques to program their Windows Mobile 5.0 Pocket PC devices. Far from being an introductory course, this feature-packed course will show you how to interface with external devices, communicate wirelessly with other devices, as well as access the data of built-in applications (such as Contacts, Outlook Mobile, and Calendar) from within your own.

Day 1 (Fundamentals)
· Introduction to Windows Mobile 6 development (NEW)
· Building Screen Orientation and Resolution Aware Applications
· File I/O
· Integrating with Contacts and Outlook Mobile
· Integrating with Calendar
· Integrating Telephony Functions
· Using Web Services
· Transferring Binary Data using Web Services
· Database Access using SQL Server Mobile Edition
· Remote Data Access using SQL Server Mobile Edition

Day 2 (Advanced)
· Using the Built-in Camera
· Intercepting Incoming SMS Messages
· Capturing Signature on the Pocket PC
· Location-Aware Using GPS (Serial Port)
· Imaging (Using the Symbol SDK)
· Barcode Scanning (Using the Symbol SDK)
· Barcode Scanning (Using the Built-in Camera)
· Infrared Programming
· Monitoring System States and Sockets Communications
· Bluetooth Printing
· Deploying Pocket PC Applications
· Using the Magnetic Card Reader

· Time: 9am to 5pm daily
· 20th (Thur) and 21st (Fri) Sep 2007
· Closing date for registration: 7th Sep 2007.

Course Fees
· $798
· To qualify for Early Bird Discount, register before 16h Aug and receive a $200 discount ($598 after discount)
· Inclusive of 1 lunch and 2 tea breaks for each day

Motorola Enterprise Mobility Business
230 Victoria Street #12-06/10
Bugis Junction Office Tower
Singapore 188024

Course - Developing Rich Interactive Applications (RIA) using Microsoft Silverlight

Course Synopsis
One of the latest buzzwords you often hear nowadays is RIA, or Rich Internet Applications. Rich Internet applications (RIA) are Web applications that have the features and functionality of traditional desktop applications. To Microsoft, RIA stands for Rich Interactive Applications, which is really their main focus when they recently announced the latest product known as Silverlight.

Microsoft® Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on Mac OS X or Windows.

In this 2-day jumpstart course, participants will learn the basics of Silverlight and get jumpstarted on developing compelling RIA applications using Silverlight 1.0 and 1.1.

Day 1 (Silverlight 1.0)
* Understanding XAML
* Using the Canvas object
* Drawing and Painting
* Graphics programming
* Manipulating images
* Manipulating text
* Manipulating media
* Animations

Day 2 (Silverlight 1.1)
* Building Dynamic UI with Silverlight
* Networking in Silverlight
* Interacting with HTML Programmatically
* XML Programming
* Persisting Data

* Time: 9am to 5pm daily
* 1st (Mon) – 2nd (Tue) Oct 2007
* Closing date for registration: 7st Sep 2007

Course Fees
* $798
* To qualify for Early Bird Discount, register before 16h Aug and receive a $200 discount ($598 after discount)Inclusive of 1 lunch and 2 tea breaks for each day

HDB Learning Center
480 Lorong 6, Toa Payoh
Singapore 310480

Friday, July 06, 2007

Incorporating Help into Your Windows Applications

How much effort do you put into ensuring that your users get all the help they need? You probably strive to design a user-friendly user interface, but do you provide any avenue for your users to get help when they are stuck? This article will show you how!

Spice Up Your SMS Chat on the Pocket PC

Did you know you can change the way your device represents your SMS messages? Learn how to program your messages to appear visually, complete with photos of the participants.

Saturday, June 23, 2007

Adding Smart Tags to Windows Forms Controls

One new features in Visual Studio 2005 is the support for smart tags. A smart tag is a panel that displays next to a control and contains a list of commonly used properties. Check out this new article!

Write Your Own Windows Services

If you're using Windows, you're no stranger to Windows services, but do you know how to write one of your own? In this article, you'll learn not only how to build your own Windows service, but how to build a client with which to control it.

Saturday, June 16, 2007

GPS data logger

Finally, a GPS receiver that doubles up as a GPS data logger. QStarz has just introduced the "Double 32® Bluetooth GPS Travel Recorder" GPS receiver that can log the coordinates and then offload to a PC. This is the idea that I was talking about in my MEDC presentation and would be very useful for fleet management as well as geo-tagging applications. Best of all, it is set to cost about US$119. Time to buy a new GPS receiver!

Sunday, June 10, 2007

Some Frequently Asked Questions (FAQ) About My Courses

I received quite a number of questions pertaining to the Windows Mobile 5.0 Programming course this Aug (16th and 17th). I have reproduced them here for your convenience just in case you have the same questions in mind:

Do I need to bring my own Pocket PC device for the course?
No, Pocket PCs will be provided (you have to share them though). Symbol will be providing 10 units of the MC70 for testing purpose, as well as other accessories such as RFID snap-ons, GPS receiver, as well as Zebra Bluetooth Printers. However, please feel free to bring your own device if you want to see how the sample apps run on your own device.

I have a older Windows Mobile 2003 PPC. Is this course applicable?
While this course is focused on Windows Mobile 5.0, there are some examples that will work on older PPCs. For example, the SerialPort class is new in .NET CF 2.0 and hence it is not tied to the Windows Mobile 5.0 platform, and therefore will work on older PPCs.

How is your course different from others?
If you have attended my course before, you would know that I am a great believer of learning-by-doing. And hence my course is focused extensively on hands-ons. I don't believe in spending lots of time on slides, explaining all the details of a class/methods. For that, you can really read a book or documentation.

I believe that the best way to learn programming is to actually type in the code, debug it, fix it and then seeing the end result yourself. In fact, I encourage my students to make as much mistakes as possible so that the concepts really sink in into their heads (this is actually how I learn new technologies; and in fact the best way to learn a new technology is to write a book! :-)).

And of course, the key ingredient to a good course is the course materials/workbook. For all my courses, I use materials that I develop myself. Each lab exercises contains simple and practical demos that you can modify and use for your own projects. I do not believe in huge and complicated examples/case studies that require you to start in Day 1 and complete in Day 5. As far as possible, each lab exercise is stand-alone so that students who did not manage to follow earlier labs (either they are late or the topics are just not relevant to them) can follow the rest of the course without feeling lost. In fact, I eat my own dog-food - I always refer to my own course materials when I am working on projects and needed to quickly locate a code-snippet to accomplish some functions, such as how to serialize a class, encrypt some text strings, access database, etc.

That said, do send in your questions if you have any. Cheers!

Friday, June 08, 2007

MEDC 2007 Singapore Slides Uploaded

You can now download my slide decks for the two sessions I presented at MEDC 2007 Singapore on 8th June 2007. Enjoy! Download all decks here.

[Updates] You can find the source code for the two presentations at here (SideShow) and here (Windows Mobile). These two are temporary locations until I find a permanent home for them. :-)

In addition, the application forms for the MCTS Prep Classes and the Windows Mobile 5.0 Programming Course can be downloaded here.