Longhorn API Analysis

10/27/2003 5:15:04 PM

Longhorn API Analysis

I have looked at the Longhorn SDK at longhorn.msdn.microsoft.com and examined the new namespaces. I copied only a small fraction of the namespaces listed below, but I wanted you to get an idea of the magnitude of the changes.

The number of namespaces just for Avalon (shown below) is approximately the same as the number in the .NET Framework, but I believe Avalon has far more classes. "MSAvalon" will be changed to "System" in the future. You can see that scope of Avalon is far more than that of WinForms; it's essentially all is the control support of USER, the graphic support of GDI, and the application framework support of MFC. It includes a compound file implementation, input (via ink, mouse, keyboard), document level support ( common dialogs, commands, undo, design-time editing of text, shapes, and controls ).

MSAvalon.ComponentModel
MSAvalon.IO.CompoundFile
MSAvalon.Security.RightsManagement
MSAvalon.Threading
MSAvalon.Windows
MSAvalon.Windows.Annotations
MSAvalon.Windows.Annotations.Component
MSAvalon.Windows.Annotations.Storage
MSAvalon.Windows.Automation
MSAvalon.Windows.Automation.InteropProvider
MSAvalon.Windows.Automation.Provider
MSAvalon.Windows.Commands
MSAvalon.Windows.Controls
MSAvalon.Windows.Controls.Atoms
MSAvalon.Windows.Controls.Interop
MSAvalon.Windows.Controls.Isolation
MSAvalon.Windows.Controls.Primitives
MSAvalon.Windows.Data
MSAvalon.Windows.Design
MSAvalon.Windows.Documents
MSAvalon.Windows.Events
MSAvalon.Windows.Explorer.Enhancements
MSAvalon.Windows.Forms.Integration
MSAvalon.Windows.Input
MSAvalon.Windows.Interop
MSAvalon.Windows.Media {.Animation, .TextFormatting }
MSAvalon.Windows.Navigation
MSAvalon.Windows.Resources
MSAvalon.Windows.Serialization
MSAvalon.Windows.Shapes
MSAvalon.Windows.TrustManagement {.Configuration }

Just to give you another sense of the magnitude and versatility of this library, the textbox control is a superset of the HTML and RichText control that WIN32 provide. The textbox is essentially Word, with advanced features like page layout, footnotes, columns, wrapping around objects, background spelling. The beauty is that you can customize the textbox control at a much lower level with WIN32 controls; you can actually add custom properties to text ranges and modify the rendering behavior of text. The level of control and customization is unprecedented; writing a wordprocessor was never this easy.

The Shell exposes a number of namespaces and classes, seeming to promise to make shell extensions as trivial as implementing a derived class, and making application interoperability with the explorer much more intimate.

System.Windows.Explorer
System.Windows.Explorer.Assistance
System.Windows.Explorer.Controls
System.Windows.Explorer.Dialogs
System.Windows.Explorer.Enhancements
System.Windows.Explorer.Enhancements.Filters
System.Windows.Explorer.Games
System.Windows.Explorer.Interop
System.Windows.Explorer.PhotoVideoEmailWizard
System.Windows.Explorer.Pivots
System.Windows.Explorer.Search
System.Windows.Explorer.View
System.Windows.Explorer.View.Preview
System.Windows.Explorer.View.Preview.VideoFolder

WINFS has a number of namespaces. Each inner namespace, defines large set of a standard system objects related to a subject like contacts, which WINFS can store read and write directly into the filesystem. Of course, you can write you own objects.

System.Storage
System.Storage.Annotation
System.Storage.Audio
System.Storage.Contact
System.Storage.Core
System.Storage.Explorer
System.Storage.Fax
System.Storage.Files
System.Storage.GameLibrary
System.Storage.Help
System.Storage.Image
System.Storage.Interop
System.Storage.Location
System.Storage.Mail
System.Storage.Media
System.Storage.Meta
System.Storage.NaturalUI
System.Storage.Notes
System.Storage.Notification
System.Storage.Principal
System.Storage.Programs
System.Storage.Service
System.Storage.ShellTask
System.Storage.Synchronization
System.Storage.UserTask
System.Storage.Video
System.Storage.Watcher

The Indigo namespace is quite substantial itself.

System.MessageBus
System.MessageBus.Configuration
System.MessageBus.Installer
System.MessageBus.Management { .Performance }
System.MessageBus.Policy
System.MessageBus.Remoting
System.MessageBus.Routing
System.MessageBus.Security
System.MessageBus.Services { .Description }
System.MessageBus.Tools
System.MessageBus.Transports

A few other interesting namespaces are the following, which gives an indication that we may finally have standard API support for artificial intelligence.

System.Help
System.NaturalLanguageServices
System.NaturalLanguageServices.DocumentUnderstanding
System.Search.*
System.Speech.*

Disclaimer: I don't work for Microsoft; these are my opinions, and they may not represent Microsoft's actual plans. Longhorn is currently in development and features may be dropped.

Comments

 

Navigation

Categories

About

Net Undocumented is a blog about the internals of .NET including Xamarin implementations. Other topics include managed and web languages (C#, C++, Javascript), computer science theory, software engineering and software entrepreneurship.

Social Media