一 抢先体验微软最新文件系统WINFS

久闻WinFS,好不容易才将内存升级到512M,在VM中安装了Longhorn后,发现WinFS还处于很基本的测试阶段,很多功能都有限制,只有一个Defaultsore目录提供了支持,而且暂时还无法去更改其设置,凡是放到里面的文件的特点都会被侦测到并加以归类 。凡是从FAT32或NTFS迁移过去的文件,假如有Meta Data,比如MP3文件的ID3这类信息会被保存下来,假如无Meta Data的文件,也可以创建属于其的Meta Data 。
从我的硬盘上COPY了几个MP3、WMA文件到虚拟机的硬盘上 。
1.打开Computer,进入Defaultstore 。
2.本想建个Music的目录,但是却出现错误,后来才发现是因为WinFS正处于测试中,无法命名其中的项 。
3.将音乐文件拷到Defaultstore的根目录下 。
4.在Start Menu中打开Music目录,点击左侧的Recently Added,出现刚才我新加进的几个音乐文件 。
5.点击鼠标右键,选择View?Detail,然后点击上方的Genre?Stack by Genre,发现音乐文件以其音乐的类型(比如Pop)分成几个Item,点击Item进去,可以浏览该类型的文件 。
6.在左侧的Filter by输入框中输入pop(注意,非音乐文件文件的名字),凡是pop类型的音乐文件都显示出来,而非该类型的音乐文件都被隐藏 。
7.将一些图片放入Defaultstore中,在Start Menu中打开Photos and Videos目录,在Filter by处输入1024*768,发现大小是1024*768的图片都被显示出来 。
用到这里,感觉WinFS好象没什么,只是作为一个文件的Meta Data的搜索器而已 。但估计问题绝对不会象我所想的那么简单,所以便继续查找资料,追寻下去,发现了许多有趣的东西 。
WinFS的数据模型:
WinFS是传统的文件系统以及关系数据库的延伸,它不仅存储以往的文件类型数据,也可以存储非文件类型的数据,比如一些个人信息、日程表、邮件等等 。因此,在WinFS中存储的单位不应该用文件来描述,准确说来应该是Item 。
首先要弄清楚几个概念:Types/Subtypes、Properties/Fields、Constraints、Relationships 。
一.Types/Subtypes
Type和Subtype与面向对象的类及子类的概念相象,WinFS中存储的数据都是某种TYPE的实例(Instance),比如我们可以创建一个TYPE为Person的实例,这个实例拥有自己的属性,姓、名、年龄、性别等等 。每种TYPE都会有自己的属性,即Properties/Fields 。每种TYPE都会有自己的超类型(super type)和子类型(Subtype),与JAVA等语言类似,一个TYPE只能继承自一个超类型,但可以有多个子类型 。比如Contact和Document的超类型都是Item,而Contact的子类型有Person、Group和Organization等等,Document的子类型有Image和Media等等,Image的子类型有Photo等等 。WinFS中预定义了几种“Windows Type“,比如Person、Message、Document和Folder等等 。Type可以被扩展,即允许用户定义自己的Type,但是现在在这个版本的WinFS中还不提供这种自定义功能 。
二.Properties/Fields
Properties/Fields与类的属性的概念相似,每一个属性可以是一个标量,也可以是一个与C/C的structure相似的结构 。对于一个类型来说,可以拥有多个相同的属性,比如一个Person可以拥有多个Address属性 。
三.Constraints
对于每个Propertie/Field,都可以有约束(Constraints),比如年龄必须是在什么范围内,姓名不允许为空等 。但是当前发布的WinFS版本还不提供对约束的支持 。
【一 抢先体验微软最新文件系统WINFS】

    推荐阅读