Hi Canadian Windows Phone developers!
This year Microsoft Canada, created a nice contest (based on some post i saw on the web, other country are pretty jealous of us). So if you ever wanted to create apps for the Windows Phone, it now time to do so. So by publishing some nice apps, you may be rewarded with some cool prizes ( and yes they are very cool!). You can read all the information on the following website : http://www.developermovement.com/. Do like me and start find some ideas and create nice applications for one of the best phone!
Last week i find something nice. If you have an XBOX there is an advertisement for the Developer Movement. When you go, it give you some info about the contest and you can grab the wallpaper for your dashboard and a player picture. See some pictures :



I hope to install some of your nice apps!
Regards,
LP
Building an application 100% bullet proof is somewhat something impossible, mainly in when the application can be use by wide range of customer. In Windows Phone, we are affected by the device, the connectivity, the lock screen, etc.). In some combination of event an error can occurred that have not been tested.
So my philosophy about that is to be pro-active. So i don’t want to wait the complaint of customer, i want to know when an error occurred with as much information to help me reproduce the problem to finally fix the issue.
To achieve this goal, there is some analytics component available for Windows Phone 7. Some of those are able to tracking the errors that might occur in your application. But i find out a nice component, that do the a really great job.
BugSense is a really simple component. When i mean simple, it’s really simple add the component and add 1 line of code in the App.xaml.cs and your done. The component can be download as standalone package or you use NuGet to install the package.
Here is a screen of the only line of code that is required by the component.

On the website you have access to a nice Dashboard that will provide you with a lot of information about the error and the recurrence.





You can if you want replace the default UnhandledException event with the event that is built-in the component, you can do it:
public App()
{
BugSenseHandler.Instance.Init(this, "Your_API_Key");
BugSenseHandler.Instance.UnhandledException += OnUnhandledException;
//UnhandledException += Application_UnhandledException;
...
}
You can also trap the exception in your try..catch statement:
try {
//Some code to execute
}
catch (Exception ex) {
BugSenseHandler.HandleError(ex);
}
So what happen when there is an error, the user will get notified and a report will be sent to the BugSense so you can get notified and review the error. As you can see there is some options, that allow you to control the popup window that show up by default (yes you can turn it off if you want).

Once an error is logged you indicate in your account to receive Email notification. Which is a good idea when you want to have a nice application (that don’t bug too often
).

It’s the first time i use this component and I'm very impressed by the quality of the tools and all the feature it provide (client side and server side). What to say more … I'll use it in future applications. Oh yay … i practically forgot that it FREE. www.bugsense.com
Regards,
LP
Recently I've been working on a project and we discovered something that have some impact on the performance of a Windows Phone application. This is probably a mistake that we did when implementing the code, but it may be the kind of mistake that many developer will do.
Quickly, each time we were calling the web service we were validating the network connectivity by validating the property “ NetworkInterface.NetworkInterfaceType ”. Behind that property, there is a process that validate the connectivity. This process is calling a page “http://www.msftncsi.com/ncsi.txt” to see if there is any connectivity and which type of connectivity. But the problem is that is done synchronously. So in our case we were calling multiple times this process, which result to execute the process of validating the Url mention before synchronously multiple times. So each web service call must wait for the network validation before executing the call. And because it’s on the web the response can be fast and can also be very long before we get the response.
In our case we did implement a wrapper that make sure that the call is not done to often. This help us improve the performance of the application start-up. Also this help to improve activation process after the application Tombstone.
So make sure to validate our Windows Phone 7 application by using a tool like fiddler. This will help you improve the performance and stability of your application.
Regards,
LP
Almost 4 month have passed since the release on the market of the Windows Phone devices. With now over 8,000 apps, a lot of code have been written. So many controls manufacturer have release controls for Windows Phone 7. Some are free and some not. But in the end the is now a good set of controls available on the market to help the developer to build nice and appealing application.
Silverlight Toolkit for Windows Phone (Free)
Recently, the Silverlight Toolkit for Windows Phone was update. This release provided some new controls and some improvement on the existing controls.
New feature:
- TiltEffect
- PerformanceProgressBar
Download: http://silverlight.codeplex.com/releases/view/60291
More information: http://www.jeff.wilcox.name/2011/02/feb2011-sl4wptk/
Telerik RadControls for Windows Phone (Paid)
Telerik is also providing some nice controls. Telerik provide nice transition and animation controls. We used some of those controls some of our recent project. They are currently in beta but they are working like RTM product. I had the chance to be in contact with the dev team to help us solving some issue in the beta and i can tell you that the team is really dedicated to provide the best controls.
- Application Frame
- Transition Controls
- many more
Download: http://www.telerik.com/products/windows-phone.aspx
Sample App: zune://navigate/?phoneAppID=fd55f526-d6f7-df11-9264-00237de2db9e


Component Art (Paid)
Last week ComponentArt released a version of their Data Vizualisation for Windows phone. This set of controls looks very nice (i didn’t time to test the control, but i will review the controls in a couple of days). If you plan to create a dashboard with some Charts, Gauges, Maps, Gridviews, etc i suggest you to give a look at this set of controls.
Sample App: zune://navigate/?phoneAppID=e13ba532-242b-e011-854c-00237de2db9e
Download: http://www.componentart.com/products/dv/wp7.aspx



Coding4Fun Tookit (Free)
This open source project provide some nice feature that are not available in any other project. This project is a good complement and a good base for any Windows Phone project.
Controls:
- About Prompt
- Input Prompt
- Progress Overlay
- Round Button
- Round Toggle Button
- Memory Counter
- TimeSpan Picker
Data Helper:
- PhoneHelper for getting data out of the WMAppManifest file
Converter:
- Boolean to Visibility
- String To Visibility
- Themed Image Converter
- Inversed Theme Image Converter
- Visibility to Boolean
Download: http://coding4fun.codeplex.com/



WP7Contrib (Free)
This set of controls provide feature that help to work with MVVM Light. The feature are mostly behind the hood, like Cachine, Messaging, Service and some ui controls.
Download : http://wp7contrib.codeplex.com/
Developing application for Windows Phone 7 can now be done using some controls (without having to create them manually). Those controls provides rich visual and are easy to implement. So creating a portable dashboard for a sale department or a social network application is now an easy task with all those controls. So give it a try, like we did in our projects.
Regards,
LP
This weekend a group of person release the first beta version of the WP7Contrib component. This component provide some helper which help simplify WP7 development. They also included some UI controls.
This component is build to work seamlessly with MVVMLight. They integrated some other framework like JSON.NET, Silverlight Serializer and Reactive Extensions for .NET (Rx).
Let give a try: http://wp7contrib.codeplex.com/
Regards,
LP