Adam Kinney on Longhorn

Designing and Developing with WinFX

May 2004 - Posts

  • WinHEC Avalon Slides available

    Filed under:

    Joe Beda has posted the links to four different presentation slide decks from the WinHEC convention.  A few takeaways from the slides:

    • WinFX is not built on GDI/GDI+ at all
    • Remote Desktop will only need to send Visual Trees of controls not bitmaps, improving the experience by rendering with local hardware
    • There is a presentation on Text in Avalon, mentioning some of the future ClearType Sub-pixel capabilities such as liagtures, smallcaps, kerning and sub/superscript

    Incidentally today I was talking to my co-worker Erik Porter while working on some conceptual application screens in Photoshop; and  I mentioned that I hope in the future, my XAML Designer will be similiar enough to Photoshop, that I can just do my mockup screens once in XAML.  Sounds like its getting closer to a reality.

    PostTypeIcon
    1,774 Views
  • XAML Calculator on GotDotNet

    Filed under:

    My XAML Calculator Sample is now available on GotDotNet for download as a User Sample.  This sample was built on Longhorn v4051 and will not work on v4074 without editing the referenced Namespaces.  Once I get v4074 I plan on updating the sample and taking over the huge open source calculator market.

    PostTypeIcon
    1,545 Views
  • Paul Thurrott speaking on Longhorn

    Filed under:

    Paul Thurrott of Paul Thurrott's SuperSite for Windows fame will be speaking tomorrow night at the Huntsville New Technology User Group to celebrate their sixth anniversary.

    I've never personally heard Paul speak, but for all of the effort he has put into covering Longhorn so far, I'm sure it be worth the drive.  Huntsville, Alabama is out of my range, but some you may be able to swing over there to see the presentation.

    As a side note, the Huntsville New Technology User Group (HUNTUG) appears to be a rather large and successful group.  If you are a User Group Leader or member its worth it to check out their site and see of they have some ideas you can use. Maybe NUFW needs a Board of Directors and some ByLaws...

    PostTypeIcon
    1,387 Views
  • And then there were 4…

    Filed under:

    4 blogs.  No really more like 4 blog channels. That's what I'm up to now.

    My complete blog channel can be found at AdamKinney.com, which from there I crosspost to Longhornblogs.com and weblogs.asp.net and now announcing the latest channel at the recently started XAMLBlogs.com.

    Crossposting is useful as you are able to reach different audiences and build seperate comment conversations. Its always interesting to see the turns that the conversations can go when they grow independantly. Sort of like living in different parallel universes at the same time…

    PostTypeIcon
    1,228 Views
  • "Longhorn In-Depth" article from ExtremeTech

    ExtremeTech has a nicely illustrated (via screenshots) article reviewing the WinHEC Release of Longhon.  This is one of the first articles I have seen talking about “Castles”, defined as “kind of mini-domain that offers many of the features of a full domain, but doesn't require a domain server”.  That sounds promising.  The article also brings up the fact that there will be three levels of support for the graphical display.

    As supported by this White Paper Graphics Hardware and Drivers for Windows "Longhorn", there will be three different levels of experience:

    • Classic - For those of you worried about losing your Windows 2000 software rendered look.
    • Aero - minimum hardware acceleration and desktop composition
    • Aero Glass - the full monty, when solitaire looks better than UT2003, required DirectX9 compliant video card with recommended 128MB RAM
    PostTypeIcon
    2,394 Views
  • Xul Challenge : XAML Calculator Sample

    Filed under: ,

    After receiving good feedback on my counter sample, I've completed my second entry for the XUL Grand Coding Challenge 2004, the Calculator.

    This sample was completed in Longhorn v4051 and setup as a project in Visual Studio “Whidbey” (PDC Release).  The project files are available for download here.  But for those of you who wish to see the markup, I'll post it below.

    <Window
      
    xmlns=http://schemas.microsoft.com/2003/xaml
       xmlns:def="Definition“
      
    def:Class="CalculatorSample.Calculator"
      
    def:CodeBehind="Calculator.xaml.cs" 
      
    Text="Xul Challenge 2004"
      
    Visible="True"
      
    Width="268" 
      
    Height="250"
      
    Loaded="OnLoaded"
      
    CanResize="False">
      
    <Window.Resources>
         
    <LinearGradientBrush
            
    def:Name="Gel"
            
    StartPoint="0.5,0"
            
    EndPoint="0.5,1">
            
    <LinearGradientBrush.GradientStops>
               
    <GradientStop Color="#FFFFFF" Offset="0" />
             
       <GradientStop Color="#E7E7E7" Offset="0.6" />
               
    <GradientStop Color="#CAE7FB" Offset="0.8" />
               
    <GradientStop Color="#DADADA" Offset="1" />
            
    </LinearGradientBrush.GradientStops>
         
    </LinearGradientBrush>
         
    <Style>
            
    <Menu DockPanel.Dock="Top" Width="100%" Background="{Gel}" />
         
    </Style>
         
    <Style>
            
    <MenuItem Background="{Gel}" Margin="0"/>
         
    </Style>
         
    <Style def:Name="Plastic">
            
    <DockPanel Width="100%" Height="100%">
               
    <DockPanel.Background>
                  
    <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                     
    <LinearGradientBrush.GradientStops>
                        
    <GradientStop Color="#E7E7E7" Offset="0" />
                        
    <GradientStop Color="#63B2E9" Offset="0.4" />
                        
    <GradientStop Color="#1C73B0" Offset="0.98" />
                        
    <GradientStop Color="#000000" Offset="1" />
                     
    </LinearGradientBrush.GradientStops>
                  
    </LinearGradientBrush>
               
    </DockPanel.Background>
            
    </DockPanel>
         
    </Style>
         
    <Style>
            
    <GridPanel DockPanel.Dock="Top" Columns="4">
               
    <GridPanel.ColumnStyles>
                  
    <ColumnStyle Width="25%" />
                  
    <ColumnStyle Width="25%" />
                  
    <ColumnStyle Width="25%" />
                  
    <ColumnStyle Width="25%" />
               
    </GridPanel.ColumnStyles>
            
    </GridPanel>
         
    </Style>
         
    <Style>
            
    <TextBox
               
    DockPanel.Dock="Top"
               
    FontSize="12"
               
    Width="96%"
               
    Height="30"
               
    HorizontalAlignment="Right"
               
    IsReadOnly="True"
               
    Margin="5" />
         
    </Style>
         
    <Style>
            
    <Button Margin="3" FontSize="12" />
            
    <Style.VisualTree>
               
    <Canvas>
                  
    <Rectangle
                     
    def:StyleID="RectangleBackground"
                     
    Width="100%"
                     
    Height="100%"
                     
    RadiusX="5"
                     
    RadiusY="5"
                     
    Stroke="Black"
                     
    StrokeThickness="0.5"
                     
    Fill="{Gel}" />
                  
    <FlowPanel
                     
    HorizontalAlignment="Center"
                     
    VerticalAlignment="Center"
                     
    Width="100%"
                     
    Height="22">
                     
    <ContentPresenter
                        
    ContentControl.Content="*Alias(Target=Content)" />
                  
    </FlowPanel>
                
    </Canvas>
             
    </Style.VisualTree>
             
    <Style.VisualTriggers>
               
    <PropertyTrigger Property="IsMouseOver" Value="true">
                  
    <Set
                     
    Target="RectangleBackground"
                     
    PropertyPath="Opacity"
                     
    Value="0.7" />
               
    </PropertyTrigger>
             
    </Style.VisualTriggers>
          
    </Style> 
       </Window.Resources>
       
    <Canvas Width="100%" Height="100%">
         
    <DockPanel Style="{Plastic}">
            
    <Menu>
               
    <MenuItem Header="Edit" Margin="3">
                  
    <MenuItem Header="Copy" Click="Copy" />
                  
    <MenuItem Header="Paste" Click="Paste" />
               
    </MenuItem>
               
    <MenuItem Header="Help" Margin="3">
                  
    <MenuItem Header="About" Click="About" />
               
    </MenuItem>
            
    </Menu>
            
    <TextBox ID="ValueTextBox" Text="0" />
            
    <GridPanel>
               
    <Button Click="InputNum">7</Button>
               
    <Button Click="InputNum">8</Button>
               
    <Button Click="InputNum">9</Button>
               
    <Button Click="Div">/</Button>
               
    <Button Click="InputNum">4</Button>
               
    <Button Click="InputNum">5</Button>
               
    <Button Click="InputNum">6</Button>
               
    <Button Click="Mul">*</Button>
               
    <Button Click="InputNum">1</Button>
               
    <Button Click="InputNum">2</Button>
               
    <Button Click="InputNum">3</Button>
               
    <Button Click="Sub">-</Button>
               
    <Button Click="InputNum">0</Button>
               
    <Button Click="InputNum">.</Button>
               
    <Button Click="Eql">=</Button>
               
    <Button Click="Add">+</Button>
               
    <Button Click="Clr">C</Button>
             
    </GridPanel>
          
    </DockPanel>
       
    </Canvas>
    </
    Window>

    In this sample, I have placed all of the styling within the Windows.Resources section, which you'll notice keeps the UI definition cleaner. Another item of note is the overriding of the Button's Visual Tree, a powerful capability for low level custom UI design.  I would have also liked to hook into the IsMouseDown event of the Button when applying the Property Triggers, but as of Longhorn version 4051 that is not supported.

    Yes, I am enjoying designing my UI in Markup.

    PostTypeIcon
    14,986 Views
  • Is XAML == XUL?

    Filed under:

    Marc Clifton has started an interesting conversation on defining XAML as a specific language or just a “way of declaratively instantiating classes in the DOM”.

    PostTypeIcon
    1,464 Views
  • Amazon WishWatch, a XAML Sample

    Filed under:

    Joe Marini, a Microsoft PM working on a product that has-to-do-with-Longhorn-but-has-not-been-announced-yet-so-don't-ask-him-about-it, has created another all XAML sample entitled Amazon WishWatch.

    Its similiar to his earlier tutorial called Bloghorn, because there is no C# code, all of the source is available, and he gives a good description on what he is doing.  I especially like how the WishWatch uses a new technique described as DataStyling.  Which he defines as “Avalon's method of applying an appearance and structure to a given data object, whether it is an XML node, CLR object, or other type of data object“.

    Nice Work, Joe.

    PostTypeIcon
    3,626 Views
  • Longhorn SDK revised

    Even if you are not running the new Longhorn 4074 build you can still check out the code in the newly revised Longhorn SDK.  Sure its not the same thing, but its still fun to look at some of the sample code like Create a 3-D Scene or Create a Composite Font.

    PostTypeIcon
    1,194 Views
  • Xul Challenge : XAML Counter Sample

    Filed under: ,

    I've completed my Counter Sample for the Xul Coding Challenge. The rest of the samples are shown here. Its pretty interesting to browse through the different samples and compare the markup code.

    XAML Code below:

    <Window
      
    xmlns=http://schemas.microsoft.com/2003/xaml
      
    xmlns:def="Definition" def:Class="CounterSample.Counter"
       def
    :CodeBehind="Counter.xaml.cs"
       
    Text="Xul Challenge 2004"
       
    Visible="True"
       
    Width="268"
     
     Height="150"
       
    Loaded="OnLoaded">
    <Window.Resources>
       <Style>
          <Button Margin="5" FontSize="14" />
       </Style>
    </Window.Resources>
    <FlowPanel>
       <FlowPanel.Background>
          <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
             <LinearGradientBrush.GradientStops>
                <GradientStop Color="#E7E7E7" Offset="0" />
                <GradientStop Color="#FFFFFF" Offset="0.02" />
                <GradientStop Color="#FFF287" Offset="0.2" />
                <GradientStop Color="#F9E11A" Offset="0.98" />
                <GradientStop Color="#000000" Offset="1" />
             </LinearGradientBrush.GradientStops>
          </LinearGradientBrush>
       </FlowPanel.Background>
       <SimpleText Margin="5" FontSize="14">Counter Sample</SimpleText>
       <TextBox ID="ValueTextBox" FontSize="14" Width="250" Height="30" HorizontalAlignment="Center" IsReadOnly="True" Margin="5"></TextBox>
       <FlowPanel HorizontalAlignment="Center" Width="100%">
          <Button Click="Dec">Dec (-)</Button>
          <Button Click="Clear">Clear</Button>
          <Button Click="Inc">Inc (+)</Button>
       </FlowPanel>
    </FlowPanel>
    </
    Window>

    PostTypeIcon
    8,709 Views
  • Windows Longhorn Buzz

    Filed under:

    Feedster has setup a Longhorn Feedpaper

    It should be interesting to see the results that show compared to the basic search feed for longhorn and xaml

    Just the other day, I was talking about how blogs and RSS are like the first cars. It was much better (in most ways) than riding a horse, but the first car was still lacking refinement (engine crank, black smoke, 7mph). I know a lot of people see blogs in the same light and you can see some evidence here, here and here.

    I bring this topic up because I see Feedster as one of those tools that will help shape the next generation of this upcoming form factor. I like the fact that it always has new features, appears to be light and flexible and has a cool name.

    PostTypeIcon
    1,113 Views