Have you ever create an application where you want to share resources between them but you had to create multiple libraries to because those project use different compiler? If your like this often happen. In my case we face that issue. To solve the issue we had to create multiple libraries and refer class using linked files in the project. This is what we have to do in some project where we have a Silverlight 4 app and a Windows Phone 7 app. But this is not the most efficient way to do it.
Microsoft is now offering a solution for that kind of issue. The solution is called Portable Library, which is currently in CTP. So now you can create a single class library in which you can select which kind of project it should be compatible with. You should give it a look, because this may help you solve many issue and save times related with having common class libraries for multiple technologies.
To download the tools: http://visualstudiogallery.msdn.microsoft.com/b0e0b5e9-e138-410b-ad10-00cb3caf4981/
For more information:
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.
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.
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
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
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.
- About Prompt
- Input Prompt
- Progress Overlay
- Round Button
- Round Toggle Button
- Memory Counter
- TimeSpan Picker
- PhoneHelper for getting data out of the WMAppManifest file
- Boolean to Visibility
- String To Visibility
- Themed Image Converter
- Inversed Theme Image Converter
- Visibility to Boolean
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.
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/
When we develop an application for Windows Phone 7. One of the problem that a developer will face at the most is the circular navigation. On the phone, the navigation service handle the stack used by the back button. So each time we call the method Navigate of the NavigationService, a new entry is stored in the stack. On the other side there are some rules that a developer must follow to pass the certification on the Marketplace:
- circular navigation is not allowed
- the back button on the home page must exit the application.
There is some times that the scenarios doesn’t fit the rules for the Marketplace. So we end up more often with a circular navigation. Also which doesn’t help, it’s that we don’t have access to modify the navigation stack. This issue probably occurred very often in the certification process. First because, the developer did look at the Requirement documentation before creating his application. And second, because there is some times that the limitation doesn’t give us much choice.
(Image taken from the Windows Phone team blog)
So Microsoft listen and provide us with a solution. I’m glad because i had to use it in one of our application recently. The solution is pretty simple, we have to add a class in our application. Instantiate that class in the App class (App.xaml.cs). After what, we continue to handle the navigation as usual, but if we forgot to handle the back navigation or we face a scenario where we cannot handle the back navigation properly, we just have to navigate to the desired page (ex: navigate to the home page). At that time, if the class identify a circular navigation it will automatically handle the back navigation for us until we end up to the specified page.
But don’t be to lazy, and don’t rely on that mechanism. You should be aware of the Marketplace requirement first and follow them. But if in a specific case you don’t have a choice then you have a solution.
Get the code:
Get more information about the non-linear navigation:
I hope this will help you.