Top Ten Things You Can Do to Create Vista-Style Applications
Microsoft has identified the following ten attributes and capabilities developers should add to applications so that the end-user enjoys maximum benefit from the Windows Vista experience.
Follow the Windows Vista Style Guidelines
Windows Vista offers a new "look and feel" (user experience) for users, including new common controls, translucent frames, a page navigation paradigm, and a standard search feature. By following the
Windows Vista provides new controls that developers can use to provide a consistent experience for specific types of interaction:
The new Common File Dialogs (IFileDialog, IFileDialogCustomize) enable developers to provide new search and organize capabilities when prompting users to open and save files. The .NET Framework 3.0 Development Vista Bridge Samples has a managed wrapper for all the file dialog COM interfaces.
The updated Windows Vista Wizard Framework (a Wizard created with the new PSH_AEROWIZARD flag set) provides developers with a mechanism for offering more customized UI through replacing default command buttons with context-relevant text, resizable pages, and custom background graphics.
Task Dialogs provide a more contextual and flexible alternative to the much-used MessageBox API, including support for hyperlinks and customizable button labels and icons.
Rich Preview Handlers (IPreviewHandler, IPreviewHandlerVisuals) provide in-place interactive previews of document content in common dialogs and search results.
Live Icons (IThumbnailProvider) allow developers to build high resolution (256 x 256, 32bpp color depth) icons, customized per document to show a preview of that document's contents
Enrich the User Experience
The Windows Presentation Foundation unifies the way developers and designers experience documents, media, and UI, providing a single runtime for browser-based experiences, forms-based applications, graphics, video, audio and documents.
Central to the WPF framework are controls that provide the building blocks for developing next generation user experiences, including:
Advanced Text Formatting and document support (System.Windows.Documents, System.Windows.XPS, System.Printing, System.Windows.Media.TextFormatting)
WPF's programming model makes user interfaces simpler to develop and easier to maintain. XAML (eXtensible Application Markup Language) is used to better separate user interface layout and composition from logic, including:
Routed Events Overview (System.Windows RoutedEventHandler Delegate) and commands (System.Windows.Input RoutedCommand Class)
XAML
Dependency Properties Overview and Attached Properties Overview
Application Management for flexible hosting and deployment of applications.The Layout model in WPF allows any UI item to be nested in any other item. It also separates control behavior from presentation.
Windows Sidebar offers a way to interact with users even when your application isn’t running. Developers can build Gadgets, lightweight mini-applications, that run on the Sidebar or directly on the user’s desktop, and are “always on” and available to provide important information or updates.
Enable Users To Visualize, Organize, And Search
Windows Vista changes how users interact with their files, messages, and other items. With new concepts such as search folders, stacks, grouping, and filtering, users are no longer restricted to only using folders as a way of organizing their content. Developers can take advantage of these new concepts and capabilities in your applications, and you can ensure that the data your applications create is prominent in the visualization, organization, and search experience.
Developers can use many of the Windows Vista search and organization features directly from within your applications:
The
Developers should use the Common File Dialogs to prompt users for opening and saving files to provide a uniform experience around search and metadata; the new common file dialogs also provide many options for customization and custom event handling, including:
Applications can read and write metadata across multiple file formats by using the Property Provider APIs.
Host the Windows Explorer and Namespace Explorer controls to provide users with the same search folder, grouping, and stacking experience as in the shell.
Applications with custom file formats can integrate with the Windows Vista visualization, organization, and search functionalities through the following extensibility mechanisms:
Property Handlers enable metadata support for custom file formats.
Full-text search can be enabled for custom file formats by implementing the IFilter interface.
Preview handlers provide a rich, interactive, read-only preview when a file is selected in the Windows Vista Document Explorer.
Introduction to HTTP Handlers provide support for custom protocols. For example, to support RSS or an Image Server.
Run Securely
A fundamental step toward increasing the security of Windows is enabling interactive users to run with a standard user account, which gives them access to only a limited set of permissions and privileges. By default, Windows Vista will run every application as a standard user even if you log on as a member of the administrator's group. Conversely, when users attempt to launch an application that has been marked as requiring administrator permissions, the system will explicitly ask them to confirm their intention to do so. Only applications running with administrator privileges can modify system and global settings and behavior. This feature of Windows Vista is the User Account Control (UAC).
Windows Vista provides new mechanisms to help protect users from elevation of privilege attacks, and allows developers to minimize the damage that can result from security vulnerabilities in your code. Ensure that applications run under least-privileged accounts in order for their users to take full advantage of these mechanisms:
Privilege-elevation APIs should be used when a higher privilege action is absolutely necessary.
Code Access Security is a mechanism for developers to specify the set of operations your code should be allowed to perform, as well as the operations your code should never be allowed to perform.
Encrypt your data and communications using the new Cryptography Next Generation (CNG) API. This API provides an easier programming model and includes new advanced cryptography algorithms. It also allows custom cryptography algorithms to be plugged into CNG via a simple extensibility mechanism.
Windows Vista integrated role-based security can be added by using the revamped Authz API.
Parental Controls (IWindowsParentalControls) in Windows Vista allow parents to set application usage policies for different user accounts. Applications should use these APIs to determine what restrictions parents have requested on overall usage and Web content, and log any related events that parents may wish to audit.
"Using CardSpace in Windows Communication Foundation" is Microsoft's implementation of an About Information Cards and Digital Identity, enabling users to choose from a portfolio of identities that belong to them and use them in contexts where they are accepted, independent of the underlying identity systems where the identities originate and are used. Developers should use Windows CardSpaces to allow users to securely choose the most relevant security credentials.
Windows Firewall enables applications to enumerate connections, enable or disable Windows Firewall, and configure port openings.
Design For Reliability And Manageability
A reliable application is one that behaves exactly as its user expects it to. Windows Vista offers an extensive set of new APIs and developer services to make your applications predictable and manageable to users and IT professionals, and to diagnose them when they are not:
The Event Logging System has been rewritten for added performance and scalability.
Cancelable I/O allows for the asynchronous cancellation of I/O requests, and the detection of when a device is not responding to a cancellation request.
The Transactional File System and Registry allow read/write operations to integrate with System.Transactions.
Restart Manager reduces the need to reboot the PC by giving applications and services the ability to "freeze-dry" their state, before being stopped by Windows Vista so that installations can update shared files.
Application Recovery enables applications to control what actions are taken on their behalf by the system when they fail.
Windows Remote Management (WinRM) allows for the remote management of server hardware.
Function Discovery (FD) allows applications to discover the capabilities of new hardware and software added to the system.
Microsoft Management Console (MMC) 3.0 supports writing .NET snap-ins using Windows Forms.
Rights Management provides the ability to protect and authenticate data and files using Digital Rights Management technology.
Task Scheduler 2.0 provides the programmatic creation and scheduling of tasks.
Windows Installer 4.0 brings new features to Windows Vista including Multi-User Install (MUI) shortcuts, registry entries, shell extensions and patching under UAC accounts.
ClickOnce Deployment for Windows Forms Applications, updated for .NET Framework 3.0, is the best choice for Smart Client deployment.
Provide commandlets to enable simple, scriptable management by IT professionals.
The Network Diagnostic Framework (NDF), an extension of the Windows Diagnostics Infrastructure (WDI), enables networking components to:
Report error conditions that are raised as error events by WDI and entered into the Windows Event Log by ETW.
Enable NDF Helper Classes to trace dependent components, and determine the status of these components. If the components are offline or malfunctioning, Windows Vista may be able to automatically repair the problem.
Establish A Customer Feedback Loop
Windows Vista provides an extensible error-reporting environment, integrated with a developer portal for viewing application reports. Developers can collect the data needed to determine the top issues experienced by users running their applications, and then use the provided debug data to implement fixes:
Windows Error Reporting (WerReportCreate, WerReportSubmit) in Windows Vista adds new abilities such as hang reporting and leak detection to help improve the quality of applications.
Windows Quality Online Services (Winqual) is the point of access for developers to receive behavioral information about an application and request more detailed information from users when needed.
Build For Connected Systems
Windows Communication Foundation (WCF) is a framework for building and running service-oriented applications. WCF unifies and extends the functionality of existing Microsoft connecting technologies, providing a single programming model independent of underlying communications protocols. WCF applications can interoperate with other technologies using open standards and protocols. WCF is a core component of the .NET Framework 3.0 runtime, which will be standard for Windows Vista and made available for both Windows XP and Windows Server 2003.
Windows Communication Foundation delivers the following primary benefits: service-oriented architecture (SOA) support, flexible support for messaging models, a unified programming model, protocol neutrality, increased reliability, standards-based interoperability, integrated security and messaging services, and a flexible architecture designed for extensibility.
Key WCF functionality is provided through the System.ServiceModel and System.ServiceModel.Security namespaces.
For applications that require real-time communication and collaboration across distributed networks, developers can use both the WCF Peer-to-Peer Networking, and the updated Peer-to-Peer Infrastructure based on the Peer Name Resolution Protocol (PNRP).
Use the Windows Vista Filtering Platform to easily write network packet inspection, monitoring, and modification solutions.
Use the Winsock Kernel (WSK) component programming model to acquire an easier method of kernel-mode access to network services.
Windows Vista includes a new IPv6 stack that provides next-generation networking capabilities. Making your application IPv6 ready will allow it to run on next generation networks, traverse NATs and firewalls, and connect peer-to-peer. Quality of Service (QoS) technologies manage the transmission of particular types of data—for instance, streaming media—to ensure that data is transmitted at the right time with the right speed. Windows Vista extends QoS functionality by adding network awareness and greater user-friendliness through the Quality Windows Audio/Video Experience (qWAVE) package and a new implementation of the Network Location Awareness Service (NLA2).
Bring Data To The User With RSS
The Windows Vista RSS Platform includes components that enable your application to easily consume RSS feeds. If your application or service provides data that periodically changes or updates, or to which users might want to subscribe, you should consider exposing that data as RSS. If your application enables users to consume and subscribe to information sources, you should enable your users to subscribe to information exposed via RSS. If users will want to consume your information listed in order other than chronological (for example, wish lists or photo albums), you should support the RSS list extensions.
The key features are:
Unified Feed Parsing API - Your application can access feeds in a consistent manner, without having to worry about parsing all of the different flavors of RSS 0.9x, RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0. The feed parsing API makes it easy to access list extensions and custom metadata such as geocoding or ratings on feed items.
Shared Feed List (IFeed) - If a user subscribes to a feed in one application, such as Windows Internet Explorer 7, that feed will be available to all other applications, including yours. If your application subscribes to a feed, other applications will be able to access the same feed.
Automatic Download for Enclosures - The RSS platform automatically handles download of media enclosures such as video, photos, or audio podcasts for you. Downloads run automatically in the background, prioritizing to use bandwidth when you aren’t using it for other purposes.
Make Document Data Accessible
New XML-based document packaging technologies in Windows Vista (System.IO.Packaging, System.Windows.Xps.Packaging) make it possible to share and integrate document data in new ways. Windows Vista reach packaging technologies are based on the XML Paper Specification (XPS) that details a design for new self-describing information formats. The .NET Framework 3.0 runtime includes the XPS package APIs that enable developers to more easily create and process XPS-based containers or files:
Documents in Windows Presentation Foundation in Documents in Windows Presentation Foundation gives developers a base on which to create custom file types that can take advantage of DRM, Digital Signatures, and ZIP Compression.
The XML Paper Specification (XPS) is the standard way to store portable document information in Windows Vista.
Build for Mobility
Use the Network Awareness libraries to create a seamless user experience for your customer’s mobile experience. These libraries allow location detection based on network characteristics and allow you to automatically adjust application settings accordingly:
When an application has been disconnected and is attempting reconnection, implement the automatic synchronization capability (API).
Network Location API (NLA2) provides a single place where developers can write a module in their application to retrieve all the network parameters for a machine. The API will also notify the application whether the parameters have been changed and notify the application of some network context information.
Enable data synchronization by using the Synchronization Manager to add robust synchronization and conflict resolution to your mobile application.
Follow the Mobility User Experience Guidelines and use the Pen and Ink API (System.Windows.Ink) to take advantage of Windows Vista’s powerful handwriting features, and enable a great user experience for TabletPC users.
Use the Windows Sideshow Platform API to allow your users to easily see the information that is most important without entirely powering up their device:
Windows Vista Sideshow provides an API for applications to send content and notifications to devices, receive events from devices, device connection and management, and control panel settings to allow users to control their auxiliary device settings.
The Sideshow platform is connection agnostic. It doesn’t matter whether an auxiliary display is connected through USB, Bluetooth, TCP/IP, or other future protocols, as long as the appropriate user mode Sideshow transport driver is present.
Additional filter drivers can be added that convert the auxiliary display content format into something that can be understood by the specific device.
Use the new power management libraries and notifications to improve battery life and allow users to continue using your application longer:
WM_POWERBROADCAST lets your application gracefully deal with sleep and hibernation states when power is low.
Use Windows Vista’s monitoring system resources and end-user input to detect when the system is being actively used to write applications that are faster and more efficient by only powering down hardware when it is truly idle.