WinFS

WinFS (Windows Future Storage, also known as Integrated Storage) was the codename for an advanced storage subsystem slated to be included in Windows Vista. It was designed for persistence and management of structured, semi-structured, and unstructured data.

WinFS is based on modified SQL Server technologies and ran on top of NTFS. WinFS API was included in the System.Storage namespace.

PDC 2003 and IWish
WinFS was first introduced in PDC 2003. During the presentation, a video called IWish showed WinFS-related mockups such as notes and calendar apps as an example of how software developers can take advantage out of it. The beginning of the video explained WinFS with four words: "Unify", "Organize", "Explore" and "Innovate".

Microsoft's quote about WinFS in PDC 2003:"'With WinFS, developers can take advantage of prebuilt data structures in their applications, and extend those structures to handle their specific requirements and add unique value to the application by creating new structures.'"

Longhorn and deprecation
WinFS existed in Windows Vista (pre-reset) until the last build before development reset, however it was later decided in 27 August 2004 that Microsoft would release WinFS as a downloadable data framework after Windows Vista shipped. As a result of this, Microsoft released WinFS Beta 1 to MSDN subscribers in 29 August 2005. This version of WinFS relied on .NET Framework 2.0 and works on Windows XP. WinFS Beta 1 was also expected to be put on DVD's in PDC 2005 to be released to the attendees. Quentin Clark, the Director of Program Management for WinFS, mentioned a storage system similar to WinFS would eventually be an integral part of Windows and the first WinFS beta was released in order to get the proper audience and applications that ran on WinFS. Later, Microsoft cancelled WinFS in 2006.

Post-deprecation
After getting scrapped, WinFS features were ported over to ADO.NET Entity Framework, several Windows shell components (such as breadcrumb bar and saved searches) that would make their way into Windows Vista and Microsoft SQL Server.

Bill Gates said WinFS was his biggest disappointment ever in 2013 because how WinFS was ahead of its time and it will re-emerge.

Problems about the NTFS file system
A traditional NTFS data system would only store the data as a packed stream of bytes. Now, if the data is only recognizable from a data byte standpoint there's no way to identify the data as what it actually is.

Think about a Word document for example. You need to open it on a document editor/viewer that can see whether this is a Word document or not. There's no way to see if this is the Word document you're looking for without looking at the content of it and verifying if its what you're looking for.

The second major problem in the traditional NTFS data system is it's uncategorizable and too hard to find.

If we go back to the Word document example, imagine if there were similar documents to the one we were looking for and they have different names but only one of them is what we're looking for. And they're all created at the same date which leads us to a bigger problem where the date and the title isn't enough to find which document we're looking for. You can't just look at the document itself and call it "That's what I was looking for!" with traditional NTFS unless you spend hours checking it.

The third major problem is it didn't allow files to be stored in multiple places without duplicating the file. Even though you can add aditional metadata to the file, applications often would not be able recognize the additional metadata and would have to rely on NTFS anyways. This problem also wastes disk space.

There are other problems about traditional NTFS such as:


 * No data backup and restore without a primary storage system
 * Customizability with only the data's and directory's name.
 * Ability to only search as a directory path index.
 * Better synchronization

WinFS was supposed to be the solution
WinFS was supposed to store all structured, semi-structured and unstructured data at the same time and they would relate in in a central data store where users and apps can access and operate on it.

WinFS also helps finding the data quicker as the user can safely find things without needing to know anything technical. Like the Word document we were looking for, you could find the document with a search filter about what you're actually looking for as "a business report: or "a book I finished writing two weeks ago" rather than "Last modified in 19 March 2004" or "Owned by Administrator".

WinFS allowed ISV's to define their own data types and provide their schema to the data framework. With "Information Agent", the user can set new definitions for items such as appointments, birthdays etc.

WinFS would also allow 2 new backups: "store level backup" would allow people to get all their files back if a hard drive corruption happens and "item level backup" would allow people to revert changes of an item.

WinFS Notifications allowed frequently changing data to be handled better with "ItemChangedEvent" that uses the .NET Event model.

WinFS was also supposed to provide services for apps to use without worrying about proprietary data and the ability to share data between WinFS apps and non-WinFS apps.

Finally, WinFS would stop the need of folders such as "My Documents" and "My Pictures" as WinFS would display those files related to a particular demand of the user.

Applications that took advantage

 * Microsoft Rave
 * StoreSpy
 * File System Sync Adapter
 * Type Browser
 * OPather
 * Project "Orange"

Other projects similar to WinFS
A similar data framework can be found in Cairo known as Object File System and its successor Storage+.