Saturday, November 06, 2010
Smartphone Essentials WP7 Article - not completely true...
I have to say the authors for this magazine need to do more research before they publish this stuff. Windows Phone 7 Series is not "Brand new from the ground up". The magazine was suggesting that WP7 is a completely new OS built from scratch. This is simply not true. When people read this, they generally assume 1 thing, it's brand new so it will be full of bugs and issues so I'm going to wait for v.NEXT.
Windows Phone 7 series has a new shell and application framework that is fully managed code that sits on Windows CE 7 OS. Windows CE is the same OS used in Windows Mobile except in Windows Mobile the latest version used is Windows CE 5.2.
The other thing that is not true was that fact they mentioned Windows Mobile is dead. Windows Mobile is still being sold and is still supported by Microsoft today. It will be renamed soon to Windows Embedded Handheld which is essentially still the same Windows Mobile shell OS.
There is still a fairly large enterprise market with investments in Windows Mobile that are being used for mission critical applications today and will continue to do so. Windows Embeded Handheld will be geard towards business users. Some Windows Mobile devices such as the MC65 and ES400 will port over to the new OS.
Smartphone Essentials: just because Windows Mobile is not competing too well against platforms such as Android and the iPhone in the consumer markets, doesn't make it a dead platform. There is another world out there.
Thursday, September 02, 2010
No need for server side clientaccesspolicy.xml when using Silverlight for Windows phone 7 Series
Then you would typically define a method that looks like the following that is accessible via a RESful call (if using WCF) - note: the UriTemplate here is what is important:
[OperationContract, WebGet(UriTemplate = "/clientaccesspolicy.xml")]Executing any method from within a desktop Silverlight app whether in-browser or out-of-browser (SL 3 feature) will call that method above implicitly by the SL HTTP stack.
Stream GetClientAccessPolicy();
When calling any web method from a Windows phone Silverlight application, the 'GetClientAccessPolicy' is not called so there is (currently no need for it if your clients are from WP7 apps).
I'm not sure if this will change when the WP7 tools RTM on the 16th September - I will be the first to try!
My colleague Anthony Cooper found this out, so thanks to him.
Windows Phone 7 Series released to RTM
Excellent work to the Windows Phone team!
So now we wait for OEMs to produce some hardware...not long I'm sure.
The tools RTM on 16th September: http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/08/23/a-developer-s-roadmap-to-windows-phone-7-launch-timing.aspx
Wednesday, July 28, 2010
Building your Windows Phone 7 Series apps using Team Foundation Server 2010
So the ultimate question is, how do I build my Windows Phone 7 Series apps on TFS and perhaps run unit tests against a Windows phone 7 series emulator. The short answer is you can't, well that's not entirely true. You can build your Windows phone 7 series apps on TFS so long as you install the developer tools on your build server.
Bear in mind when you install the developer tools you will not only get all the required build targets and Silverlight framework for Windows phone 7 series but also a VS2010 IDE as well. This will either be VS2010 Express edition if you don't already have VS2010 RTM installed on your server, or the tools will integrate into VS2010 RTM (if installed). Either way, you are going to get an IDE on your build server.
This might sound rather ugly and I have asked Microsoft for separation of the tools/framework etc from the IDE so ISVs/consultancies can be more flexible how they build their apps. But this is really not high on Microsofts priority list right now. The reason is simple. These tools are targeted toward consumers, so the majority or at least what Microsoft would like is the majority of people building apps/games for Windows phone 7 series are individual programmers whether professional or ameteur and not big companies. Long term this will change.
Instead, the priority is to deliver a really quick and easy way to get up and running building Silverlight or XNA apps for Windows phone. And Microsoft has done this. Simply go to http://developer.windowsphone.com/ and you can download a single package, run it and this will set your machine up ready to build and ship apps on the Windows phone platform. No other downloads are required.
The cool thing about this is, unlike Windows Mobile development, the tools are free. A great step forward.
So to recap, in order for more professional programmers to build Windows phone apps using a sophisticated continuous integration yada yada solution, you need to install the tools on your build server, but you will get the IDE as well.
I also mentioned unit testing. Currently the latest beta tools do not support unit testing on the emulator. Of course you can still write unit tests that execute on the desktop against your Silverlight for Windows phone apps. I have a sample of this over at http://wp7.codeplex.com/
Happy coding!
Sunday, July 18, 2010
Windows Phone 7 Extension Tools
I have created a project on codeplex: http://wp7.codeplex.com/. The solution so far contains an IoC with support for implicit dependency injection - in fact this is a port from the Compact Container on the CF. It also contains a port of the Common Service Locator for the desktop by the p&p team at Microsoft.
The project is designed to be a work in progress and I'll add stuff to it if I think it might be useful to others.
I do plan over the next couple of days to add an event aggregator to the solution that will integrate with the container nicely to promote nice loosely coupled multicast event model in your Silverlight applications.
I am also working on an API that allows communication with the Microsoft Azure Service Bus - much like you get on the desktop. I will checkin as soon as it is available.
The current solution that is checked in is designed to be used with the latest release of Windows Phone developer tools beta.
Friday, July 16, 2010
Windows phone virtual live class - July 20th and July 22nd
Course sessions:
July 20 – 8am: Session One: Getting Started with Microsoft Windows Phone and Silverlight
July 20 – 1pm: Session Two: Programming Game Applications with XNA
July 22 – 8am: Session Three: Programming Applications with Silverlight
July 22 – 1pm: Session Four: Review and Wrap Up
Wednesday, July 14, 2010
Pivot and Panorama support in Windows phone 7 beta

Now if you want the sample WeatherForecast app to run you need to do 1 last thing. That is the ApplicationBarIconButton class now has a mandatory Text property so you need to set this property for each of the buttons in the MainPage.xaml file.
Now once I clean up all that XAML, I rebuild and run and I get...

Another nice cool thing with this emulator over the older Windows Mobile emulators is that you can do a ALT+Prnt Scrn to get a copy of the current focused window. You can't do this on Windows Mobile emulators.
Windows phone UK User group

I just learn't there has recently been a Windows phone 7 UK user group setup. The first meeting is 28th July at Conchangos offices in London. http://wpug.net/.
Microsofts Paul Foster and Rob Fonseca-Ensor will be speaking. There is now a wait list on the event but worth a try right!
Monday, July 12, 2010
First impressions Windows Phone Developer Tools beta

However this build is good. I'm running VS 2010 Ultimate and VS 2008 Team Suite and this build integrated with VS 2010 RTM nicely.
Windows Phone Developer Tools Beta is here
Check out this post on breaking changes from CTP to Beta: http://blogs.msdn.com/b/jaimer/archive/2010/06/28/migrating-apps-from-windows-phone-ctps-to-the-beta-build.aspx?wa=wsignin1.0
I'll post my feedback once I've installed it and tried it out.
Notice this under "System Requirements:"
This Beta of the Windows Phone Developer Tools is compatible with the final version of Visual Studio 2010
This has made my day :)
Thursday, May 27, 2010
Wednesday, March 24, 2010
MVVM - Windows phone 7 series pattern of choice
It is very much a different way of thinking when designing UI architecture although very similar to Fowlers relatively new Presentation Model pattern.
http://msdn.microsoft.com/en-us/magazine/dd419663.aspx
Implementing an IoC container in Silverlight on Windows phone 7 series
I mentioned in that post that I was using the CompactContainer for the CF freely available here: http://code.google.com/p/compactcontainer/ But now as I'm getting into Silverlight as it's the technology of choice when building applications for the Windows phone 7 series platform (as well as XNA), I needed an IoC container to solve the same problems on Silverlight as they do on the Compact Framework.
So I tried to port the container along with the ServiceLocator as blogged about before. I recieved errors in the ComponentCollection class after I tried to compile under Silverlight. Mainly because the following predicate methods such as:
- List
.FindAll - List
.Find
Are not supported in Silverlight 3 as the documentation suggests. However, they are in XNA. As the generic List class belongs to mscorlib.dll (System.Collections.Generic) I noticed that mscorlib is shared for both XNA and Silverlight applications on WP7. I'm trying to find out why this is, or if there is a way of making those methods work in Silverlight.
Anyway it's not the end of the world that those methods are not in Silverlight, all I had to do was replace the following methods in the ComponentCollection class:
public List<ComponentInfo> GetComponentInfoListFor(Type serviceType)With the following code:
{
return _list.FindAll(ci => ci.ServiceType == serviceType);
}
public ComponentInfo FindForService(Type serviceType)
{
return _list.Find(ci => ci.ServiceType.Equals(serviceType));
}
public ComponentInfo FindForClass(Type classType)
{
return _list.Find(ci => ci.ClassType.Equals(classType));
}
public ComponentInfo FindKey(string key)
{
return _list.Find(ci => ci.Key.Equals(key));
}
public ListThat was all I had to change everything else just compiled and worked. Full dependency injection worked as per on the Compact Framework. It seems moving to Silverlight is going to be less painful than I originally thought!GetComponentInfoListFor(Type serviceType)
{
List<ComponentInfo> results = new List<ComponentInfo>();
foreach(ComponentInfo component in _list)
{
if (component.ServiceType == serviceType)
results.Add(component);
}
return results;
}
public ComponentInfo FindForService(Type serviceType)
{
ComponentInfo result = null;
foreach(ComponentInfo component in _list)
{
if (component.ServiceType == serviceType)
{
result = component;
break;
}
}
return result;
}
public ComponentInfo FindForClass(Type classType)
{
ComponentInfo result = null;
foreach (ComponentInfo component in _list)
{
if (component.ClassType.Equals(classType))
{
result = component;
break;
}
}
return result;
}
public ComponentInfo FindKey(string key)
{
ComponentInfo result = null;
foreach (ComponentInfo component in _list)
{
if (component.Key.Equals(key))
{
result = component;
break;
}
}
return result;
}
Tuesday, March 16, 2010
Windows Phone 7 Series emulator is running slow
To determin whether you have DirectX10 support and at least DDI10, run DxDiag.exe from the command-prompt and inspect the Display tab.
So what next, ok so I learned that in order for the emulator to make use of the GPU host from the VM I needed to enable HW virtualization. So how do I know if I have this enabled? this is enabled at BIOS level and normally disabled by OEMs by default. You can run the Microsoft Hardware-Assisted Virtualization Tool here: http://go.microsoft.com/fwlink/?LinkId=163321
So after running this tool I got the above. So this confirms that I didn't have hw virtualization enabled. After enabling it in the BIOS my Windows Phone 7 Series emulator is now running much faster!
More details about this process here (not WP7 specific): http://www.microsoft.com/windows/virtual-pc/support/configure-bios.aspx
New Windows phone series 7 forum
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/
Monday, March 15, 2010
Windows Phone Developer Tools CTP now available!
http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&displaylang=en#filelist
Friday, February 19, 2010
Thursday, February 18, 2010
It's Windows phone 7 Series time at MIX this year
I just wish I was going, perhaps if I can find a cheap flight.....
Note: Windows phone sessions to be confirmed...
http://live.visitmix.com/
Tuesday, February 16, 2010
Windows Phone 7 Series Announced at MWC


I have to say the platform looks awesome. It looks very Zune HD like which is partly to do with the fact that Joe Belfiore is on the design team.
The best publicly available video to date that shows the platform UX is over on channel9 here:
http://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/
Dev Story:
If you're expecting to hear about the developer story or anything to do with the application platform then you'll be disappointed. Microsoft has not made any thing public regarding tools, frameworks etc for the new wave of Windows Phone 7 Series products. Microsoft is gearing up to tell the community about the developer story at MIX in Las Vegas on March 15-17. For sessions on Windows Phone 7 Series at this event see here.
For developer story announcements keep an eye on Charlie Kindels' blog as he is responsible for the Windows Phone 7 Series application platform.
The Windows team blog has a post on the announcement here.
The Windows Phone twitter hashtag is: #wm7