I have been using Silverlight for quite a bit and am learning Windows Phone 7.
Of course, this is very similar.
However, what are the top issues to watch out for?
I have been using Silverlight for quite a bit and am learning Windows Phone 7.
Of course, this is very similar.
However, what are the top issues to watch out for?
No sockets is one thing that comes to my mind. No local storage is another one.
Upd: I stand corrected: no database storage, only isolated storage present.
1) It is Beta/Pre-Release. Contents are likely to shift while in-transit. Be aware that the API, etc that you are developing against may go through some changes between now and release date. There will be more coming down the road; be realistic and patient with your expectations.
2) For Silverlight development, it is Silverlight 3++ and not Silverlight 4. Learn and know the boundaries and behaviors of Silverlight in general, then also focus on the differneces between SL3 and SL4.
3) Navigation is similar but different to "regular Silverlight's" - the idea that you "sometimes" may want to navigate in regular Silverlight has been consolidated and assumed that you do want to navigate between pages in the Phone. (See here)
4) As much as the Panorama and Pivot controls/experiences are part of the design recommendations, these controls are not yet available as part of the development tools (there are online how-to's, etc for making your own.) (More here...)
5) When you interact with an external service, your applicaiton is relinquishing control to a different app. There is no API for "get a list of contacts"... you launch the Contact Chooser, then when the contact is chosen, your application gets re-awakened and the value is returned. (More)
6) The emulator is limited (lacking?)...don't expect to be able to interact with any of the hardware services (GPS, accelerometer, etc.) from the emulator. If you want to do that, at least for now you'll need a real device.
7) The emulator is lacking...the software services are not available (yet) through the emulator. If your app needs to interact with some of the hubs or other software facilities, (for example to select a contact) they're not available (at least not without an "unlocked" emulator.)
8) Learn about tombstoning. Your app may be taken down halfway through its run (if the user hits the Start button, etc.) and while you do have the opportunity to save and restore state, you are responsible to save and restore state. (More)
9) Understand Push notifications. (More here)
10) It is 1.0. There will be more coming down the road; be realistic and patient with your expectations.
When running through the emulator be aware that the emulator will be running at the CPU speed of your development machine and NOT at the speed of a physical phone which could be much slower. You're going to have to test your code on a real device at some point to make sure it doesn't run too slowly.
My list (so far):