WinFS is the code name of a Windows storage subsystem, being developed by Microsoft for use on its operating system

. WinFS is a relational database that represents itself to the operating system as a file storage subsystem rather then a hierarchal file system. The codename WinFS stands for Windows Future Storage which might change in future. Windows Storage Foundation is the most likely candidate. WinFS aims to bridge the worlds of traditional relational databases, objects, XML, and file systems of unstructured documents with the concept of metadata over files. Rather than representing a file solely by directory path and filename, WinFS represents individual domain objects - e.g. e-mails, address book entries, and any kind of regular file - with indexed and searchable context and keyword information. The underlying system is loosely based on Microsoft SQL Server's engine. WinFS provides access to data through both traditional file-based APIs, and new objectbased approaches that take advantage of the new features. Applications that are not written to take advantage of WinFS can access the contents of a WinFS Store through a UNC path (The Universal Naming Convention specifies a common syntax for accessing network resources, such as shared folders and printers). Why is WinFS needed? When WinFS was introduced, it was thought of as a better and faster way of doing searches. While this is true, it doesn't adequately describe the larger problem that WinFS aims to solve. A traditional file system, such as Windows XP's NTFS, has its contents organized in a hierarchal directory structure. A family might, for example, create folders under 'My Pictures' to hold pictures from each vacation they have been on. While this organizational method is good if they want to view pictures "by vacation", if they wanted to look at their pictures in any other arbitrary way -- by person, for example -- there is no easy way to do this. This problem occurs with many other kinds of files as well WinFS's solution is two-fold: It "flattens" the storage of individual files (i.e. there is no "hierarchy" based on directory and file names), and it enables searching for items by their attributes. A picture's attributes would contain details like the date the photograph was taken, who or what is in the picture, what camera was used to take the picture, etc. WinFS extends this idea beyond the kinds of information that have been traditionally stored as files on a file system. WinFS can understand any arbitrary set of data, such as a "Person" or an "Email" or a "Calendar". Applications today must store these kinds of information in their own custom (and often proprietary) database; if other applications want to gain access to this information, it's quite a lot of work because there is no application-neutral storage mechanism for this kind of information. The Whole concept behind the WinFS is the content and not the file, This idea gives Microsoft and its users the capability of better file searching with better filter and better record management as it just a File system data base

Architecture WinFS is not a physical file system; it is built on top of NTFS, and NTFS will remain as the default file system format for hard-drives on Windows Vista. The API (Application Programming Interface) that will provide programmatic access is being coded in Managed C++ and C#, so .NET applications can access it, but the actual base code that will execute the functions of WinFS is coded in C++. This is to provide WinFS with access to the Kernel of the operating system which in turn provides root access to disk management API's which are part of NTFS. The database and relations system is loosely based on SQL Server "Yukon" 2005 code which is a very superior database made by Microsoft after 4-5 years of research, as the core principles of a database, such as relations, meta-data, XML and object-orientation are very similar Types and Extensibility WinFS's type system is closely tied to the .NET Framework's concept of classes and inheritance. WinFS Type Extensibility allows developers to extend WinFS by providing a schema that defines new data types and associations. These schemas are XML files, though they are not W3C XML Schema Definition files, presumably because there are incompatibilities between base types (e.g. WinFS's "boolean" data type is nullable, whereas XSD's boolean type is not). Custom schemas can be installed on a per-application basis (in situations where an application wants to store its data in WinFS, but not share the structure of that data with other applications), or they can be made available across the system. Synchronization WinFS includes support for synchronization with external data. WinFS Sync provides developers with a set of API's that allow for synchronizing with other WinFS stores (i.e. on other computers), as well as with connected devices like a mobile phone, or with Web services such as a web-mail server. Microsoft hopes that developers will write "Sync adapters" which will plug into WinFS to provide sync functionality to devices. For example, this feature makes it possible for multiple machines to have a locallystored copy of a set of WinFS-backed files and metadata, which are updated in a peer-to-peer fashion (as opposed to the more traditional "network share" paradigm employed by previous and current versions of Windows). WinFS Beta 1 shipped with a sample tool called Rave that demonstrates this. WinFS Sync handles all the detail-work related to conflict detection, resolution, and error-reporting. This should allow Sync adapter developers to focus on mapping their data to WinFS as accurately as possible. Usage Scenarios

One example scenario is the Integrated Storage Conception that helps to reuse data. This feature is primarily targeted at businesses A second possible scenario is a full-text search that works with items fields -- the rich filters feature. Rich Filters are a part of Windows Vista Explorer but they work only with metadata for files which is stored in separate streams and not with the file content. For searching, WinFS provides an opportunity to create rich custom queries (such as "Find and return all of my friends that met with me last weekend") that result in the data content itself WinFS can also give more information about data by applying rules against it and creating new facts about. This scenario is intended to use in development of expert systems If a new file type is added to WinFS a schema that describes the format should be added so that WinFS knows how to interpret the file. For example, a schema could be added to allow WinFS to understand how to read and thus be able to search and analyze a PDF file WinFS gives you an opportunity to work with stores of data. It can be useful if you works with books library store and your own stuff store on the same machine. As the books library size can be very very large, can contain information about books readers (think you are manager at Book Library), so it can be more secured if you will use one store for company data and another, non-related to company data, store for personal aims - documents, videos, and so on. After WinFS installation, you have only one preinstalled store, so called "DefaultStore". The Other scenario is developers implementing the data in WinFS itself for their application backend rather then installing a database or using a sequential or random access method.