exploiting new capabilities for search and organization kerem karatal dat307 lead program manager...
TRANSCRIPT
Exploiting New Capabilities Exploiting New Capabilities for Search And Organizationfor Search And Organization
Kerem KaratalKerem KaratalDAT307DAT307Lead Program ManagerLead Program ManagerMicrosoft CorporationMicrosoft Corporation
2
AgendaAgenda
Overview – End User ExperienceOverview – End User ExperienceVisualization, Organization and SearchVisualization, Organization and Search
Search Enabling Your ApplicationSearch Enabling Your Application
Organize by Reading & Writing Organize by Reading & Writing Properties Properties
Using Common File DialogUsing Common File Dialog
Visualization, Organization Visualization, Organization & Search – User Experience& Search – User Experience
Kerem KaratalKerem KaratalLead Program ManagerLead Program ManagerWindows ShellWindows Shell
4
Exploiting Search & Exploiting Search & OrganizeOrganizeDeveloper OpportunitiesDeveloper Opportunities
Ability to search files/items.Ability to search files/items.
Reading & writing Reading & writing properties.properties.
New Common File New Common File Dialog.Dialog.
Introducing Photo Browser Introducing Photo Browser ProProA sample applicationA sample application
Kerem KaratalKerem KaratalLead Program ManagerLead Program ManagerWindows ShellWindows Shell
6
One Search TechnologyOne Search Technology
Common Full Text IndexerCommon Full Text Indexer
ClientClient ServeServerr
Client & Server products Client & Server products based on a shared core based on a shared core engineengine
Embedded in WSS, SQL, Embedded in WSS, SQL, Exchange, Office serversExchange, Office servers
Windows platform Windows platform component in Windows component in Windows XP & Windows VistaXP & Windows Vista
Common extensibility Common extensibility across all productsacross all products
SearchSearch
7
ArchitectureArchitecture
File File SystemSystem
MAPIMAPIStoreStore
Other Other StoresStores
Property SystemProperty System
33rdrd Party PartySchemasSchemas
SystemSystemSchemasSchemas
Property HandlersProperty Handlers
3rd Party3rd PartyPropertyPropertyHandlersHandlers
ImageImagePropertyPropertyHandlersHandlers
MediaMediaPropertyPropertyHandlersHandlers
……
……
IndexerIndexer
InvertedInvertedIndexIndex
&&PropertyPropertyCacheCache
Query SystemQuery System
3rd Party Applications3rd Party Applications
Protocol HandlersProtocol HandlersFileFile
ProtocolProtocolHandlerHandler
MAPIMAPIProtocolProtocolHandlerHandler
3rd Party3rd PartyProtocolProtocolHandlerHandler
……
SearchSearch
8
User Defined QueriesUser Defined Queries
Advanced Query SyntaxAdvanced Query SyntaxIncludes simple full text “word” based Includes simple full text “word” based queries.queries.
E.g.: John EmailE.g.: John Email
To disambiguate use mnemonics:To disambiguate use mnemonics:E.g.: from:John kind:EmailE.g.: from:John kind:Email
Implicit AND between words.Implicit AND between words.
Can also use AND/OR/NOT operators.Can also use AND/OR/NOT operators.
Query Building UIQuery Building UIExplicit UI to build predicates.Explicit UI to build predicates.
SearchSearch
9
Query SystemQuery System
OLEDB/ADO APIs are used for issuing OLEDB/ADO APIs are used for issuing queries.queries.
Microsoft SQL Syntax with Full-Text Extensions.Microsoft SQL Syntax with Full-Text Extensions.
Returns an OLEDB Recordset.Returns an OLEDB Recordset.Recordset columns -> PropertiesRecordset columns -> Properties
Helper APIs convert from Advanced Query Helper APIs convert from Advanced Query Syntax to:Syntax to:
SQL SQL
Condition Tree -> To other query languagesCondition Tree -> To other query languages
SearchSearch
10
Property SystemProperty SystemProperties – {Name, Value}Properties – {Name, Value}
Uniquely identified by:Uniquely identified by:Canonical NameCanonical Name
PROPERTYKEY - {FormatID, PropertyID}PROPERTYKEY - {FormatID, PropertyID}FormatID – GUIDFormatID – GUID
PropertyID – DWORD PropertyID – DWORD
System defined properties:System defined properties:System.GroupName.PropertyNameSystem.GroupName.PropertyName
E.g. System.Photo.FNumberE.g. System.Photo.FNumber
Declared in XML format – PropDesc Declared in XML format – PropDesc filesfiles
SearchSearch
Querying the Windows Querying the Windows Search EngineSearch Engine
Kerem KaratalKerem KaratalLead Program ManagerLead Program ManagerWindows ShellWindows Shell
12
Protocol HandlersProtocol Handlers
Property HandlersProperty Handlers
ArchitectureArchitecture
Property SystemProperty System
3rd Party3rd PartyPropertyPropertyHandlersHandlers
33rdrd Party PartySchemasSchemas
Query SystemQuery System
IndexerIndexer
File File SystemSystem
FileFileProtocolProtocolHandlerHandler
MAPIMAPIProtocolProtocolHandlerHandler
3rd Party3rd PartyProtocolProtocolHandlerHandler
MAPIMAPIStoreStore
Other Other StoresStores
ImageImagePropertyPropertyHandlersHandlers
MediaMediaPropertyPropertyHandlersHandlers
SystemSystemSchemasSchemas
InvertedInvertedIndexIndex
&&PropertyPropertyCacheCache
……
……
……
3rd Party Applications3rd Party Applications
OrganizOrganizee
13
Property System Drill-downProperty System Drill-down
ShellShellFolderFolder
MetadataMetadataHandlerHandler
IPropertyStoreIPropertyStore
FileFileContentsContents
Shell ItemShell Item
IShellItem2IShellItem2
SHCreateItemFromParsingNameSHCreateItemFromParsingName
33rdrd Party PartyApplicationApplication
Property SystemProperty System
IPropertyStoreIPropertyStore
33rdrd Party PartySchemasSchemas
SystemSystemSchemasSchemas
IPropertyDescriptionIPropertyDescription
SHGetPropertyDescriptionSHGetPropertyDescription
GetCount\GetCount\GetAtGetAtGetValueGetValueSetValueSetValueCommitCommit
GetPropertyStoreGetPropertyStore
GetCanonicalNamGetCanonicalNameeGetDisplayNameGetDisplayName……
OrganizOrganizee
14
Property Description FileProperty Description File
<configuration xmlns:xsi= <configuration xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance""http://www.w3.org/2001/XMLSchema-instance" >>
<propertyDescriptionList publisher = <propertyDescriptionList publisher = "Microsoft""Microsoft" product = product = "Windows”"Windows” > >
<propertyDescription<propertyDescription namename="System.Author" ="System.Author" formatIdformatId="F29F85E0-4FF9-1068-AB91-="F29F85E0-4FF9-1068-AB91-
08002B27B3D9" 08002B27B3D9" propertyIdpropertyId="4">="4">
<typeInfo<typeInfo typetype="String" ="String" multipleValuesmultipleValues="true“ />="true“ />
<search index<search index=“true” =“true” propStorepropStore=“true” />=“true” />
<labelInfo<labelInfo labellabel="Author" ="Author" invitationTextinvitationText="Add an ="Add an author" author"
sortDescriptionsortDescription="AToZ"/>="AToZ"/>
</propertyDescription></propertyDescription><propertyDescriptionList/><propertyDescriptionList/>
</configuration></configuration>
OrganizOrganizee
Reading/Writing PropertiesReading/Writing Properties
Kerem KaratalKerem KaratalLead Program ManagerLead Program ManagerWindows ShellWindows Shell
16
Common File DialogCommon File DialogWhy?Why?
Benefits for End Users:Benefits for End Users:Consistent File Open and Save Consistent File Open and Save experience.experience.
Take full advantage of Windows Vista Take full advantage of Windows Vista features:features:
Filtering, Stacking, Virtual Folders, Preview Filtering, Stacking, Virtual Folders, Preview Pane, etc…Pane, etc…
Ability to save metadata during File Save.Ability to save metadata during File Save.
Benefits for Developers:Benefits for Developers:Get all of Filtering, Stacking etc. for free.Get all of Filtering, Stacking etc. for free.
Extend it with less code.Extend it with less code.
17
Common File DialogCommon File DialogFamiliar Windows Vista Explorer UIFamiliar Windows Vista Explorer UI
Multiple view-Multiple view-states:states:
View-state: Last View-state: Last Visited folder, Visited folder, Dialog Size.Dialog Size.
Extensible Places Extensible Places BarBarRich EventsRich EventsNew APIs:New APIs:
IFileDialog,IFileDialog,IFileOpenDialog,IFileOpenDialog,IFileSaveDialog,IFileSaveDialog,IFileDialogEvents.IFileDialogEvents.Mini Save ModeMini Save Mode
18
Extending Common File Extending Common File DialogDialogCustom Layout and ControlsCustom Layout and Controls
A set of controls:A set of controls:CheckButton, CheckButton, DropDownMenu ...DropDownMenu ...
Controlled layout:Controlled layout:Grouping, separators.Grouping, separators.
New APIs:New APIs:IFileDialogCustomize,IFileDialogCustomize,IFileDialogControlEvenIFileDialogControlEvents.ts.
Using and Extending Using and Extending Common File DialogCommon File Dialog
Kerem KaratalKerem KaratalLead Program ManagerLead Program ManagerWindows ShellWindows Shell
20
Call to ActionCall to Action
Incorporate search in your Incorporate search in your application.application.
Read & write properties.Read & write properties.
Use and extend Common File Dialog.Use and extend Common File Dialog.
All of this works in Beta1 – Start All of this works in Beta1 – Start prototyping!prototyping!
21
Community ResourcesCommunity ResourcesAt PDCAt PDC
For more information, For more information, PRS310PRS310: Windows Vista: Extending Explorer by Providing : Windows Vista: Extending Explorer by Providing Metadata, Rich Previews and Thumbnails for Your File Metadata, Rich Previews and Thumbnails for Your File Types (Wed 3:15pm)Types (Wed 3:15pm)OFF320OFF320: Developing with Microsoft Office System Search : Developing with Microsoft Office System Search Technology (Thu 3:45pm)Technology (Thu 3:45pm)DAT322DAT322: Building MSN Search Enabled Applications (Thu : Building MSN Search Enabled Applications (Thu 5:15pm)5:15pm)Hands-on-Lab: Hands-on-Lab: PRSHOL33PRSHOL33Ask The Experts table: PRS TrackAsk The Experts table: PRS TrackPRS Track loungePRS Track lounge
After PDCAfter PDCMSDN dev center: MSDN dev center: http://msdn.microsoft.com/vista/http://msdn.microsoft.com/vista/HOL code available on DVD5.HOL code available on DVD5.Forum: Search and Organize in Windows VistaForum: Search and Organize in Windows VistaChannel 9 VideoChannel 9 Video
22© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
23
Appendix - RoadmapAppendix - Roadmap
24
FormatsFormats
StoresStores
QueryQuery
Common Search APIsCommon Search APIs
Content extractionContent extractionIFilter; IPropertyStore (client)IFilter; IPropertyStore (client)
Protocol HandlersProtocol HandlersISearchProtocol & IUrlAccessorISearchProtocol & IUrlAccessor
Advanced Advanced Query SyntaxQuery Syntax
OLE DB ProviderOLE DB ProviderFull-text SQLFull-text SQL
LanguagesLanguages Common set of language resourcesCommon set of language resourcesIWordbreaker & IStemmerIWordbreaker & IStemmer
Office serverOffice serverManaged OMManaged OM
Client Client Query Query
HelpersHelpers
25
CommonCommonIndexingIndexingEngineEngine
ClientClient
ServerServer
Unified Search RoadmapUnified Search Roadmap
Unified client engine & API on WindowsUnified client engine & API on Windows
Targets Windows Vista RTMTargets Windows Vista RTM
Consistent results for Windows Vista shell, Office Consistent results for Windows Vista shell, Office “12”, Windows Desktop Search“12”, Windows Desktop Search
Server & client share extensibility APIsServer & client share extensibility APIs
ExtensibilityExtensibility
IFiltersIFilters
Protocol Protocol HandlersHandlers
Query APIQuery API
SQLSQL
Keyword Keyword SyntaxSyntax
Redist for:Redist for:
Windows 2000Windows 2000Windows XPWindows XPWindows Server 2003Windows Server 2003