What a week
Wow, what a week. I find it hard to describe the feeling that we've been having on the WinFS team this week. It's almost like we've all been keeping a great secret that we're just dying to share, and now we finally can.
For those of you that didn't get a chance to check out the channel 9 video yet, I'm Shishir Mehrotra and I run the product planning team for WinFS. My job basically splits into 3 parts: doing forward-looking research for where WinFS should be heading, working with partners to help them understand and build on WinFS, and managing the team that builds a lot of the cool WinFS demo apps. In terms of demo apps, we had a couple of them (LifeJournal and StoreSpy) featured in the Channel9 video, and I have some neat surprises up my sleeve for apps we're going to show at PDC. If you want to see the surprises, don't miss my PDC talk. :-)
Ok enough of the shameless plug, let's return to WinFS. So why are we psyched about WinFS? Is it the technical thrill? Sure that's some of it - there really is some incredible work going into creating WinFS. But for me personally, I get most excited by the potential for brand new applications enabled by this relational filesystem.
A couple weeks back, I was sitting down with one of the Microsoft recruiters (Mary) and she was showing me her computer. I was amazed. See, Mary's problem is that she can have days where she has 5 candidates on campus simultaneously in different interview loops that consist of 6+ interviewers each. She also has a long list of candidates that are coming for loops in the next week, all of which require immediate attention. So the net of it is: Mary's mailbox is a nightmare. Throughout the day, she’s getting bombarded by email. She'll get a mail that a candidate missed his interview shuttle and needs to be picked up. Or a candidate got lost and wandered into BillG's office accidentally. So all day long, she sits at her computer and adds followup flags to her mail, just trying to stay one step ahead of the onslaught.
Enter WinFS. Now she goes into her recruiting app and builds a query. She calls it "candidates that are interviewing today". She comes back to her email, and selects "mail related to <people>” and selects “candidates that are interviewing today" as <people>. She sets her mail app to color that set of messages bright red. And that's it. Each day, the list of "candidates that are interviewing today" gets automatically adjusted, and the right messages in her email are now marked red. And the best part is that the mail app and the recruiting app don’t need to know about each other – they just store items and queries in the filesystem and the other app picks them up and uses them.
So what's WinFS enabling here? Let's work backwards through the scenario. First, the ability to build that query - "mail related to candidates that are interviewing today" - is only enabled by the fact that WinFS has a real query processor. That's not a full-text, keyword search, but one that requires at least two joins between "tables", and requires knowing what “today” means. That's cool, but a query processor needs to know about relationships in order to be effective. So that's the second piece, WinFS has an information model that supports expressing relationships. In this case, there are two important relationships: one between a candidate and an interview loop, and one between a person and an email message. Great, but how does all this data get into my filesystem and get shared between these two apps? That's our third piece - WinFS allows applications to store data that is much richer than just files. I know, that's confusing - a file system that stores more than files? But yes, it's a relational filesystem, so in addition to storing files, WinFS allows you to define new "item types" that aren't files at all. So in this example, all four of the main item types - mail, contacts, interview loops, and queries - are non-file item types.
But the main point (saving the best for last) is the fourth piece: WinFS is a platform. At the heart, it’s a database engine providing a way to model relationships and store non-file data, making it a great data store for applications. That means that you can take your existing filesystem concepts and build them on a platform that offers you so much more.
Hopefully you're as excited about scenarios like that as I am. A big portion of my job is trying to predict the new applications that folks will build on WinFS. Thankfully, since Beta 1 is now released, I can start to hear your ideas directly! So don’t be shy… who’s got the best idea for an application using WinFS?
Author: Shishir Mehrotra
Comments
- Anonymous
September 01, 2005
I'm one of the Outlook MVPs and I was curious how mail items & such fit into WinFS. Does Beta 1 work with the current (Outlook 2003) version of Outlook or do you need the Office 12 release? - Anonymous
September 01, 2005
Indeed, an Outlook plug-in would be a nice feature. It would help a lot for spreading WinFS. I think, it's not impossible, because if I open the "Mail" Control Panel applet "Data Files" section, it asks for Outlook storage type. There should be a new Outlook storage plugin which stores data in WinFS directly. Is this possible? - Anonymous
September 02, 2005
I guess Windows Explorer will be replaced by a Relational Explorer similar to a Pivot Table? - Anonymous
September 02, 2005
I've downloaded and installed WinFS, but I'm having a lot of trouble trying to figure out what, if anything, can currently take advantage of it. Maybe I need to go back and watch the entire video on Channel 9, but there isn't much in the way of documentation of what WinFS can be used for currently. I'm not sure how I can beta test something when I don't know how to use it. Any help here? - Anonymous
September 02, 2005
Looking at the Beta 1 docs it only describes a managed API for programming WinFS. Will an unmanaged API be provided when WinFS officially ships? As an ISV, a managed API is not enough. We have huge applications built in C++ for Windows and they will never be ported to the CLR, there is just no value in doing that. I imagine most MS applications are in the same boat, since Outlook is not a CLR based application, how will it interact with WinFS? - Anonymous
September 02, 2005
I've seen a bit of the WinFS demo video, but I'm still not sure of what I'm seeing. Let me ask you this. With WinFS, could I create a a query that would look at my Microsoft Great Plains SQL Server database and tell who I need to call because their payment is due? Or tell me what employees are due for their performance reviews? - Anonymous
September 02, 2005
With WinFS could I do a query that would look at my Microsoft Great Plains SQL Server database and give me a list of customers to call for payment each day? - Anonymous
September 03, 2005
I've just started to get my hands dirty here. Seems like it's really awesome. Been spending the day getting to know schema development and trying to combine WinFS with Avalon.
Got one quick question:
I've made a few new schemas for some types, which has Store.Item as a base type. When I explore the WinFS Share all the items I've created with the new schemas has System.Store as types. Is there anything special I have to do to get that right? - Anonymous
September 04, 2005
Just becuase its a managed API, doesn't mean it can't be used with unmanaged code. COM interop has always been there for the .NET framework. - Anonymous
September 04, 2005
Some quick responses:
Ben,
I would recommend checking out the Unsupported tools that come as part of the WinFS install for a flavour of the sorts of applications that take advantage of WinFS has to offer.
Murray,
We will support Managed C++ and recommend using that option if you have an unmanaged application that wants to program against WinFS.
Ted,
The scenarios that Shishir describes enable new ways of looking at data as WinFS provides a central store for application data and provide a rich and simple API. If you have specific data in a Great Plains SQL server database you could sync the data into WinFS and easily enable scenarios such as listing customers to call for payment each day.
Thanks,
Ramesh Nagarajan [MSFT] - Anonymous
September 04, 2005
The comment has been removed - Anonymous
September 05, 2005
Shishir,
Question for you? You mention one of the main aims of the new* WINFS is a more flexible mapping layer and query services.
The begs a key question, will the data be OWNED by WinFS or can a schema be registered that makes new data available to WinFS from an existing database, without needing to import a copy of that data into the WinFS database? - Anonymous
September 05, 2005
The comment has been removed - Anonymous
September 13, 2005
The comment has been removed - Anonymous
September 20, 2005
Shishir,
Firstly let me say that your presentation at PDC was awesome. I installed WinFS. I found StorSpy included, have you guys also included LifeJournal along with WinFS. If not is there a place from where i an get it?
Secondly, when file access and logical access api's for files within Stor are going to be made available.
Thanks
Sachin. - Anonymous
December 30, 2005
Hi Shishir,
Wonderful job!
I met the Mary and had a short talk.
Please continue taking care of her Computer.
Thanks,
Yi-Chin Tu (Ethan)