Wednesday, March 31, 2010
Windows Phone 7 Development links
I just followed a great TechDays Belgium session about Windows Phone 7 and I must say this definitely rocks …. and it is really easy to get started as all the necessary Windows Phone 7 developer tools can be downloaded from http://developer.windowsphone.com. There are basically 2 models for building applications for Windows Phone 7 – either using the XNA model or using the Silverlight model.
If you download the developer tools you will notice that they can be added to an existing Visual Studio 2010 installation or if you don’t have Visual Studio installed it will add Visual Studio 2010 Express for Windows Phone. The download also contains the Windows Phone Emulator as well as XNA Game Studio 4.0 – check out the Windows Phone 7 Training Kit on MSDN and the Windows Phone 7 Training Kit direct download.
Some interesting tidbits:
- Currently C# is the only supported programming language
- Windows Phone is cloud-ready – you might for example want to integrate XBox Live
- Windows Phone will only support 2 resolutions – 480x800 and 320x480
- Your windows phone is orientation aware - in Silverlight you will have explicit orientation events which you can use to manipulate the UI in your apps.
- Since the Windows Phone has a built-in accelerometer you will be able to program against it – using a standard API
- Windows Phone 7 supports multi-touch, again a new way to handle input both in XNA as well as Silverlight.
- Navigation uses pages
Related links:
- CTP release of the OData Client Library for Windows Phone 7 series
- Tips for using the OData Client Library for Windows Phone 7
- Charles Petzold’s ‘Programming Windows Phone 7 Series’ (Book preview chapter) http://download.microsoft.com/download/7/C/8/7C820C6F-C205-4ECF-B9F3-1505DD13F9BF/ProgWinPhonePreview.pdf
- Charlie Kindel’s blog (PM on the Windows Phone team) -http://blogs.msdn.com/ckindel/
- Windows Phone blog - http://windowsteamblog.com/blogs/windowsphone/
- Windows Phone Developer blog - http://windowsteamblog.com/blogs/wpdev/
Expect more info to come in the next days ….
Monday, March 29, 2010
MacBook, Windows 7 & MonoTouch
Sunday, March 28, 2010
Introducing Windows Phone 7 Series
The Windows Phone gets a high-level overview of the new application platform and a complete picture of the developer story. Learn about the developer tools, the application frameworks, the support for Silverlight, and the support for XNA.
For developing Windows Phone 7 application development we will need the following components installed.
1. Expression Blend 4 Beta
2. Windows Phone Developer Tools
3. Microsoft Expression Blend Add-in Preview for Windows Phone
4. Microsoft Expression Blend SDK Preview for Windows Phone
Here is pre-release documentation click here
For developers help Windows Phone 7 forum
For More information about development see here
Windows Phone 7 Series Developer General FAQ
Thanks for you time :)
SharePoint Saturday Belgium – 8th of may 2010
BIWUG is organizing the first ever SharePoint Saturday in Belgium.
When: Saturday 8th May 2010
Where: Hof Ter Helst, Kattenbroek 1, 2650 Edegem
We will welcome you as of 9 o'clock for a coffee and sessions will start at 9:30.
9:30-9:45 Welcome and Introduction
9:45 - 10:30 Visual Studio 2010 Tools for SharePoint (Karine Bosch)
10:40 - 11:30 LINQ to SharePoint (Serge Luca)
11:40 - 12:30 Client Object Model (TBD)
12:30 - 13:40 Lunch break with sandwiches and drinks
13:40 - 14:30 Sandboxed solutions (Steven Van De Craen)
14:40 - 15:30 MetaData in SharePoint 2010 (Joris Poelmans)
15:40 - 16:30 SharePoint, WCF Services en REST (Stéphane Eyskens)
16:30 - Closing drink
Don't hesitate to register now as registrations are limitted to 100 participants.
We really hope to welcome you!
Don't forget to also take a look at the SharePoint Saturday Belgium event site...
Wednesday, March 24, 2010
Good strategy Microsoft
I am quite sure that we will see some of the most requested features in the summer Beta (native SDK, copy/paste, database support) and everybody will be happy. Microsoft is on the right track, but there is still a lot to be done.
P.S. Do I watch too much Lost :) ?
Tuesday, March 23, 2010
WP7 Design - Application List


Being a device focused on "consumer" we expect that on the Marketplace there will be a lot of applications that will be free or cost nothing. So the consumer will install a lot of applications and keep them on the device. From this point of view iPhone is better organized as it has 16 icons per page . 5 pages on the Iphone would translate in 8 pages for WP 7.
Another aspect which I consider not optimum is the scrolling. The "partial scrolling" (not going from one page to another) gives a nice visual effect, but it's not optimizing the search because:
1. if I am scrolling means that on the current page/screen I didn't found the application that I am looking for so I don't need to see those icons anymore.
2. using partial scrolling I will never know exactly where I am and I am gonna loose myself (it happens a lot to me on my phone).
The concept of "full pages" that Apple used it's more practical. This way I will always know exactly where I am and (using some gui links) I could also jump directly to the page I'm interested in.
Anyway even with a "full page" navigation if I have a lot of applications it will not be easy to find what I search (especially if i don't remember the exact name of the application). It would be really nice to have a "real time" searching of the application name/attributes (something like "Search programs and files" in Vista and Windows 7). This functionality could also be implemented inside the bing search engine that should give us the possibility to choose between local search, web search or both).
One thing that I liked in WM 6.1 and older was the possibility to access Settings in just 2 clicks (Start-Settings). In 6.5 Settings icon got mixed inside the application list generating some confusion. It would be nice if we could have the Settings icon instead of the back arrow in the application screen of WP 7 (the back arrow is redundant cause I get the same result by pressing the windows button)
The next screen is just a concept (I am not a good designer so don't laugh about it) but in my opinion it would be a more practical approach for the Applications list.
Monday, March 22, 2010
WP7 Design - Call & End Call buttons
The first one is the decision to eliminate Call and End call hardware buttons in favor of Back and Search buttons. It is a strange choice to me (maybe someone could explain to me why) because the buyer is mainly buying a phone so it will mainly use it for calling. Sure the iPhone has only one button and it's selling very well but this doesn't mean that it cannot be improved.
There are two important reasons why I think they should put back the Call & End call hardware buttons:
1. It is a phone and I want to access the phone immediately from anywhere in just one click. In this moment I need at least two clicks (Window button + Phone icon) which makes me slower.
2.Almost every phone user it's used to end the call with a button without even watching the screen.
The back and search buttons are also important, but why not put them on the sides?

Off topic: What happened between HTC and Microsoft? Why isn't HTC one of the first 3 manufacturers? It is very strange as HTC was the only company that really innovated in the Windows Mobile area. Could it be because there is not much space left for innovation on WP 7 (from the manufacturer point of view) as it is a really closed OS for OEM? This way HTC won't be able to distinguish his phones from the ones produced by the other manufacturers! For LG (one of the newest manufacturers of Windows Phones), Samsung (never really created a best seller Windows Phone) and Asus (which is an old Windows Phone maker but never really invested a lot in this area) won't be a big problem if they will "share" sells of WP 7 , but on the other side more than 70% of HTC business is based on Windows Phone so they need to create "unique" phones that sell. Indeed lately HTC is releasing more Android phones than Windows Phones.
Sunday, March 21, 2010
BlockDevice
Saturday, March 20, 2010
Using MailServer for SharePoint 2010 development box
As you probably know SharePoint 2010 development is only possible on Windows Vista, Windows 7 or Windows Server 2008/2008 R2 (all 64 bit versions). I still prefer using Windows Server 2008 so I need POP3 mail server functionality to test e-mail integration and so on… I have used the POP3 extender from Visendo in the past for this but it did not work quite as fluent as expected.
I just finished installing a new SPS 2010 dev box so I decided to use SmarterMail – for a walkthrough about how to configure SmarterMail check out Reza’s blog.
Friday, March 19, 2010
Net CF 3.5 .exe on WP 7
The answer is very simple: NO for device applications MAYBE for console applications. The reason? There is no System.Windows.Forms library in .NETCF 3.7. Maybe a native application could run but you have to consider that's a new shell in WP 7 so some things changed. For netcf apps even if you could install the old NETCF it will still not work because the shell is different.
The only solution would be to install the old shell, but doesn't make any sense to do it.
So let's stick with Silverlight and XNA.
WP7 Emulator "Unlocked" - How to

So I eliminated the entries in the blacklist, but I also searched the guid presented in the list in the other registry files (.rgu) and also took it out from them.
Then there was the section HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Settings that got my attention:
If you look at the entries that have SecureItems you will see that looks exactly like the menus from the pda (main menu, programs and settings) so looks like the other entries are missing. Searching in the .rgu registry files looking for one of the guid that has SecureItems (the parent) I found *BF218E964AA0.rgu which inside deletes the entries:
So I added manually the entries to default.hv and eliminated from the .rgu file. I understood then that the data values is the order of the item. After searching some more I also found the file where they add the entries (but did not modified the order that I used for inserting) The file is -D53AC5900244.rguFor extracting the rom and put it back together I've used BOOFF posted by SonicFlare on xda. You will also need the dll compress.dll present in the Wince 6.0 Platform (this because some of the files in the rom are compressed, so you will have to decompress, modify and then compress it back.
Step 2: Make the sharedfolder work in the emulator
For whoever wants to have some fun with Step 2 this is what I've found out till now:
Looks like there is a similar mechanism to block the drivers also:
It is blocking MSFlash_NAND that in my opinion is used for the shared folder. I already tried to eliminate that but looks like there is something else missing. Maybe the section where you have to look is: HKEY_LOCAL_MACHINE\System\StorageManagerHave fun!
Thursday, March 18, 2010
WP7 Emulator "Unlocked"



I will also test it better tomorrow put I saw that it has a file explorer :) and a VERY nice task manager:
I have decided to take down the link because Microsoft could get upset and I don't really want that (if someone at Microsoft will tell me that it doesn't bother them I will put it back).Anyway I will explain later how I was able to do it (cause it was done for educational purposes only) and I think this won't cause me problems. Right? :)
WP7 Black Listed Applications
I am starting to understand the reason why they want the device so closed. Imagine if you would have access at the file system you would be able to modify the registry and remove the entries in the blacklist.
Anyway combining this mechanism with the update service gives Microsoft the power to remotely block/blacklist an application running on your device (something like Apple is doing now)
Looks like there is already the list explained:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\PackageManager\BlackList]
"{5B04B775-356B-4AA0-AAF8-6491FFEA5600}"=dword:0 ;Shortcut
"{5B04B775-356B-4AA0-AAF8-6491FFEA5602}"=dword:0 ;Say It
"{5B04B775-356B-4AA0-AAF8-6491FFEA5603}"=dword:0 ;Calculator
"{5B04B775-356B-4AA0-AAF8-6491FFEA5605}"=dword:0 ;~About
"{5B04B775-356B-4AA0-AAF8-6491FFEA5606}"=dword:0 ;~Date Time
"{5B04B775-356B-4AA0-AAF8-6491FFEA5607}"=dword:0 ;~Phone Lock Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5609}"=dword:0 ;Speed Type
"{5B04B775-356B-4AA0-AAF8-6491FFEA5610}"=dword:0 ;Text
"{5B04B775-356B-4AA0-AAF8-6491FFEA5611}"=dword:0 ;Call History
"{5B04B775-356B-4AA0-AAF8-6491FFEA5612}"=dword:0 ;Calendar
"{5B04B775-356B-4AA0-AAF8-6491FFEA5614}"=dword:0 ;Email
"{5B04B775-356B-4AA0-AAF8-6491FFEA5615}"=dword:0 ;People
"{5B04B775-356B-4AA0-AAF8-6491FFEA5616}"=dword:0 ;AccountsManage
"{5B04B775-356B-4AA0-AAF8-6491FFEA5617}"=dword:0 ;Word Mobile
"{5B04B775-356B-4AA0-AAF8-6491FFEA5618}"=dword:0 ;Excel Mobile
"{5B04B775-356B-4AA0-AAF8-6491FFEA5619}"=dword:0 ;PowerPoint Mobile
"{5B04B775-356B-4AA0-AAF8-6491FFEA561A}"=dword:0 ;SharePoint Mobile
"{5B04B775-356B-4AA0-AAF8-6491FFEA561B}"=dword:0 ;OneNote Mobile
"{5B04B775-356B-4AA0-AAF8-6491FFEA561C}"=dword:0 ;~Call Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA561D}"=dword:0 ;~Contacts Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA561F}"=dword:0 ;~Cell Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5620}"=dword:0 ;~Bluetooth Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5621}"=dword:0 ;~Flightmode
"{5B04B775-356B-4AA0-AAF8-6491FFEA5622}"=dword:0 ;~Office Mobile Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5623}"=dword:0 ;~Wifi Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5624}"=dword:0 ;~OBExParser
"{5B04B775-356B-4AA0-AAF8-6491FFEA5625}"=dword:0 ;~Find My Phone
"{5B04B775-356B-4AA0-AAF8-6491FFEA5626}"=dword:0 ;~Backup Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5630}"=dword:0 ;Zune
"{5B04B775-356B-4AA0-AAF8-6491FFEA5631}"=dword:0 ;Camera
"{5B04B775-356B-4AA0-AAF8-6491FFEA5632}"=dword:0 ;Pictures
"{5B04B775-356B-4AA0-AAF8-6491FFEA5633}"=dword:0 ;Marketplace
"{5B04B775-356B-4AA0-AAF8-6491FFEA5634}"=dword:0 ;Games
"{5B04B775-356B-4AA0-AAF8-6491FFEA5635}"=dword:0 ;Picture Camera CPL
"{5B04B775-356B-4AA0-AAF8-6491FFEA5640}"=dword:0 ;~Device Update Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5641}"=dword:0 ;~Location Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5642}"=dword:0 ;~Location Settings
"{5B04B775-356B-4AA0-AAF8-6491FFEA5661}"=dword:0 ;Maps
"{5B04B775-356B-4AA0-AAF8-6491FFEA5671}"=dword:0 ;Convert
"{5B04B775-356B-4AA0-AAF8-6491FFEA5672}"=dword:0 ;StartKITL
"{5687D2BD-E507-46ff-84FD-FBE296DAF170}"=dword:0 ;~brightness
"{4e466928-cdd9-438e-be16-3b2dfb18cbc9}"=dword:0 ;~sounds
"{eec1f6e1-c3b6-4da6-bbf6-0aaee694f7a1}"=dword:0 ;~about
"{3B1D7EA1-F8F2-434c-B09B-116589ED54AE}"=dword:0 ;Alarms
"{be937011-98b7-45d2-9735-6828d4c9a750}"=dword:0 ;SystemInfo
"{D76C40E0-616D-4e29-929C-B40697732696}"=dword:0 ;OfficeUrlStartToken
"{534c16be-a6d3-4560-a537-f5c9ccdb6ddc}"=dword:0 ;Microsoft Office
Maybe if we could remove those entries and rebuild the ROM image we will be able to run all the built in applications.
WP7 Under the hood - Part 1
1. The new shell program it's called telshell.exe (the old one was shell32.exe). This is how the init sequence looks for the emulator:
"Launch20"="device.dll"
"Depend20"=hex:06,00
"Launch21"="coldinit.exe"
"Depend21"=hex:14,00
"Launch30"="gwes.dll"
"Depend30"=hex:15,00
"Launch35"="coreoslaunch.dll"
"Depend35"=hex:1E,00
"Launch40"="telshell.exe"
"Depend40"=hex:23,00
"Launch41"="ssupdate.exe"
"Depend41"=hex:28,00
"Launch55"="dmsrv.exe"
"Depend55"=hex:15,00
"Launch60"="servicesStart.exe"
"Depend60"=hex:14,00
"Launch61"="ciphase2.exe"
"Depend61"=hex:28,00,3C,00
"Launch95"="cprog.exe"
"Depend95"=hex:3D,00
"Launch98"="EmulatorStub.exe"
"Depend98"=hex:14,00
"Launch140"="k.mscoree3_7.dll"
2. The second interesting fact is the presence of the program ssupdate.exe which I think it's the UpdateAgent. In fact looking at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows we find DeviceUpdate\Agent and inside Protocol we have:
"MuReDirCabUrl1"="http://wm7dudftest/TestTrust/duredir.cab"
"MuReDirCabUrl2"="http://download.microsoft.com/WM/7/microsoftsupdate/redir/duredir.cab"
"MuReDirCabUrl3"="http://windows.update.microsoft.com/WM/7/microsoftsupdate/redir/duredir.cab"
"ReportingServerUrl"="http://test.stats.update.microsoft.com"
So it seems like Microsoft will be able to update the devices using Windows Update Service. Of course right now none of the links works.
3. The Silverlight version currently running on the emulator is "Version"="3.0.41020.0"
4. There is explorer.exe inside the image file. It would be enought to change default.hv and inside the Init sequence put explorer.exe to launch. This way we would have access to the file system
Still digging.....
Wednesday, March 17, 2010
WP7 Emulator Build 7.0.0.6077
"C:\Program Files\Microsoft XDE\1.0\XDE.exe" "C:\Program Files\Microsoft SDKs\WindowsPhone\v7.0\Emulation\Images\WM70C1.bin"
So the new Device Emulator changed name in XDE (version 10.0.30128.39) and we have the bin file that contains the emulator image. I then remembered that you can extract the files from a bin image, but the guys at XDA were already ahead. They made a dump of the ROM files. A lot of people are digging up and we might see some interested things in the next couple of days.
This is what I've found out. The new OS, build 7.0.0.6077, has NET CF 3.7 embedded. I then remembered that there was a CF 3.7 cab version that was running on WM 6.5 and I got this "crazy" idea that I have to try... What if we could run the Silverlight applications that we compile for WP 7 on WM 6.5? I'm gonna dig this up tomorrow.
Anyway in the dump files I could find the Silverlight assemblies:
GAC_System.Windows.Browser_v2_0_5_0_cneutral_1.dll 129.328
GAC_System.Windows.RuntimeHost_v2_0_5_0_cneutral_1.dll 35.120
GAC_System.Windows_v2_0_5_0_cneutral_1.dll 1.038.640
that might just work on WM 6.5
and also the XNA assemblies:
GAC_Microsoft.Xna.Framework.GamerServices_v4_0_0_0_cneutral_1.dll 112.088
GAC_Microsoft.Xna.Framework.Game_v4_0_0_0_cneutral_1.dll 71.128
GAC_Microsoft.Xna.Framework.Graphics_v4_0_0_0_cneutral_1.dll 189.912
GAC_Microsoft.Xna.Framework.Input.Touch_v4_0_0_0_cneutral_1.dll 34.264
GAC_Microsoft.Xna.Framework_v4_0_0_0_cneutral_1.dll 382.424
XnaFrameworkCore.dll 357.848
XnaFrameworkCore.dll it's a native file so I think we would need one from a real device not emulator.
There is also SQL Ce Compact 3.5
GAC_System.Data.SqlServerCe_v3_5_1_0_cneutral_1.dll the version is 3.5.5722.1
And more managed assemblies:
GAC_Microsoft.Devices_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Controls.Navigation_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Controls.WebBrowserInterop_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Controls.WebBrowser_v1_0_0_0_cneutral_1.dll
GAC_Microsoft.Phone.Controls_v1_0_0_0_cneutral_1.dll
GAC_Microsoft.Phone.Execution_v1_0_0_0_cneutral_1.dll
GAC_Microsoft.Phone.Info_v1_0_0_0_cneutral_1.dll
GAC_Microsoft.Phone.License_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Notification_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Shell.Interop_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Shell_v1_0_0_0_cneutral_1.dll
GAC_Microsoft.Phone.TaskModel.Interop_v2_0_5_0_cneutral_1.dll
GAC_Microsoft.Phone.Tasks_v2_0_5_0_cneutral_1.dll
GAC_System.Device.Location_v2_0_5_0_cneutral_1.dll
GAC_CaptureApiManaged_v1_0_0_0_cneutral_1.dll
It's a start...We can look a little under the hood of WP 7 and see how it is designed. Pretty interesting, right?
WP7 Series - Phone Interface
But let's go back to the phone interface. I always thought that Microsoft will learn from the mistakes he made and will get a decent phone interface. Let's start with Windows Mobile 6.1:

HTC understood that this interface was a real problem for selling massmarket devices so they rewrote the interface:

After they saw the "decent" phone interface developed by HTC Microsoft didn't learned too much and released in 6.5 a better interface than the standard in 6.1 but worse than the one created by HTC

Really nice big buttons that you can press easily, essential information (I can always see the clock cause I want to know if it's not too late when I am dialing someone, or if someone calls me), the battery power and also the power of my radio signal. Nice modern UI. Anyway I think both iPhone and Android interface could be improved.
Let's see a little the WP 7 Phone interface as it is today:

The button size is ridiculous, a lot of unused space, essentially information missing. The only thing that I like is the dial-pad buttons. Remember that your potential client is buying a phone and after that everything that comes with it. If it isn't a decent phone he won't buy it.
I hope someone from Microsoft will read this post and start treating the phone interface as one of the most important pieces of the device (especially now that the OEM will not be able to personalize it). You got the background right (with silverlight you can develop awesome UI), so don't ruin it. We, developers, need that you get WP7 right as some of our work depend on it.
P.S. Going home to watch episode 8 from Lost - The final season Simplified by Windows 7 :)
Tuesday, March 16, 2010
Sqlite for WP 7 Series - Proof of concept
What I've developed is a proof of concept application that implements Sqlite db engine inside Windows Phone 7 series. I've used csharp-sqlite developed by noah.hart and modified it to work with IsolatedStorage and WP7 Phone Tools CTP.
After some initial struggle with the library I wrote a simple test program:
csharp-sqlite.wp.zip
My first post
Wednesday, March 10, 2010
Folksonomy and Taxonomy – do you have to choose?
With the introduction of SharePoint 2010 and the way that it supports free tagging (folksonomy) as well as a centrally managed controlled vocabulary (taxonomy) using the managed metadata column – the debate about taxonomy versus folksonomy will probably light up again. In my personal opinion – there is no need to choose between one of both. The way that SharePoint 2010 supports the notion of promoting free tags into a managed taxonomy demonstrates that a folksonomy can be used as a source to define a taxonomy as well.
Related links:
- Folksonomy versus Taxonomy
- Taxonomy driven folksonomy
- The holistic web – Taxonomy versus folksonomy
- Knowledge Management – Some thoughts on Folksonomy versus Taxonomy
- Ontology is overrated: Categories, Links and Tags
- About taxonomy, folksonomy and SharePoint
- Just enough taxonomy
Saturday, March 6, 2010
SharePoint 2010 – launch May 12th, RTM in April
Just picked this up from the SharePoint team blog – SharePoint 2010 & Office 2010 Launch:
Today, we officially announced that May 12th, 2010, is the launch date for SharePoint 2010 & Office 2010. In addition, we announced our intent to RTM (Release to Manufacturing) this April 2010.
It’s an exciting time for us! We hope you can virtually join us on May 12th at 11am EST to listen to Stephen Elop, President of the Microsoft Business Division, announce the launch. You can register for the event @ http://sharepoint.microsoft.com/businessproductivity/proof/pages/2010-launch-events.aspx.
Arpan Shah
Director, SharePoint
Thursday, March 4, 2010
BIWUG on SharePoint 2010 revisited
I have just upload the presentations and the code sample from Stephane on SPLinq to the BIWUG site – if you want to see the sessions again – don’t forget to take a look at the BIWUG on SPS2010 recordings



