Browsing Posts published in October, 2006

Show Notes

I must bid a fond farewell to a fellow plumber, Dan Sellers. Today was Dan’s last day in the Big House. He is stepping into a well-deserved, early retirement. Dan and I have worked together many times over the years especially on Plumbers @ Work and more recently on the Canadian Developer Security Virtual Team. (I’ve got some posts and content coming up soon.) The developer scene in Canada will not be the same without him. Congratulations, Dan. You’ll be missed.

Finally published. You can grab it here.

Show Notes

  • Introduction
  • NDoc and Sandcastle
  • CodePlex
  • CTPs and You
  • www.netfx3.com
  • Charging for Office 2007 Downloads
  • Virtual PC is Free
  • TFS Administration Tool & TF Sidekicks
  • SharePointKicks.com
  • Microsoft Acquires Sysinternals
  • Windows Vista, Build 5472 Available
  • Security and Windows Vista
  • BlackHat Conference
  • Edmonton Code Camp
  • Upcoming MSDN Events

Comments, as always, are welcome here

When I went independent, I bought a developer-grade desktop box based around the AMD Athlon64 X2 4800+. (I built the computer myself from components purchased at MemoryExpress. Highly, highly recommended. These guys know their stuff when it comes to hardware.) The CPU is a fantastic dual-core 64-bit chip. With a 64-bit chip, I figured that I might as well run Windows XP Pro x64 Edition. Overall it’s a been a pleasant experience. Software and driver support has been excellent for 64-bit Windows. I was able to get 64-bit drivers for everything, including the sound card – a Creative Sound Blaster X-Fi Platinum. The one downside was no 64-bit driver for my Logitech QuickCam Orbit MP. The webcam works great on my Centrino-based laptop (32-bit Windows). I bought a Logitech webcam because Logitech is a well-known company and has 64-bit support for their mice, keyboards, and even joysticks. I figured that they would support 64-bit Windows for their webcams too. Anyway, I have given up waiting for Logitech to provide a 64-bit driver and bought a Microsoft LifeCam Vx-6000, which was just released and supports 64-bit Windows. Very nice, high-res webcam and very inexpensive.

Most 32-bit applications run unaltered on 64-bit Windows thanks to the WoW layer – Windows on Windows. WoW provides a 32-bit to 64-bit translation layer for system calls. Amusingly, the 64-bit Windows DLLs live in c:\Windows\System32. The 32-bit DLLs live in c:\Windows\SysWOW64. There are a few problem areas to watch out for. Although WoW allows 32-bit programs to run on 64-bit Windows, you cannot run 32-bit DLLs in a 64-bit process. For example, Explorer Shell Extensions (such as TortoiseSVN or HardLinkShellExt) must be compiled for 64-bit, otherwise they won’t work. (You can always run a 32-bit version of Explorer to get to your 32-bit extensions.) Same thing with Internet Explorer, which is available on Win64 as both 32-bit and 64-bit. WoW works by intercepting 32-bit system calls (like a Win32 CreateFile) and translating them into their 64-bit equivalent. Drivers however run in the kernel. There is no interception layer to translate between 32-bit and 64-bit system calls. This is why you need native 64-bit drivers.

Advantages

So what are the advantages of 64-bit Windows?

IIS6 - XP Pro x64 is actually derived from the Windows Server 2003 codebase with relevant portions of Win XP ported over. This is a big plus for ASP.NET and web services developers, who will be deploying to Windows Server 2003. Running IIS6 puts you much closer to your intended deployment environment, including having your applications run under the Network Service account rather than ASPNET.

Potentially Improved Performance – Applications that do a lot of 64-bit integer arithmetic run faster when compiled for 64-bit. (e.g. Half-Life 2) If the application is compiled for the .NET Framework 2.0 using “Any CPU” (the default), it will automatically run on the 64-bit Framework and gain the performance improvement without requiring a re-compilation. (e.g. Paint .NET) If an application does not use very much 64-bit math and is recompiled for 64-bit, it could actually run slower because your pointers are all 64-bit and thus take up more space in your CPU caches. This is generally not a problem and if it became a problem, you could always run the 32-bit compiled version on XP Pro x64 via WoW64.

Larger Memory Space – This is probably the biggest bonus for developers. Each process is no longer limited to 4 GB of virtual memory. If you want to haul 100 GB of data into memory (and you’ve got the physical memory to back it up), you can do it. Crazy stuff, but possible if you’re writing crazy apps. Another advantage is, once mainstream motherboards support greater than 4 GB of physical RAM, we will be able to run more and larger virtual machines.

Disadvantages

So what are the disadvantages of 64-bit Windows?

Drivers

Although driver support is very good for new hardware, older hardware is more of a challenge. Most notable in this area is printers. A lot of printers simply lack 64-bit drivers and the printer vendors seem uninterested in writing 64-bit drivers for discontinued products. Hopefully Microsoft will step in and plug this gap. Until then, you have to be careful about which printers you buy. Also note that even a network printer requires a locally installed printer driver. So you won’t be able to print to any printer that doesn’t have a 64-bit driver. This sucks big time.

Less Testing Done

XP Pro x64 is much less common than the ubiquitous XP Home/Pro. So software/hardware vendors are doing less (or no) testing on XP Pro x64. Although the WoW64 layer is excellent, it is by no means bulletproof. For example, Office 2007 RC1 had a problem where the old-style window border would bleed through. For whatever reason, Office 2007 RC1 wasn’t always properly refreshing the top invalidated window border on XP Pro x64. I never saw this problem on 32-bit XP Pro. Since the Technical Refresh (RC1TC), I haven’t seen this problem on XP Pro x64 either. Another example is Windows Live Messenger. On x64, there is a spurious line through the icons beside your photo. Minor visual glitch, but livable.

Unsupported Software

There are some applications that cannot run on XP Pro x64 because they integrate too tightly with the OS. Examples include:

Windows Live OneCare: Currently only supports 32-bit OSs. Hopefully Microsoft releases a 64-bit enabled version soon. Windows Desktop Search was in this category for awhile, but Microsoft released a 64-bit version not too long ago.

Virus scanners: Support for XP Pro x64 is a bit spotty with anti-virus vendors (including OneCare above). Anti-virus is available for XP Pro x64, but typically from the smaller (though reputable) players in the field, rather than from the large well-known names.

Virtualization: Microsoft Virtual PC 2004 does not run on XP Pro x64. Microsoft Virtual PC 2007, which is not yet available, will support XP Pro x64 as a host, though not as a guest. You can always run Virtual Server 2005 R2, which supports 64-bit hosts. Unfortunately the UI is web-based and not ideal for desktop use. (i.e. You can’t drag & drop and you can’t share your clipboard. Adding new devices or mounting ISOs is very cumbersome.) If you don’t mind paying for software, VMWare Workstation is the way to go. It supports 64-bit hosts and guests and has better virtual networking, USB, and snapshotting support.

Conclusion

Do I regret installing and running XP Pro x64? Absolutely not. It’s a great OS and it works well as my primary OS. On the other hand, I’m glad that I’ve still got 32-bit XP Pro running on my laptop as there have been times (mostly wanting to print) when XP Pro x64 just couldn’t do it. Running XP Pro x64 has also been a good experience for development as I’ve learned the intricacies of the 64-bit Windows OSs. Would I recommend XP Pro x64 (or Windows Vista x64 for that matter) to a friend? It all depends on what they’re planning to do. If they’re a developer and don’t mind the odd incompatibility, absolutely. I think it’s a great OS. For your average person, I don’t think that 64-bit OSs are quite ready for prime time. Although software and driver support is very good, it’s still not as good as 32-bit Windows.

My fellow plumber, TechEd roomie, and Notepad MVP, Bil Simser will be talking about Windows SharePoint Services (WSS) 3.0 at the Calgary .NET User Group on Tuesday, October 17, 2006 from 5 to 8pm. Full details and registration can be found here. If you want to find out what’s new and cool in SharePoint Land, Bil’s the man to talk to!

Today I was informed that I have received a Microsoft MVP award for Visual Studio – Solutions Architect. You can check out my profile on the MVP site here. I would like to thank everyone, my wife and children especially, for all the support and encouragement over the years. A special thanks to my fellow plumbers (John Bristowe, Bil Simser, and Dan Sellers), the Calgary .NET User Group (big kudos to Jean-Paul Boodhoo and Daniel Carbajal), and the entire EDMUG crew (Donald Belcham, Stephen Rockarts, Justice Gray, Steve Yang, and Brad Daoust). Enjoy the link love, guys!

What is SecurityKicks.com?

SecurityKicks.com is a community-based news site edited by our members. It specialises in security information for developers, including writing secure code, authentication and authorization techniques, cryptography, and related topics.

Individual users of the site submit and review stories, the most popular of which make it to the homepage. Users are encouraged to ‘kick’ stories that they would like to appear on the homepage. If a story receives enough kicks, it will be promoted.

What is a kick?

Kicks are votes of approval from our members. If a story has 16 kicks, that means 16 users liked it. The more kicks a story receives, the more likely that it will appear on the homepage. If you don’t like a story, don’t give it a kick.

How do I submit stories?

You simply need to register for a new account. With an account you can submit stories by clicking the ‘Submit a story’ link on the right menu of the homepage.

How do I find stories?

To find stories that have not been promoted, click the ‘Find stories‘ link on the right menu of the homepage. You can also click the ‘find’ link beside each category in the list of categories.

Who are the brains behind this operation?

The original idea for the site was mine, but Gavin Joyce, creator of DotNetKicks.com, deserves the bulk of the credit. He not only set up the site, but is also hosting it. Hats off to Gavin!

I hope you find SecurityKicks.com to be a useful resource for finding developer-related security information. Welcome and enjoy!

The Edmonton Code Camp was a blast. John Bristowe and I drove up Saturday morning and returned late Saturday night. There were lots of action packed presentations throughout the day, but Jean-Paul Boodhoo stole the show as per usual. His presentation on cool things you can do with generics was excellent and there was not a PowerPoint slide to be seen. It was a nice contrast to my PowerPoint-heavy Tools of the Trade: Must-Have .NET Utilities (PowerPoint 2007 slidedeck), which was on right before. (Maybe I’ll try doing that presentation without the PowerPoint crutch next time.)  Thanks to everyone who came to my talk and especially those who asked questions. To save people from having to download the slidedeck just to get the links, here is the tools that I talked about in raw, unadulterated HTML:

The Holy Trinity

Source Control

Code Analysis Tools – Static

Code Analysis Tools – Dynamic

Build Tools

  • CruiseControl .NET (http://ccnet.thoughtworks.com/)
    • Continuous integration server Builds via NAnt, MSBuild, DevEnv, or custom
    • Runs unit testing (NUnit), coverage (NCover) and/or code analysis (FxCop) on builds (optional)
    • Reports build and/or test failures via email
    • Dashboard (ASP.NET app) shows current and past build status

Debugging Tools

Coding Tools