Don and Chris demoed the API underneath Longhorn. Don achieved his aim of getting a VP to use a text editor to build a demo live. The demos were very DM/Box with many text editors shown to build the code. Great coding, a little slow in some of the delivery.
Now onto Longhorn. Basically APIs in longhorn are a simple set of managed API.
Aero User Interface
The demo started with a simple HelloWorld window, to which they added text boxes, click events, enlarged all of the controls (they're vector graphics), rotated them and set the transparency so that a video could play underneath the controls.
There's a new idea of separating the C# style code from the layout information. It seems very similar to the code-behind pages in ASP.NET. The layout information uses XAML (pronounced zamel) an XML syntax to set the properties of the controls (now that I think of it, this seems like an improved version of the form layout information from the old days of VB6)
They also demoed the MSBuild tool. This is an XML-based build system. It uses three types of things - properties, tasks and item. As Scott Hanselman says, 'Holy crap it smells like NAnt. Wow, writing these build files is xml and is 90% the same concept as Nant. Learn and use Nant now (I say) and use MSBuild soon.'
The demo showed how to do this using new namespaces such as as MSAvalon.Windows, MSAvalon.Windows.Controls that seemed to be in assemblies such as PresentationCore.dll, PresentationFramework.dlll and WindowsBase.dll
Here's some of the XAML to get a feel for it:
<window xmlns="http://schemas.microsoft.com/2003/xaml"
xmlns:def="Definition"
Def:Class="PDC.MyWindo"
Text = "Hello,world"
Visible = "true"
>
<Visible source="c:\clouds.wmv" Stretch="Fill" RepeatCount="…." >
<TextPanel DockPanel.Dock="Fill" Transform="rotate 10 scale 2.3 2.3">I can embed <Bold>really</Bold> text
<TextBox id="bob" width="2in" Height="20pt"/>
<Button Click="Pushed">Push me I'm a cliean</Button>
</TextPanel>
WinFS Search Demo
Don got Jim Allchin to write the code to search the file system and return the items using the Longhorn controls. Nothing really that amazing here at the API level - it's a nice simple Find method that returns a set of objects that can be iterated through.
Using Indigo to post to Don's Blog
A demo using Indigo to post to Don's weblog. I'm puzzled as to the the API under the cover (I'm assuming it's using a web service). Indigo looks like a nicer API on top of the web services. As Scott mentions, the
Using Indigo to post to the sidebar
Seemed to be a way of using Indigo to post the the sidebar of the desktop. Similar to using WSE with tcp channels, there was a bit of hassling around with the code to get it set up.