Shipping WinFS Beta 1

My name is Quentin Clark, I run the Program Management team for WinFS – directing the team that is shaping WinFS. Many of you have seen me on a few WinFS bits on Channel 9, and from the PDC in 2003. I have been working on WinFS since 2002. Overall, I’ve been at Microsoft for over 11 years – pursuing 1.0 projects the whole time everywhere from Office, to developer tools, to manageability software and now WinFS.

It’s a big milestone shipping WinFS Beta1 and being able to reconnect with a broader set of developers on what we are building. WinFS is alive and well, and with Beta1 we are anticipating lots of feedback to help us continue to refine WinFS.

There were a few pieces of feedback we heard from customers at the PDC in 2003. One was about making the technology available downlevel to Windows XP. Thus, Our Beta 1 bits that are being released today actually do work on XP. We’re still working on exactly which platforms to support for RTM – there are a set of difficult tradeoffs in terms of features that WinFS can support on each platform. We’re hoping that feedback from each of you will help us make these choices.

Another piece of feedback was concerns over the WinFS api’s being a different data access pattern than our existing managed code data access APIs. Further, that our APIs were not aligned with broader data platform needs like OR mapping. This was a big one, and as you explore the SDK and the APIs, you will see the beginnings of how we will be addressing this. We are in the process of building-out the next version of ADO.NET to have new features that provide a data model, object-relational mapping, and flexible query infrastructure. The new data model is about entities, and the WinFS data model of Item types is built on that model. Looking through our SDK and code samples you will see how Items are composed of underlying entities. OR mapping is a big requirement - WinFS is a very prescribed mapping (defining a type in WinFS generates both the underlying storage schema and the partial class to program to that type). But the real-world has lots of requirements for flexible mapping – to existing data, to existing objects, etc. 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.

Lastly, there was technical feedback on the data model we previewed in the PDC build of WinFS. Specifically links were not going to be enough for the types of relationships folks wanted to model. People needed more standard relational ways of querying the data and relating between Items. This has changed a lot, and the biggest part of it is the association model. Today we have associations that are just based on properties – effectively a join between two Items in the store (like a Contact and a Document through an Author association). We also have Link associations which use an intermediary entity to wire together two Items, like for ad-hoc links between items (like an annotation for example). Supporting both types of associations will be key to enabling application developers to model a much wider variety of data models on WinFS.

All of this feedback was super-valuable, and we look forward to this Beta eliciting more feedback. We are delivering this Beta at this early stage because the feedback is so important – we recognize WinFS will be a big change for the industry and we have to get it right. It’s an amazing opportunity and responsibility. I sometimes think how my young children (just toddlers) will only know WinFS as the filesystem – provided that we build WinFS correctly, and succeed with developers. That’s where you come in. Download the bits from MSDN and engage in the newsgroups where we can hear your feedback on what we’re doing right and what we need to change.

Author: Quentin Clark