February 2006 - Posts
The Windows Sidebar technology is back in the latest Vista CTP build, I'm still to be totally convinced with giving up screen real-estate to a sidebar. Bradon LeBlanc has more screenshots in his preview and don't forget the PDC slides on Sidebar development.
Microsoft Research did a project years ago "Designing and deploying an Information Awareness interface", the idea of small updating panels which offer peripheral UI for notifications and quick glance information.
With Google Desktop and Yahoo Widgets already quite established in the desktop space on Windows XP.
Where I think Microsoft could leverage is the combination of dhtml gadgets from www.live.com and hardware auxiliary displays. They have been working on mini-hardware devices since they were announced at the WinHEC 2004 conference. Maybe they could also combine in SPOT technology that hasn't really been mentioned for a while?
The Sideshow design examples look promising, if not unlike an iPod Nano:
However watch this video of Apple Dashboard widget technology and tell me the effects aren't impressive; morphing from icon to full window when dragging onto the desktop with water ripple effects and preferences set by spinning to the 'back side' of the window (very like Sun's 3D Project Looking Glass).
Pity they seem to have dropped Windows Presentation Foundation (WPF) gadgets in favour of dhtml ones for the first release of the Sidebar as it could have been a good showground for WinFX.
A few tips to help you install the Windows Vista February Community Technology Preview (CTP) build 5308 on VMWare 5.5.
First of my make sure you set your new virtual machine with a hard drive size of 8Gb and preallocate the space (important as the new setup process copies image directly to hard disk).
Then during the install, select the unallocated space, then new partition, format and then if the Next button in the wizard is still disabled, restart the VM and follow the steps again and now the Next button should be enabled.
Finally the "Install VM Tools" menu item didn't work, I had to manually map c:\program files\vmware\vmware workstation\windows.iso to the CD drive and then run the setup routine.
You should be up and running, minus the Aero UI which doesn't work with the software renderer.
Microsoft have been busy lately spending advertising budgets for Xbox 360 and IE 7, and that is before they even start on Vista and Office 2007.
You can see why it Xbox 360 advert was banned by their lawyers but it is comedy with music.
Not to be outdone in strangeness the IE 7 video.
But even with all these adverts you can't help but feel Apple branding is a clear winner in the music player stakes.
Red-gate software who produce some of the best Sql tools for development and deployment have a fun excuse generator which produces strangely corporate like text after you enter in a company name, project, etc.
eg. A influential consequence of over-marketing of product features by software vendors is either an inability to meet service level agreements or an inability to properly support or manage the technology resulting in increasing costs. The clinical stress of the ad-hoc, precise capacity, or even the mechanism-independent, systematised contingency, will have profound effects. ...
Another blog post I found interesting was this one covering the argument of Open Source vs "proprietary" Microsoft technologies.
Is it easier to get support from one vendor or multiple vendor or edit the source yourself?
Is it easier to hire a developer with a Microsoft or Linux, mySQL, Java, etc. skillset? I'd agree you can argue most of the time that you should hire for software development skills and not Microsoft skills.
Quoting from the article:
So with all these questions in mind, ask the customer the final, most important question:
“So your brilliant open source developer gets this thing done, throws the switch and it all seems to be working OK. But then tomorrow he/she looks at this/her bank account and sees that you have paid them an enormous sum of money to get all this done, and they can go open that surf board shop they have always dreamed about. So it’s ‘Thanks for your business but I am out of here, and here is a CD with all the source code on it’”
Now the customer REALLY does have a proprietary solution, but it’s not proprietary to a particular company or technology, but to ONE PERSON! And this person is now on a beach somewhere…
So now let’s compare this scenario with my Microsoft solution. I created the entire solution in a Visual Studio .NET project. Since I used the SDK (Software Development Kits) provided by the various Microsoft products, and adhered to best practices of .NET development, anyone familiar with .NET development who has the same infrastructure components can download the source code and very quickly implement the solution. In fact, people involved in the MSCRM community from all over the world have done just that. They didn’t have to worry about what obscure products I might have used, or any crazy code I wrote myself. It’s all Microsoft, all portable between Microsoft systems, and easy to implement as many times as they need to. Furthermore, they get the ongoing support of Microsoft for the products used, including patches, security updates, service packs, etc.
There is no right or wrong answer and I can argue for both sides. As for having the source code, it doesn't always keep the EU happy - prefer source code as the documentation?
There are some blog posts with great technical information you just wouldn't get from a plain knowledge article.
This entry ASP.NET Performance Case Study: Web Service calls taking forever talks through debugging a problem with Windbg.
Otherwise you would have to be lucky to have remembered to follow the max connections change for calling web services.
If you are writing rich-client applications for the Windows desktop there are lots of little touches you can do to improve the end-user experience.
One nice feature is "Registering an Application to a URL Protocol" which basically means registering an application to a url protocol like http: but using your own made up one like outlook: or phone:. Say your application provided telephony features like connecting your desktop PC to your desk phone, then by adding a simple entry in the registry your users (who already have application installed) can launch it from a url like Call Support Desk and the Windows shell would execute "yourphoneapp.exe phone:01234 56789" where you can then parse the command line arguments.
On the subject of command line arguments, if you have a single instance application and want the command line arguments passed to it from a newly launched instance follow the steps answered in the second question.
Remember most Windows development is based on the Win32 API, so to start off you often need to use a combination of Spy++ and the Windows SDK to find out Win32 API methods occur. One of the best places to start for Winforms Win32 API help is PInvoke.net wiki.
Then in a C# Winforms application you would override the Winproc method and handle them yourself to change dragging behaviour, etc.
Raymond Chen also talks about only repainting the visible part of the screen, detecting when a workstation is locked (code in C#) or running over remote desktop client (RDP). Adding these relatively simple tricks can make your application a much better citizen.