venerdì 14 marzo 2014

Windows Phone 8 Development Succinctly - Free ebook

I'm so glad to announce the new free ebook from Syncfusion:

Windows Phone 8 Development Succinctly

This ebook is written by my friend Matteo Pagani and you can download 243 pages in PDF or Kindle format.

Before starting, please remember: if you are a beginner in development, this ebook is not for you. You need to know the basic concepts of the C# programming.

This book covers all the features of Windows Phone so it's also a good read if you are new in wp development.

Main chapters:

  1. Introduction: 
  2. The User Interface: Basic XAML Concepts
  3. Core Concepts
  4. Data Access: Storage
  5. Data Access: Network
  6. Integrating with the Hardware
  7. Integrating with the Operating System
  8. Multimedia Applications
  9. Live Apps: Tiles, Notifications, and Multitasking
  10. Distributing the Application: Localization, the Windows Phone Store, and In-App Purchases

  • free! :)
  • easy and fast to read
  • all development cycle
  • a lot of samples and tips
  • Kindle format
  • finally an ebook that explains all storage approaches

Meanwhile you can download the Syncfusion wp controls (now at special price) to make more fast your development. Hurry up! ;)

domenica 2 marzo 2014

Windows Phone 8 - WriteableBitmap and app resume

When I upgraded my WP7 projects to Windows Phone 8, I discovered a strange behavior.

I usually update the tiles in the Application_Deactivated and Application_Closing event, but in wp8 the app crashes while it resumes.
The tiles were created in the storage, so all works good.

The problem seems related to the WriteableBitmap.Render method. I don't know why it blocks the UI thread!

If you have the same behavior, you can use a workaround:

In the App.xaml.cs add the Navigating event in the InitializePhoneApplication method
RootFrame.Navigating += RootFrame_Navigating;

Use the app://external/ string to know when you are exiting from the application
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
  // update my custom tiles