First Look on WinFS Beta 1

Tonight I was planning on fine-tuning my presentation on blogging for the second session of a course on presentation techniques. But WinFS interfered. I couldn't resist giving it a spin.

Here's my first look on Beta 1 of WinFS. In this post I will focus on some parts of the infrastructure. I don't want to start with regurgitating the WinFS documentation, which seems to be in good shape for a beta.

Installing WinFS is a breeze. The MSI file is 40.5 MB in size. It's a no questions asked install that takes only a couple of minutes. The setup installs both the WinFS runtime, the SDK and the Visual Studio 2005 integration. A reboot is required after installation.

WinFS nestles itself in %WINDIR%System32WinFS. The SDK lives in %ProgramFiles%Microsoft SDKsWinFS. WinFS datastores reside in %SystemDrive%System Volume InformationWinFS.

The WinFS runtime consists of three services running in three separate processes:

  1. WinFS.exe. The WinFS data store. Runs a Yukon derived database engine. 86 MB peak working set after reboot. After some fooling aroung this goes up to 120 MB. Just after the reboot this process has 4034 CLR classes from 79 assemblies loaded in 3 appdomains. This goes up to 6.985 classes from 123 assemblies.
  2. WinFSSearch.exe. Runs the WinFS Search Engine. I guess a derivative of Index Server. 11 MB peak working set after reboot. Runs no managed code.
  3. WinFPM.exe.  The WinFS File Promotion Manager. 14 MB peak working set after reboot. Goes up to 35 MB.  Has 13 CLR classes from 3 assemblies loaded in 1 appdomain after reboot.  This goes up to 1.048 from 19 assemblies.

So WinFS still heavily depends on the .NET Framework. From a programmer's perspective this is good thing. I am still worried about the memory usage though. I've created just a couple of files and folders.

WinFS stores can be accessed using a new type of shares. A WinFS looks just like a regular share:

 Screenshot of WinFS store viewed as share

You can also see the stores appearing through a new shell extension for WinFS Stores under My Computer:

 Screenshot of WinFS Shell Extension

WinFS stores filestreams as ordinary NTFS files with a GUID as filename under the System Volume Information folder. Metadata is stored in a SQL Server database. Here is a screenshot of the NTFS backing store for the same folder you saw above. Note how the filesize and date modified are equal.

Screenshot of hidden backing store for WinFS filestreams

Some random observations:

  • I could only create a new store on my system partition C: and not on one of my other partitions.
  • WinFS does not support encryption and compression (yet?).
  • No support for Windows XP document metadata in NTFS alternate data streams (yet?). You can enter this data through the Summary tab on the Properties dialog box for a file. This is a shame. Old style metadata like this should be promoted and demoted to WinFS transparantly, because that's what WinFS is for.
  • WinFS does not support the Transacted File System (TxF) of Windows Vista (yet?).
  • The query language OPath is mentioned in the WinFS documentation. There is a relation with the Integrated Query Framework according to this blog post on the new WinFS Team Blog:

    On query, many of you have heard about Anders Hejlsberg’s work on Language Integrated Query – and the new ADO.NET functionality will plug directly underneath so that you can use the new query patterns on any entity data, including of course now WinFS Items.

    I wonder if OPath is here to stay or just a left over from the PDC 2003 version that will go away once Language Integrated Query takes over.


Leave a Reply

Your email address will not be published. Required fields are marked *