Last night in Computerworld I read a fantastic article on WinFS by Jon Udell.
I know we burst through the gate early when it came to launching WinFS. Well now that the dust has settled I'm really starting to get excited about this technology. I attended Shishir Mehrotra's DAT209 "WinFS" Future Directions: An Overview session at PDC last week in LA. The vision of WinFS is to have a relational file system that acts as a single store for all data on Windows. WinFS is being refactored into the same set of data access API's as the rest of the Microsoft data stack. What this means is that WinFS will use the next generation of ADO.NET to interact with data including DLinq. WinFS is a file system but it will leverage existing investments in NTFS, CLR and the DB Engine. WinFS is backwards compatible with Win32... we saw Microsoft Word files being dragged into an WinFS store and then opened (if you are an MSDN subscriber you can try this yourself by downloading and installing the WinFS Beta 1 on Windows XP SP2) but on top of that it offers so much more. WinFS offers a framework to save queries that continue to categorise and return the associated information that you want long after the query was first defined.
WinFS items are modelled in XML and turned into CLR classes by WinFS. The XML Schemes that will define your information (e.g. the right hand side of the picture above)... will include a number of common ones "out of the box" such as People, Mail, Tasks, Media, Docs and the ability to extend and build your own WinFS items using XML. Think of the scenario where you wish to filter a query by a contact... a contact will be automatically defined by WinFS as a from field in an email or an attendee in a meeting and using the real estate example you might like to categorise them as a potential buyer for a listing. This could be easily achieved by creating a listing item as an extension of the existing contact item. You could then explore using WinFS your meetings -> your showings for the day -> filter by contact and then save this as a query "People I'm showing houses to today". Find this query and then show all the email by those people that are returned by the query. You get the idea as you add contacts to a meeting they are automatically included in the result set of your query. In contrast File-backed items (the left hand side of the picture above) will leverage ntfs streams as their storage but will also be linked using metadata to WinFS items.
Are you interested by all this? Watch a demo of WinFS in action here.