Longhorn Search and Organize User And Developer Experience Paul Cutsinger – Lead Program Manager...

Post on 08-Jan-2018

219 views 0 download

description

Agenda Demo Overview Extending The Longhorn Explorer Developing Applications Demo Overview Extending The Longhorn Explorer Developing Applications

Transcript of Longhorn Search and Organize User And Developer Experience Paul Cutsinger – Lead Program Manager...

Longhorn Search and Organize User And Developer Experience

Paul Cutsinger – Lead Program ManagerKerem Karatal – Lead Program ManagerMicrosoft Corporation

Agenda

Demo OverviewExtending The Longhorn ExplorerDeveloping Applications

Search, Organize And Visualize

Paul CutsingerLead Program Manager

Developer Experience

Extending the Longhorn Explorer:Content (metadata and full-text)Rich thumbnailsRich previews

Developing applications using new APIs:Search in your applicationRead/Write metadataLeverage Common File Dialog

Architecture Overview

Windows ExplorerWindows Explorer 33rdrd Party Applications Party Applications

Windows Search EngineWindows Search Engine

Windows Metadata SystemWindows Metadata System

SystemSystemPropertiesProperties

33rdrd Party PartyCustomCustom

PropertiesPropertiesSystemSystem

MetadataMetadataHandlersHandlers

33rdrd Party PartyMetadataMetadataHandlersHandlers

SystemSystemProtocolProtocolHandlersHandlers

33rdrd Party PartyProtocolProtocolHandlersHandlers

File SystemFile System(NTFS, FAT32)(NTFS, FAT32) Other Data StoresOther Data Stores

Agenda

Demo OverviewExtending The Longhorn ExplorerDeveloping Applications

Extending Longhorn ExplorerTop 3 Extension Points

Provide content to the Explorer:Search across file formats, data stores.Both full-text content & metadata.Enable organization by writing metadata back into file formats.

E.g.: Set System.Keyword property on .foo file type.

Provide rich thumbnails in the Explorer:Visually stimulating view of files in the Explorer.

Provide rich previewing in the Explorer:Browse contents of files without opening the file.

Providing Content3 Ways To Provide Content

Property HandlersProperty HandlersFile formatsFile formatsMetadataMetadataSome full-text contentSome full-text content

MultimediaMultimediaFile FormatsFile Formats

Property HandlersProperty Handlers+ IFilters (Full-text)+ IFilters (Full-text)

File formatsFile formatsMetadataMetadataExtensive full-text Extensive full-text content, multi-content, multi-lingual chunkslingual chunks

Document-basedDocument-basedFile FormatsFile Formats

Protocol HandlersProtocol Handlers

Non-file system Non-file system based storesbased storesMetadataMetadataExtensive full-text Extensive full-text content, multi-content, multi-lingual chunkslingual chunks

Document Document Management,Management,MessagingMessaging

Metadata

Leverage system properties where possible:Best performanceBest behavior in heterogeneous sets

E.g. One column shows Photographer and Author in Explorer

Otherwise add new properties:XML based format for describing custom properties,APIs to register the custom properties to system.

Property naming convention:Canonical Names:

Publisher.ApplicationName.PropertyNameFormatId/PropertyId:

FormatId: Use a new GUID for each propertyPropertyId: Use value > 2

Custom Properties<configuration xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation= "allprops.xsd“ > <propertyDescriptionList publisher = "Microsoft" product = "Windows” >

<propertyDescription name="System.Author" formatId="F29F85E0-4FF9-1068-AB91-08002B27B3D9" propertyId="4"><typeInfo

type="String" canStackBy="true" groupingRange=“Discrete"

multipleValues="true" isReadOnly="false"/>

<displayInfo drawControl=“Explorer.EditPropertyControl”

editControl=“Explorer.EditPropertyControl"></displayInfo><labelInfo

label="Author" invitationText="Add an author" sortDescription="AToZ"/>

</propertyDescription><propertyDescriptionList/>

</configuration>

Providing Metadata For File FormatsProperty Handlers

Registered through the File Association SystemOne per file type

Can be invoked as:Read-Only while indexing filesRead/Write when reading/updating metadata in the Explorer

Implemented as COM componentsMainly implement:

IInitializeWithStream – Initialization codeIPropertyStore – Property Read/Write accessIPropertyStoreCapabilities – Indicate capabilities like set of properties supported, read/write etc.

Rich Thumbnails In Longhorn

In Longhorn, thumbnails provide a rich visualization option for file types:

Providing Rich Thumbnails

Longhorn is introducing a new and simpler API.IThumbnailProvider replaces IExtractImage

There are problems with existing API:Complex and error-prone implementation:

Many unused flags, parameters.Need for fixing many bitmaps that are returned:

Convert bit depth to 32bpp,Stretch if necessary,Guess if bitmap is RGB or ARGB.

Opportunity to open files with too many or wrong oplocks.

Thumbnail handlers are now required to implement:IInitializeWithStream – Initialization code.IThumbnailProvider – Simpler interface for providing thumbnails.

Rich Previews In Explorer

A new pane in Explorer : Reading PaneIn place browsing of file contents

Providing Rich Preview Handlers

3rd parties provide viewers for their own file formatsWill run in:

ExplorerOutlook 12 and Common File Dialog

Implemented as COM components.Light weight components that render content in read-only mode

Mainly implement:IInitializeWithStream – Initialization codeIPreviewHandler – Rendering and interactive code

Agenda

Demo OverviewExtending The Longhorn ExplorerDeveloping Applications

Developing ApplicationsNew Set Of APIs

Known Folders: Common namespace locations

E.g. Documents, Music, etc.Access them and create new ones

Search in your application:Query items in Windows Search Engine

Metadata Read/Write:Unified access to file formats.

Common File Dialog:Open/save files with metadata

Known Folders

Longhorn defines a new and more intuitive namespace:Users

UsernameDocumentsPicturesMusic…

PublicDocuments…

Redirection to common network locations:In XP, known as “Redirected My Documents”In Longhorn available for all known folders

Known FoldersUsing And Extending

Applications should NEVER hard code file paths

Use Known Folder APIs insteadUse existing Known Folders if they are semantically equivalent:

E.g.: PDF documents stored in DocumentsOtherwise applications can create new known folders:

E.g.: 3D Drawings, Shapes, Code Projects etc.

Using Search In Applications

OLEDB/ADO APIs are used for issuing queries

SQL-like syntaxReturns an OLEDB Recordset

Both managed and native accessColumns correspond to properties in Windows Metadata System

E.g.: System.Photo.FNumber

Reading/Writing Properties

Unified layer to read/write metadata into files formats:

Requires metadata handlers which provide per file type handling

3rd party applications can:Enumerate properties stored in a fileDiscover property descriptions as described in the systemRead and write values for properties

Common File Dialog

Longhorn Common File Dialog mirrors the familiar Explorer UI:

Using Common File Dialog

New COM APIs.Enable multiple view states per application

View State: Last visited folder, dialog sizeWorking with properties:

Promote application related propertiesSetting default values for propertiesGetting property values to save

Rich set of events:FileOk, Help, SelectionChange, FolderChange, Overwrite, etc.

Extending Common File DialogNew Places In Places Bar

Extending Common File DialogCustom Layout And Controls

Summary

Longhorn provides 3 ways to extend Search, Organize and Visualize experience:

Providing content (metadata and full-text)Providing rich thumbnailsProviding rich preview handlers

Longhorn enables application developers:Use and extend Known FoldersIssue queries to Windows Search EngineRead/Write properties through unified layerIncorporate the new UI using the Common File Dialog

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.