Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
WinFS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Overview== WinFS natively recognizes different types of data, such as ''picture'', ''e-mail'', ''document'', ''audio'', ''video'', ''calendar'', ''contact'', rather than just leaving them as raw unanalyzed bytestreams (as most file systems do). Data stored and managed by the system are instances of the data type recognized by the WinFS runtime. The data are structured by means of properties. For example, an instance of a ''résumé'' type will surface the data by exposing properties, such as ''Name'', ''Educational Qualification'', ''Experience''. Each property may be a simple type (''strings'', ''integers'', ''dates'') or complex types (''contacts'').<ref name="WinFSFiles" /><ref name="DotNetShow">{{cite web | url = http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=e049f148-460c-47af-93a0-dfd0f4edf598&u=http://download.microsoft.com/download/6/b/6/6b659b87-eafa-4c15-8783-1476e59bba13/dotnetshow41_300k.EXE | title = WinFS on The .NET Show | website = [[Microsoft]] | access-date = 2007-07-04 | url-status = dead | archive-url = https://web.archive.org/web/20090105074612/http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=e049f148-460c-47af-93a0-dfd0f4edf598&u=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F6%2Fb%2F6%2F6b659b87-eafa-4c15-8783-1476e59bba13%2Fdotnetshow41_300k.EXE | archive-date = 2009-01-05 }}</ref> Different data types expose different properties. Besides that, WinFS also allows different data instances to be related together; such as a document and a contact can be related by an ''Authored By'' relationship.<ref name="Organize" /><ref name="DotNetShow" /> Relationships are also exposed as properties; for example if a document is related to a contact by a ''Created By'' relationship, then the document will have a ''Created By'' property. When it is accessed, the relationship is traversed and the related data returned.<ref name="DotNetShow" /> By following the relations, all related data can be reached.<ref name="Organize" /> WinFS promotes sharing of data between applications by making the data types accessible to all applications, along with their schemas.<ref name="WinFSFiles" /> When an application wants to use a WinFS type, it can use the schema to find the data structure and can use the information. So, an application has access to all data on the system even though the developer did not have to write [[parser]]s to recognize the different data formats. It can also use relationships and related data to create dynamic filters to present the information the application deals with. The WinFS API further abstracts the task of accessing data. All WinFS types are exposed as [[.NET Framework|.NET]] [[Object-oriented programming|objects]] with the properties of the object directly mapping to the properties of the data type.<ref name="Dev1a" /> Also, by letting different applications that deal with the same data share the same WinFS data instance rather than storing the same data in different files, the hassles of synchronizing the different stores when the data change are removed.<ref>{{cite web | url = http://blogs.msdn.com/winfs/archive/2005/10/24/484380.aspx | title = Unify, Organize, Explore, and Innovate. Oh my! (Part 1) | publisher = WinFS Team Blog | author = Vijay Bangaru | access-date = 2007-06-30 | archive-url = https://web.archive.org/web/20070708065606/http://blogs.msdn.com/winfs/archive/2005/10/24/484380.aspx | archive-date = 2007-07-08 | url-status = dead }}</ref> Thus WinFS can reduce redundancies.<ref name="Dev1a" /><ref name="WinFS101" /> Access to all the data in the system allows complex searches for data across all the data items managed by WinFS. In the example used above (''"the phone numbers of all persons who live in Acapulco and each have more than 100 appearances in my photo collection and with whom I have had e-mail within last month"''), WinFS can traverse the ''subject'' relationship of all the photos to find the ''contact'' items. Similarly, it can filter all emails in last month and access the ''communicated with'' relation to reach the contacts. The common contacts can then be figured out from the two sets of results and their phone number retrieved by accessing the suitable property of the contact items. In addition to fully schematized data (like [[XML]] and [[relational database|relational]] data), WinFS supports semi-structured data (such as images, which have an unstructured bitstream plus structured metadata) as well as unstructured data (such as files) as well. It stores the unstructured components as files while storing the structured metadata in the structured store.<ref name="DotNetShow" /> Internally, WinFS uses a [[relational database]] to manage data. It does not limit the data to belonging to any particular data model. The WinFS runtime [[Object-relational mapping|maps]] the schema to a relational modality,<ref name="Dev1a" /> by defining the tables it will store the types in and the [[primary key]]s and [[foreign key]]s that would be required to represent the relationships. WinFS includes mappings for object and XML schemas by default. Mappings for other schemas must be specified. Object schemas are specified in XML; WinFS generates code to surface the schemas as [[.NET Framework|.NET]] [[Class (computer science)|classes]]. [[ADO.NET]] can be used to directly specify the relational schema, though a mapping to the object schema must be provided to surface it as classes.<ref name="DotNetShow" /> Relationship traversals are performed as [[Relational algebra#Joins and join-like operators|joins]] on these tables. WinFS also automatically creates [[Index (database)|indexes]] on these tables, to enable fast access to the information.<ref name="DotNetShow" /> Indexing speeds up joins significantly, and traversing relationships to retrieve related data is performed very fast. Indexes are also used during information search; searching and [[database query language|querying]] use the indexes to quickly complete the operations, much like [[desktop search]] systems.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)