In his post WinFS Scenario #2: event planning Jeremy Mazner writes
So as you can see, the information for any given event is spread all over the place, which means I can’t really keep track of it all. If I want to see the invite list and RSVP status, I’m either in Outlook (if I’m lucky) or off to some file share to find the spreadsheet. If I want to see some information about an invitee (their phone number, or who their account manager is), it’s off to the directory or CRM system to look it up. If I want to know what presentations have been approved for use, I crawl through email to find the one message from my general manager where he says the presentation is ready. If I want to see the actual presentation, it’s back to a file share or Sharepoint
What I really want is a way to corral all these related items together, stick them in a big bucket with a label that says what event they’re for. I want a simple UI where I can see what events are coming up, then browse through all the related material for each one, and maybe be able to answer some simple questions: how many presentations for this event are in the Approved state? How many attendees have declined the invitation?
I’ll assert that this is really, really hard to do today. Outlook wizards would probably argue that you could do this with some series of catagories, public folders, and shared calendars. SharePoint gurus would say this is exactly what a Meeting Workspace is for. Old school event planners might claim you could track this all in a nice big spreadsheet with multiple pages and links out to file locations.
This is a valid problem that Jeremy brings up in his scenario and one I've thought about in the past when it comes to tying information from disparate applications about the same person. Outlook comes closes to doing what I'd like to see here but it gets help from Exchange. I was curious as to how Jeremy thought WinFS could help here and his thoughts were similar to what I'd first thought when I heard about WinFS, specifically he wrote
What does WinFS provide that will help?
- A common storage engine, one unified namespace for storage of any application data on your machine. Whether I use Outlook, AOL Communicator, or Notes, my emails can all be stored in WinFS. (Yes, I understand that new versions of these apps will have to built…encouraging that is my job as evangelist.)
- A set of common schemas, so that an email is an email is an email, no matter what app created it, and it always has a To:, From: and Subject: that I can access through the same API.
- A data model that supports relationships, so that my event management app can specify “this email from Bill is related to the Longhorn Design Review event, as is this calendar appointment for next month”
- A data model that supports extensions and meta-data on relationships, so that I not only say “this contact Jon is associated with this Design Review event”, but also “Jon is a speaker at this event” and “Jon is the author of this deck that he’ll present” and “Jon has not yet confirmed attendance at the party afterwards.”
- Win32 file system access, so that even though files are stored in WinFS, applications can still get to their streams via a Win32 path
It seems Jeremy and I had the same thoughts about how WinFS could help in this regard. After thinking about the problem for a little bit, I realized that having all applications store similar information in a central repository brings a number of problems with it. The two main problems I can see are unreliable applications that cause data corruption and security. The example I'll use is imagine if RSS Bandit , SharpReader, and FeedDemon all stored their data in WinFS using the model that Jeremy describes above. This means all RSS/Atom feeds and configuration data used by each application are not stored in application specific folders as is done today but in a unified store of RSS items. Here are two real problems that need to be surmounted
-
In the past bugs in RSS Bandit that led to crashes also caused corrupted feed files. It's one thing for bugs in an application to corrupt its data or configuration files but another for it to corrupt globally shared data. This is akin to the pain users and developers have felt when buggy apps corrupt the registry. The WinFS designers will have to account of this occurence in some way even if it is just coming up with application design guidelines.
-
For feeds that require authentication, RSS Bandit stores the user name and password required to access the feed in configuration files. Having such data globally shared means that proper security precautions must be taken. Just because a user has entered a password in RSS Bandit doesn't mean they want it exposed to any other applications especially potentially malicious ones. Of course, this is no different from what can happen tpday in Windows (e.g. most modern viruses/worms search the file system for email address book files to locate new victims to email themselves to) but with the model being pushed by WinFS this becomes a lot easier. A way to share data between WinFS-aware applications in a secure manner is a must have.
None of these is an insurmountable problem but it does point out that things aren't as easy as one suspects at first glance at WinFS. I pass Mike Deem in the hallway almost daily, I should talk to him about this stuff more often. In the mean time I'll be sure to catch the various WinFS designers on the next episode of the .NET Show on MSDN.