by Mister Goodcat
14. May 2012 11:30
When you create an app like the SilverlightShow app, that accesses remote data frequently, thinking about a suitable strategy for local storage and caching is vital to provide a great user experience. In the previous parts of this series, we have already seen how several optimizations are used to improve the networking performance of the app. Overall, the costs to pull data from the portal could be reduced to far less than 1/10th of the original traffic by applying some relatively simple changes. However, this is only half the story. What we also wanted to achieve is that content that has been retrieved once should not be fetched again – we needed a solution for storing those items locally.
You can read the full article at SilverlightShow here:
http://www.silverlightshow.net/items/Creating-the-SilverlightShow-Windows-Phone-App-part-4.aspx
by Mister Goodcat
10. May 2012 17:55
I once again would like to thank everybody who attended my session about Behavior-Driven Development with Windows Phone at this year's Entwicklertag Karlsruhe (#etka12), and for the great feedback and discussions afterwards. I offer both the slides and the shown demo code for download here:
Slides: BDD mit Windows Phone (German)
Source Code: [Will follow soon, currently there's a NuGet issue]
As requested by someone, here also is the link to my free Windows Phone training videos again:
http://www.goodcat-trainings.net
This can be used to get started with Windows Phone programming from scratch, and to learn about the special features and inherent problems of the platform discussed during the session.
I hope you enjoyed etka12 as much as I did; happy coding!
by Mister Goodcat
2. May 2012 07:00
It's been a while since the last part of my series on background agent pitfalls, where I talked about data exchange between your app and the agent, and what potential errors and edge cases you may run into with that. There are a few more topics I wanted to create awareness for, so today I'll continue with…
Part 4: Exceptions, exceptions, exceptions
A lot of things can go wrong when you work with agents, and one of the places that are particularly interesting is at the very beginning – when you try to schedule your task. There are a hand full of conditions that may prevent you from doing this, and knowing about them to e.g. add proper error handling is vital. In this part I'll show and explain to you the individual error cases, and talk about how to work around them, if that's possible at all. More...
by Mister Goodcat
1. May 2012 13:46
I've released version 2.0 of my open source component "Your Last About Dialog". This major new release adds full styling support to the about page, which gives you complete control over the visual appearance of the component. This not only includes simple details like foreground and background colors, font sizes and styles, but also much more sophisticated things like the possibility to add page transitions from the Silverlight Toolkit, or control the visibility of the system tray and other details.
Version 2 also improves the install experience from NuGet by integrating some quick start help, to get you up and running in only a minute, without the need to study the documentation separately. As always, installing from NuGet is the recommended way, but you can of course also download the binaries and source code from CodePlex if you want. To learn about the new features in more detail, consult the "Styling" section of the documentation. The default styles that are created for you when you install the NuGet package also contains some pointers and comments on what you can do.
Have fun :)
by Mister Goodcat
20. April 2012 08:00
Two days ago, almost one hundred attendees joined my webinar about advanced MVVM topics. I've used some sample scenarios on the Windows Phone platform to demonstrate typical problems (and possible solutions) that you potentially will run into when you apply the MVVM pattern to your applications. In particular, I talked about:
- Accessing features of the view from your view models (e.g. navigation features, dialogs)
- Elegantly handle access of view model features from your views when there's no built-in support for it (e.g. missing binding capabilities in the application bar)
- Accessing data and features that are not available in the current context (e.g. access across boundaries of unrelated view models, passing data between pages)
I'm pleased to announce that a recording of the whole webinar is now available for free here:
http://www.silverlightshow.net/video/Advanced-MVVM-for-WPDev-Webinar.aspx
You can also download the slides and samples sources shown in the webinar (this requires a free account on SilverlightShow.net).
Thanks to everybody who attended and the great feedback I've received. Also, congratulations to all the winners of free ebooks.
by Mister Goodcat
17. April 2012 07:00
Last week, Carl Franklin and Richard Campbell recorded an interview with me for their show "The Tablet Show". The show focuses on all kinds of mobile devices and covers WinRT/Metro, Windows Phone, iOS, Android and HTML5 development topics. If you haven't heard of it yet, check it out! You can expect the same fun and quality as with their other show ".NET Rocks!", which I'm sure you all know and are fans of :).
In the episode we talk a bit about Windows Phone in general, some of my open source projects, and then about the differences between Silverlight and XNA programming. We also spend a good amount of time talking about hybrid apps that let you combine both technologies and use the best of two worlds in a single application, and conclude with a short outlook on the future of XNA on the phone. Yesterday the recording went live, and you can now listen to the episode for free here:
http://www.thetabletshow.com/default.aspx?showNum=28
Talking to Carl and Richard was a really pleasant experience, and I hope we're able to convey the key points of XNA and Silverlight on Windows Phone to get you interested in more.
by Mister Goodcat
12. April 2012 17:30
In the first parts of the series about developing the SilverlightShow Windows Phone app I explained the general development process and the technical details of accessing and optimizing the RSS feeds of the site. Now that we are able to access all of the content from the phone, the next step is to take a look at what was necessary to display what we have to the user while preserving a native look and feel. If you haven't seen the app in action, here is a short video about it.
When you recall the details of the previous part or simply take a quick look at the RSS feeds of the SilverlightShow site again (sample), you will see that the content of each category (news, articles, events) is stored as fully formatted HTML already. All of it is produced by authors in WYSIWYG tools like Windows Live Writer and directly uploaded to the site's content management system. Even though we receive a slightly optimized and cleaned version of that rich content on the phone, it's still HTML. The fundamental decision to make hence was whether we would take that content as-is or transform it into something more native to the phone platform.
You can read the full article at SilverlightShow here:
Creating the SilverlightShow Windows Phone App: part 3
by Mister Goodcat
12. April 2012 00:00
In the first part of this mini series I was mostly talking about the process of developing the SilverlightShow Windows Phone application, and didn't discuss any of the technical specifics. Today I want to dive into some of the details around downloading and optimizing RSS feeds. I not only want to give you insight into the particular problems we were facing, but also some hopefully useful advice and guidelines should you ever want to develop a similar feature for your own application. If you haven't used or seen the app yet, you can watch a quick intro video here and find it on the Marketplace here.
You can read the full version of this article for free at SilverlightShow:
Creating the SilverlightShow Windows Phone App: part 2
by Mister Goodcat
10. April 2012 07:50
On the weekend various news sites reported that Windows Phone 8 is now starting to show up in the browser statistics of analytics services (e.g. here on WMPowerUser). To my surprise, this produced some negative reactions and comments. In the above linked article the first response, from a user named Julien, was:
1 year with no update when you play catch up is a joke anyway
And the first reply to that by someone named Arvydas Grušeckas reinforced:
Agreed. Microsoft is super slow. […]
Let's ignore the fact that "one year without an update" of course is far from the truth, and ask: is Microsoft really too slow with updates for the phone? I beg to differ. More...
by Mister Goodcat
5. April 2012 06:55
A new requirement has been established in the technical certification section for the Windows Phone Marketplace: Application Testability (5.1.4). Let's take a minute to look at the requirement in detail:
"The application must be testable when it is submitted to Windows Phone Marketplace. If it is not possible to test your application for any reason […] your application may fail this requirement."
The requirement then lists some items that apply to testability. For example, if using your application requires a user account, you need to provide test credentials the tester can use during the certification phase. Of course, the list provided there is not exclusive. Take my open source project PAARC as another example. It doesn't require a user account, but it is only really functional if you use the phone app in conjunction with a desktop application you want to control remotely. To this end, I provided a sample application and added the download link as well as detailed instructions for testers during submission. You can use the already available field for testing instructions in the certification process for this. In some cases you may even need to file a technical exception, for example if the app is only functional with additional external hardware.
One twist in this story is that you should not forget to remove, deactivate or suspend test accounts or any test infrastructure that you established for certification once the app has been accepted. To continue the sample of the certification documentation: you don't want anybody to find out how to create gift cards for free, or use a sample gift card code without paying for it, right?
In my opinion, providing sufficient information for testing, and making sure that the required infrastructure for your app (web services etc.) is available, up and running during the certification phase already, is only common sense. However, until now your app passed certification if parts of it couldn't be tested due to these issues. This will now be different and turned into the opposite: if testers are not able to access certain features of your app because required data or technical support is missing, it will fail certification.
So make sure that you keep this in mind, especially because at the moment (re-)certification of an app may take up to 7 calendar days due to the high volume of submissions – you don't want to wait twice just because you didn't provide a test account the first time, do you?