Although Windows Phone 7 has its development API based around well-known principles (especially to Silverlight and XNA developers), there are specific points that are related to this platform only, and sometimes beginner developers loose track of those (I am saying beginners because experienced developers really get used to the nuances I am talking about). Here at DZone, a new reference card was released recently, specifically designed for beginner developers and developers who might have prior .NET development experience, but never worked with Windows Phone 7.
- Platform & Tools
- Silverlight Project Creation
- Application Navigation
- Data Handling
- Platform Integration
- Design Considerations
It is worth mentioning that if you are a XNA developer and you are already familiar with basic platform considerations, then this refcard is probably not for you. If this is not the case, then it is a handy resource to keep at hand while you are learning. As you go, you will have less need in a reference since the concepts outlined in the card are universal in terms that those can be applied to any Silverlight application for Windows Phone 7 and can easily be remembered with work done in the field. The content is concise and to the point - there is an assumption that you are familiar with how .NET Framework is organized. Although the code snippets shown in the paper are written, there shouldn't be any problems converting those to any other programming language as long as it is supported by the SDK.
The most important parts in my opinion are those describing application navigation concepts, which should be handled in every application - many developers forget about the fact that the application is not constantly running and that there are pause/resume states that should be handled manually.
Some interesting tips are outlined in the Application Lifecycle section, for example - how to disable the lock screen while the application is running. And of course, there is also a way to make your application run even when the lockscreen is triggered.
One thing mentioned in the card is that once you register an AppHub account as a student, you can only register (and therefore unlock) just one device. This has changed since, and now students also get 3 unlock slots for their devices.
Some of the subjects that weren't covered include Reactive Extensions, which start playing an important role in software development involving the asynchronous action pattern. Speaking of which, most of the resource-expensive actions are only available through an asynchronous access mechanism (e.g. when it comes to web services).
Also, there was nothing specfic mentioned about the actual tasks and launchers that are available in the context of the SDK. Those are:
For more details on the classes mentioned above and for documentation on how to use them, you should definitely take a look at the class library reference for Windows Phone 7. There are even more capabilities that are exposed through the system API - you can read more about those here.