Thursday, July 29, 2004

Longhorn Developer Center Home: Understanding WinFS by Exploring the WinFS Type System

Longhorn Developer Center Home: Understanding WinFS by Exploring the WinFS Type System: "WinFS is a storage platform capable of multi-master synchronization, designed to run on hundreds of millions of computers, to be accessible, and to support international users. If this were not enough, WinFS bridges the worlds of file, relational, and XML data. This is about as far from a plain 'Hello World!' program as you can get.
One way to begin to understand a storage environment of this level of sophistication is to deconstruct the software architecture and explore its essential parts. One of the most fundamental parts of a storage system is its underlying data model. A data model is a complete system for describing how data can be represented and how it should be stored.
Programmers primarily interact with the WinFS data model by using the WinFS type system, rather than interacting directly with the data model. A type system, especially a type system like the .NET Common Type System (CTS), is essentially a model that defines the rules the runtime follows when creating, using, and managing types. The good news is that the WinFS data model and the WinFS type system have a lot in common�so much in common, in fact, that you can safely assume that they largely mirror each other.
This column explores the type system used when programming the WinFS platform. Programmers who program in .NET are already familiar with type systems; after all, the common language specification defines the CTS. It is impossible to write even a 'Hello World!' program in .NET without using at least one type. However, even in simple code, type systems are important. Moving beyond the world of developers, type systems are important to users who understand their data using types that developers do not normally work with, such as Word documents, PowerPoint slides, and e-mail. WinFS introduces a type system that allows the developer to model more complex data while hiding that complexity from the end user."

No comments: