Round 1, fight! Windows Phone 7 emulator x VmWare

Hi Folks,

I have been using VMware Server (free edition under here) to run some 64bit machines under my Windows 7…

So basically my idea is to have some “heavy” stuff defined on a 64 bit machine like database servers, iis and so on… This has been working quite nicely until I run the Windows Phone 7 emulator…. Or actually even if a I run Virtual PC XP Mode…

Basically VMWare crashes all running virtual machines as soon as any other process using Hardware virtualization starts… The error is something like:
VMware Server unrecoverable error: (vcpu-1)VCPU 1 RunVM failed

Look the solution that VMWare recommends as resolution here:

“This issue can occur when you are running VMware Workstation and another organization’s virtualization software at the same time. Running Workstation and another organization’s virtualization software simultaneously on the same system is not supported.

VMware recommends uninstalling the other virtualization software to allow Workstation to operate without errors. “

 

OMFG, I would love to say this to my customers: Hey, our software is not running because competitor’s software is breaking it. The solution is to remove the competitor software! Hahaha! Life is not so easy! Mainly because in my case I’m talking about an Emulator which visual studio needs to connect and so on… Not so easy…

So I have been searching all around and I(not really, read on another blog) that it is all about the usage of Hardware virtualization… On Virtual PC you can just disable (or enable which is the best…) it very easy:

But what about the Windows Phone emulator??

Well, what I’m going to show next was the first solution that I found out by myself doing some trials to workaround this… At the moment I have the lattest Windows Phone Tools running(7.1 beta), so All paths will be referring to it… Basically I fould out that there are 2 files with extension “.decfg” on the XDE Folder:

 

I modified the first one, disabling the HW acceleration (EnableHWAssist):
<?xml version=”1.0″ encoding=”utf-8″?>
<WindowsPhoneEmulator xmlns=”http://schemas.microsoft.com/WindowsPhoneEmulator/2009/08/Configuration”&gt;
<EmulatorSettings>
<ConsoleWindow Reconfigurable=”static” Type=”bool”>false</ConsoleWindow>
<ZoomFactor Reconfigurable=”dynamic” Type=”dword”>66</ZoomFactor>
<Displacement>
<X Reconfigurable=”dynamic” Type=”int”>0</X>
<Y Reconfigurable=”dynamic” Type=”int”>0</Y>
</Displacement>
</EmulatorSettings>
<Board>
<CoreSystem>
<EnableHWAssist Reconfigurable=”static” Type=”bool”>false</EnableHWAssist>
<VTT>
<GuestQPF Reconfigurable=”static” Type=”dword”>10000000</GuestQPF>
</VTT>
</CoreSystem>
<Peripherals>
<VBUS>
<GPU>
<GPUEnabled Type=”bool”>true</GPUEnabled>
</GPU>
<Orientation>
<Enabled Type=”bool”>true</Enabled>
</Orientation>
</VBUS>
<PCMCIA>
<VMNetEnabled Reconfigurable=”static” Type=”bool”>false</VMNetEnabled>
</PCMCIA>
</Peripherals>
</Board>
</WindowsPhoneEmulator>

 

Next step after doing this is to create the new command line which will run the XDE. The one that I found out is:
XDE.EXE “C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Emulation\Images\WM70C1.en-US.bin” /decfg “C:\Program Files (x86)\Microsoft XDE\1.0\config_board0.decfg” /VMID {08F58FF1-69CE-4427-B8E7-D16FEEBD3791}

Where:

  • “C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Emulation\Images\WM70C1.en-US.bin” is the Image to load up
  • “C:\Program Files (x86)\Microsoft XDE\1.0\config_board0.decfg” is the modified setting file
  • {08F58FF1-69CE-4427-B8E7-D16FEEBD3791} is the ID of the machine…. Don’t ask me why?! I found out that there are two ID’s on my machine, under the “C:\ProgramData\Microsoft\XDE” folder.

I tried with both but it just allowed me to debug from Visual Studio when I renamed this first one…. Then it runned properly(made a full boot). Of course it runs slowler than normal, but at least my VM’s are still running! J

So basically what I’m going to do is just run this command line before I run Visual Studio. Then it will not launch the “default” emulator that kills all my vmware machines. Actually I tried also with VirtualBOX and same issue happened…

For now that’s it. I made this post in a hurry… Hope that it helps someone else that has this issues..

Things are getting interesting

Hi Folks!
I write this post exactly 10 days after Tfs On The Road was published on the Market Place. First of all I would like to thanks every supporter of the App. Iha!
I want to share some statics…
First thing to share is the number of downloads (source Reports from MSDN App Hub). On the first two days the App got more than 155 downloads! I think this is a reasonable number for my first app. J

And it is really coming from everywhere… Take a look:

country type units
Australia Free 7
Austria Free 1
Belgium Free 3
Canada Free 6
France Free 6
Germany Free 24
Hong Kong SAR Free 1
Italy Free 2
Mexico Free 4
New Zealand Free 1
Singapore Free 2
Spain Free 4
Switzerland Free 1
United Kingdom Free 10
United States Free 77

Source=MSDN AppHub

Besides this, the main App page(http://pcbl.de/tfs-on-the-road/) had about 620 Pageviews! I consider this also a good achievement due to my limited possibilities to actually share the app properly on some channels.

What really make things move faster are the folks that post something about the app to their friends. Some blogs that I found mentioning the App are:

http://blogs.msdn.com/b/briankel/archive/2011/06/07/tfs-on-the-road-a-new-windows-phone-7-app-for-team-foundation-server.aspx

http://blogs.msdn.com/b/slange/archive/2011/06/08/steve-s-newsletter-june-2011.aspx

http://blogs.msdn.com/b/buckh/archive/2011/04/10/odata-service-for-tfs.aspx

http://coolthingoftheday.blogspot.com/2011/05/on-road-again-with-tfs-on-road-free-wp7.html

http://it-republik.de/dotnet/news/TFS-on-the-Road-kostenlose-WP7-App-fuer-Team-Foundation-Server-2010-059408.html?utm_source=twitterfeed&utm_medium=twitter

There’s a lot more. Thanks for the support! Special thanks goes to Brian Keller, which really made a huge impact on this Traffic site(J) and also for the open channel to collect my feedback as a consumer of TFS Odata Services.

I could not forget also all the mentions on Twitter… Thanks Felipao(or Felipin?), André, Idevar, Alfredex, Kono, Lino and everyone else that I forgot to mention… J Thanks!

I’m happy with this scenario and I can see very nice steps ahead… I hope that soon I can release the new version of the App with the extensive chart supporting possibilities.

Let’s keep up the hard work! J

Improving TFS On The Road chart capabilities

Hi Folks,

During this weekend I have been playing around on charting possibilities on TFS On The Road.

Just for information, on this project I’m using the Silverlight Toolkit Chart component, which is doing a very nice job so far. To check some online samples form the Toolkit, click here. Really nice stuff.

I have been thinking on a way to allow the user generate some “quick” charts on the mobile. My idea is just to give the user the chart type possibilities and also the fields to generate the chart. The base chart settings screen looks like this:

For stacked charts you can use up to 2 fields. The chart types and fields are:

Once the user provides this information he can see his chart. When possible the charts are supporting drill-down navigation, which allows you to see the work Items behind a certain chart area.

To show this feature working I prepared one video to show it. Please take a look:

I still need to do some more testing and as soon as possible there will be an update available (the update version will be possibly 1.5.0).

I’m delighted to get your feedback on this feature.

The Show must go on…

Hi Folks,

Since the first release of the “TFS On The Road” I have been getting a very feedback from the community! Many thanks!

Today I just made a new branch on the CodePlex Project for the Version 2.0 of the App! Actually I just implemented a new and very important feature which will come on the next release: “Goto Work Item”.

Basically this feature allows you at any point to give a Work Item ID and then “jump” straight to it. To show it working I made one video:

As soon as more features appear, they will be shown here. Depending on the community feedback we might have one intermediate release between the current version (1.2) and 2.0. For now, that’s it.

I enjoyed this possibility to create videos and I’m going to make several other videos to present the TFS On The Road Features.

See you!

“TFS On The Road” now on Codeplex

Hi Folks!

First of all I would like to thank everyone for the feedback that I’m taking for this App. This is the kind of thing that makes things nicer!
To keep up the good mood, I have some news! I just finished the very first check-in of the “TFS On The Road” project on CodePlex.


http://tfsontheroad.codeplex.com/

As it is a project that I made mainly targeting the “TFS Community”, I think it is reasonable to share the source code with everyone. And better than that, I invite everyone that is interested to make it better. So this is a typical CALL TO ACTION. If you think you can contribute, just join us. The idea now is that we will plan and implement the features to the version 2.0.

Some of them are:

I alert that, as this was my very first WP7 project, the code needs some improvement. J I know that and it will come on the next release as well.

To some of the features it would be nice to start thinking to use “Mango” as the base. But this will be discussed later.

So that’s it! Just join the project team! Your contribution will be valuable.

Join us!

Announcing “TFS On The Road”

Hi all!

Have you been looking for a good TFS Client running on your nice WP7? So you will be happy to read this post!

I’m very proud and happy to announce one of the first Wp7 TFS Clients based on TFS OData Service !

TFS On The Road is the WP7 TFS Client that you were waiting for and it is completely FREE! You will be able to access a lot of data from your TFS in order to support you to take decisions “on the road”. The tree bellow shows the basic App Navigation Map:

Click here to download the App and access the TFS On The Road page that I prepared showing the key app features.

This is just v1! A lot more will come! Feedbacks are welcomed!

Application certified! Lessons learned…

No pain, no gain! J

I just got this mail! Iha! Now the app is certified and it is on the way to get published on the WP7 Market place!
It took a while until I got the application certified but now it is time to learn from my mistakes! J

So, here are some topics that I definitively learned!

  1. They will really test your app! Be sure of this! They will go over your app upside-down and they will potentially find that bug that only you know! J I’m really impressed with the quality of tests that the MS is doing on each app that is being published.
  2. Do not use any kind of trademark unless you have a clear approval to use it. You need to provide the information about this approval during the submission.

    A good example on this one is the mistakes that I made on my app using Visual Studio Logo and Sharepoint Logo (actually was an icon).

  3. There are people out there using the WP7 Light background (aka battery killer!)
    This means that you need to run the whole app with Light background. Just be sure that everything looks nice. Use all existing themes and brushes from WP7(http://msdn.microsoft.com/en-us/library/ff769552(v=vs.92).aspx)
  4. Test your app tombstoning deeply! This mean that you should check what happens case you press the “Windows” and “back” on every single screen of your app.
    It is important to be sure that you are not trying to set something on the phoneState that cannot be serialized/deserialized
  5. If your application needs some credentials to be accessed, be sure that you provide test ones during the certification process

    In my case I had to setup a test TFS project on Codeplex in a way that the MS guys could get access to run the application. Boring but required. If they cannot get into your app, it will not have the green-light!

  6. Make as much tests as possible before you submit!

That’s it! Now my next post will happen when the App gets officially published.

Where is my Binding UpdateSourceTrigger= PropertyChanged on WP7 Silverlight ?

WTF! Where is the UpdateSourceTrigger= PropertyChanged on WP7 Silverlight? J

I got surprised when I saw that there was no PropertyChanged option on the UpdateSourceTrigger… All I could see was Default and Explicit…

The Default behavior works like our “LostFocus” from WPF, where the value is updated only when the control loses focus. This works most of the time, but there will be situations that you need the value to get updated as soon as the control values changes (equivalent to PropertyChanged).

To achieve this behavior you will need to do:

Set the UpdateSourceTrigger to Explicit

When you say that it is “explicit”, basically you will have to handle it…. Next step is to add one event handler to your bound control. On my sample it is a TextBox.

On the event handler comes the magic:

 

private void TextChangedUpdateTrigger(object sender, TextChangedEventArgs e)
{
  TextBox txtbox = sender as TextBox;
BindingExpression bindingExpression = txtbox.GetBindingExpression(TextBox.TextProperty);
bindingExpression.UpdateSource();
}

The code above sets the binding explicitly! Great!!(or not so if you know what I mean) Anyway, this will give you the “PropertyChanged” like behavior…

That’s it for now!

BTW I found this solution on the very nice free book
Programming Windows Phone 7 from Charles Petzold. Read the whole book or jump to page 387 to know about this issue in particular.
J

The 3rd Failure…

Again! L

So this time only one bug was reported:

The thing is that I’m using MVVM Light and I made the mistake to just set one complete ViewModel object(inherits from MVVMLight.ViewModelBase) during a tombstone operation.

The issue is that the ViewModelBase parameterless contructor is protected… Then this failure happened. Taking a look on the web, this issue might be solved on next MVVM releases.

Source: http://stackoverflow.com/questions/3976170/issue-with-mvvmlight-viewmodelbase-public-parameterless-constructor-in-inherited

OK. In the end was my mistake to just save a complete viewModel to the phone state. Now it is fixed… I just submitted the app few minutes ago.

Let’s wait and see what comes next…

Failing the test(again)

Hi Folks!

Well… This is becoming too boring. J My app failed again… L

This time was Sharepoint!? I believe that they were mentioning to the icons that I was referring to Team project…. Here they are:



I think this time they really exaggerated…. But OK. I removed these icons and I’m using some “generics” now.

I hope that now they don’t come up with any complaints!

Besides that they detected one bug when the user has the background set to light… Who is really using this light background? This is a battery killer! J But anyway…

So this is the chart that they refer to. You can see that it is really hard to read the axis data….:

This was one mistake from my side. I fixed the backcolor to “black”… Everything looks ok when the phone background is dark… But when it was light…. So I just changed to use the {PhoneBackgroundBrush} and life is good.

 

OK… Application re-submitted… I hope that this time it gets the green light and gets published to the MarketPlace.

This certification process is a bit boring but I’m happy to see that the guys are really testing the app. That’s the only way to have a not so high # of bugged aps. J Let’s move on!