If you are interested in Windows Mobile development but cannot afford Visual Studio I've posted some notes on getting a dev environment up and running without Visual Studio. You can see these notes at The Code Project.
I was writing a guide for those that wish to write Windows Mobile programs using the command line tools and was validating my information when I came across a discrepency. cordbg.exe from the 3.5 and 2.0 framework does not support the conn[ect ]command any more. Attempting to use it results in the message "Error: Command 'connect' not found." The ramifications of this is that one will not be able to use the command line debugger to debug on their remote device at all. If you plan to start on .Net development I strongly urge you to use Visual Studio. Otherwise for now you have no debugger.
Like the desktop versions of Windows there is a Run menu in Windows Mobile. But it is hidden. To access it hold down the action button and access the context-menu (press-and-hold) button on the clock.
Selecting "Run" will display the run menu.
In case you are wondering why any one would want to have access to this here is the reason. Several programs on Windows Mobile devices can accept command line arguments. But since there is no command line in Windows Mobile there's not a clear way to pass such arguments to a program. A typical user would never need this, but a developer would.
Over the pastfew week Microsoft has been updating many of their forums. For those not familiar Microsoft host the MSDN forums so that those working with related technologies can communicate and ask each other for assistance. The Smart Device Development forums when through their metamorphosis last week. While there are still a few things transitioning over the migration of the core information and functionality seems to be complete. The interface of the new forum is more aesthetically pleasing and much more responsive (it is based in Ajax) and the editor is much easier to use and gives more control over formatting.
If you are ever stuck with a problem that you cannot figure out then this is always a good place to start. However the promptness and accuracy of your response is going to be dependent on the clarity of your question. So if you've never posted in a newsgroup or forum before I'd like to direct you to some general rules that Daniel Moth wrote that will help ensure that you get the best answer.
I see a lot of questions from new-comers to Windows Mobile development on how to get started. I also see in the Google Analytics report for my site that people stumble upon my site are looking to start on Windows Mobile Development. I'm planning to write an article introducing one to Windows Mobile development this week. I will be targetting the developer that already programs in C#. Unfortunatly I cannot target the person that has never programmed before because too many programming concepts would need to be followed. For those that have developed before for other platforms I will suggest getting a foundation in C# and .Net before specifically targetting Windows Mobile. So the profile of the person that I am targetting with my article is some one that knows C# and has some familiarity with Windows form development. Based on the frequent questions that I see in the forums I plan to cover the following in addition to some other information.
- Minimum Software Required for Windows Mobile Development
- Overview of Mobile Development Technologies
- Thread Spinning <- this will kill your battery, and fast!
- Using Multiple Threads
- System State and Notifications Broker
- Supporting various Form Factors
- Connection Management
- 3D Programming
- Adding Help to an Application
- Data management
- Setup and Deployment
- Other Resources
- MSDN Library
- MSDN Forums - also mentioning Daniel Moth's Guidelines for the forum
- Windows Embeded Blog
- Windows Mobile Blog
- "24 Hours of Windows Mobile" webcast series
- "How do I" videos
Earlier today MS Mobiles did an interview with Scott Rockfeld, the product manager of Windows Mobile. The interview can be heard in MS Mobiles podcast #259. Among other things Scott mentions why the Windows Update feature of Windows Mobile is unused and gives some hints of where Microsoft plans to go in the future.
In responding to a question on the MSDN forums I wrote the following. I thought it to be a particularly useful response for some people so I decided to repost it here.
In my opinion Microsoft is the best company around when it comes to supporting developers. Information on the general Windows Mobile APIs are freely available to everyone; no registration or fees required. The source code is not open, but a majority of the APIs are publically documented. You can find these APIs reference on the Windows Mobile Development Center in MSDN. For Windows Mobile I could divide the APIs into one of 2 categories; native and managed.
If you are just starting with Windows Mobile development you will want to use the Managed APIs. All of these APIs are implemented through .Net. When using these APIs a lot of low level tasks such as some aspects of memory management are taken care of for you. The Native APIs give one direct access to more of the device at the cost of less protection from one's mistakes and more effort being demanded to perform certain tasks. Since versions of the .Net framework are supported on both the desktop and on windows mobile devices you may want to start with some simple desktop application development with .Net before developing on a Windows Mobile device. After getting a foundation in the .Net framework pick up the book "Microsoft Mobile Development Handbook" by Andy Wigley, Daniel Moth, and Peter Foot.
The bear minimum toolset that one would need to develop for Windows Mobile would be the .Net framework and one of the Windows Mobile SDKs. These are free downloads. However, I would strongly encourage you to invest in Visual Studio 2008 Professional. It will provide a much more complete development environment then using the command line tools of the SDK.
You usually have access to the file system of a Windows Mobile device (though some businesses or phone carriers may restrict certain areas of the device for their own security or policy reasons). giving you the ability to copy programs to the device as desired.
Other sources of information include
I have a moment of freetime, so I'm cleaning the windows installation on one of my computers for a Silverlight class I will be teaching, and coming up with goals for future projects (reading barcodes with a Windows Mobile camera, using SMS is a data transport for a game, real-time discrete fourier transformation based fourier analysis to produce sheet music from a wave file) and I decided to slip through some unread issues MSDN magazine. In the August issue the Windows Mobile section had an interesting article on a Windows Mobile based lego robot. Very Cool! A useful piece of code I was able to lift from the article deals with Bluetooth communication using the Microsoft stack. I plan to use it to update the Windows Mobile Call Silencer program I wrote so that it can communicate over Bluetooth or WiFi. If you are interested in the WiMoBot check it out at the Microsoft Employee's website at http://www.wimobot.com. There are also some references to some other bluetooth sensors that you can get for developing with yout phone so that you don't have to solder wires to it.
I've been working on a program to mute my computer whenever the phone became active. After completing it I decided to add one more feature; caller ID. Now when my mobile phone rings my computers (there are three in my work room) all mute and the caller ID information displays. Upon termination of the call the computers that were not muted before the call are unmuted. I've got to do some cleanup in the code but plan to have it posted on CodeProject.com in the next few days.
The Microsoft Patterns and Practices group has made available the Mobile Arch. Guide available. It's definitly worth the read. You can download it here.