Anche se sviluppare un applicazione su Windows Phone 7 è, direi al 80%, del tutto simile allo sviluppo di un applicazione Silverlight 3.0, non dobbiamo dimenticarci di quel 20% che è sicuramente quello destinato a farci penare prima del rilascio, in quel 20% oltre al Tombstoning aggungerei sicuramente l’aspetto performances perchè, non dimentichiamolo, abbiamo comunque a che fare con un dispositivo e non con un personal computer.
Un esempio dove un dettaglio può far la differenza è la modalità di embedding di eventuali risorse all'interno di un progetto WP7.
Da questo punto di vista gli strumenti di sviluppo (Blend 4 e Visual Studio 2010) non sono dalla nostra parte in quanto quando aggiungiamo una qualsiasi risorsa al progetto questi impostano la relativa Build Action a Resource.
A prima vista nulla di strano, se non fosse che, come sapete, le applicazioni WP7 per essere scaricate devono passare dal MarketPlace e questo processo ha come conseguenza il fatto che le assemblies presenti nello xap vengono firmate e la firma viene verificata al primo startup del programma nel telefono (nella beta la verifica avviene ad ogni startup)
Se conoscete come avviene il processo di verifica della firma saprete che questo è tanto più lungo quanto maggiore è la dimensione dell’assembly percui se all’interno di un assembly abbiamo embeddato un immagine da 5 MB questa influirà negativamente sul primo startup.
La soluzione? Impostare la Build Action delle risorse a Content anzichè Resource, in questo modo, dal punto di vista dell’utilizzo sia a livello di codice che a livello XAML non cambia nulla, ma l’avvio dell’applicazione è stato sicuramente migliorato.