views:

50

answers:

2

I was wondering what are the pain points for other developers when learning Windows Phone 7 programming. For me is switching between application pages and the MVVC. If you have any hints or resources helping to overcome these pain points, please share it.

+2  A: 

There is a great, organised resrouce list here which covers pretty much all the major points of Windows Phone 7 development.

keyboardP
+2  A: 

When switching to a new development platform there are bound to be new things to learn.

If you're coming from a web background it's important to note that you're no longer in the same stateless world as the web. There is also a different navigation model. (Especially if you're developing in XNA!)

The biggest, and in my opinion, most important difference in moving to developing for the phone (or any mobile platform) are teh follwoing 6 points.

  1. "Mobile" applications are used differently to desktops ones. - Expect users to have less time to spend with the application and be doing other things at the same time.

  2. Input is different. - Consider [multi-]touch as well as voice, location and sensors rather than mouse and keyboard.

  3. Output is different. - Even if just considering output to the screen, it's very different developing for a small screen than a large one.

  4. Connectivity is nott guaranteed. - Create apps which work offline and are occassionaly connected. Don't assume a network conneciton is guaranteed or fast.

  5. Performance is important. - Partt of the way that"mobile" applications are used differently to their desktop counterparts creates a different expectation from users and they are much less tollerant of applications which are displaying the equivalent of a wait cursor. Do no more than you have to and be sure to keep the app/device as responsive as possible.

  6. Resources are constrained. - The most important consequence of this is to do no more than you must, so you can preserve battery life. Afterall, if you run down the users battery they get frustrated and can't use your app.

Unfortunately the best way to avoid running in to problems is to develop a detailed knowledge and understadnig of the platform.
With that i mind, I'd recommend the following resources:

For general information check out the MSDN documentation.
I'd like to particularly draw your attention to: the design resources, particularly the UI guidelines - so you can create something which looks like it is actually part of the platform.
and the fundamental concepts - so you don't waste time trying to do something which isn't possible.

Other useful resources are:
- Code samples
- Online training (there are updates to this coming soon)
- the book by Charles Petzold

Matt Lacey