Tales from the Smart Client

John Gossman's observations on Avalon development

  • Tales from the Smart Client

    More on XAML mini-languages

    • 0 Comments
    Another problem with the gradient and transform mini-languages is that they are redundant. Anything you can express in them can also be done in the long version. You thus have to support both. Worse...much worse if you are trying to do source preservation...
  • Tales from the Smart Client

    XAML is for tools

    • 6 Comments
    There is quite a bit of discussion internally and externally about the role of XAML in WinFX development. One of the main questions is "Why would I use XAML instead of C# or VB?" Simply put, "Sparkle", "Cider" and other design tools provide the main...
  • Tales from the Smart Client

    Sparkle Timeline Performance

    • 3 Comments
    I mentioned last week I was expecting a checkin that would transform the performance of Sparkle's timeline. The issue was simple: we create a row in the timeline for every element in the scene, then create more rows for each property that is animated...
  • Tales from the Smart Client

    ChuckJ talks XAML

    • 0 Comments
    I pounded my head against the XAML spec for a couple of years before Chuck came in a "fixed" it. He's the man (Rob Relyea's the man too), and can explain it better than anyone: http://www.removingalldoubt.com/
  • Tales from the Smart Client

    Another colleague joins the Sparkle blog fray

    • 0 Comments
    Pete Blois joined the team just this year, but has tons of experience in the space. His blog is here: http://www.blois.us/blog/
  • Tales from the Smart Client

    Sparkle and Performance

    • 3 Comments
    In my history of Sparkle I mentioned I had worked on ToolBook. That solicited this comment: Asymetrix's ToolBook? Wow, that was so ahead of its time! Just make sure Sparkle runs faster! :P Sorry, could not resist. I am sure Sparkle will rock....
  • Tales from the Smart Client

    Comments on Designers and Developers working together

    • 2 Comments
    I turned on "comment approval" a while back and used to get e-mails telling me comments were waiting. Apparently my Spam filter was eating them, so I apologize to Daniel who posted several notes, in particular this one: John, Mano...
  • Tales from the Smart Client

    The All-Avalon, All-the-time Application

    • 4 Comments
    Expression Interactive Designer (aka Sparkle) is a 100% .NET, managed code application. The source is currently more than 1200 .cs files and about 140 .xaml files totally 210,000 some lines of C# and 23,000 some lines of XAML. There is no unmanaged...
  • Tales from the Smart Client

    The History of Sparkle: Year One

    • 6 Comments
    The name of the product I work on is Microsoft Expression Code Named "Interactive Designer/Sparkle". This is not the final name. For four years it has internally been known as Sparkle. So for a history of the product, I'll use that name. I wasn't around...
  • Tales from the Smart Client

    Sparkle

    • 2 Comments
    Now it can be told...I am a developer on Microsoft Expression Interactive Designer aka "Sparkle". We finally announced the product at PDC last week and I gave a presentation on how we built the product. I promised the attendees I would blog the content...
  • Tales from the Smart Client

    Speaking at PDC -- Building an large application with WinFX

    • 1 Comments
    I'm speaking at a lunch session on the 16th about how we built a large client application using WinFX, in particular Windows Presentation Framework (aka Avalon). The application itself will be announced at PDC, but for the purposes of this talk it doesn...
  • Tales from the Smart Client

    New blogger

    • 0 Comments
    My colleague and friend ChuckJ has started blogging. Chuck has been key in defining the latest XAML spec and is on to new and exciting stuff to be revealed soon: http://www.removingalldoubt.com/ In a former life you may know Chuck as architect of Borland...
  • Tales from the Smart Client

    Counting all the Visuals in an Avalon tree

    • 1 Comments
    Here's an example of using the VisualTreeWalker from the last post: public class TreeStatistics { private int visualCount; private int greatestVisualDepth; private int depthTotal; private FrameworkElement root; public TreeStatistics(FrameworkElement...
  • Tales from the Smart Client

    Avalon Performance: What is your Visual count?

    • 1 Comments
    The Avalon compositional UI model encourages you to create Styles and Templates (VisualTree in the May CTP build) that automatically generate visuals. Build a complex Visual Tree and create a bunch of these automatically with data bound ListBoxes, and...
  • Tales from the Smart Client

    Walking the Visual Tree in Avalon

    • 1 Comments
    Sometimes you just need to walk the tree of Visuals in Avalon. It's easy to do, but it is even easier if you have a nice Visitor-pattern implementing tree walker. So: using System; using System.Collections; using System.Diagnostics; using System...
  • Tales from the Smart Client

    DataControls in ASP.NET

    • 1 Comments
    I've been reading Nikhil's series on data bound controls in ASP.NET. It is an interesting compare and contrast exercise with what Avalon provides, as well as just plain interesting: Four parts so far...first is here: http://www.nikhilk.net/DataSourceControlBasics...
  • Tales from the Smart Client

    XML templates

    • 0 Comments
    I'd forgotten this until someone pointed it out to me, but many moons and jobs ago, I was already thinking about representing UI objects in XML: http://lists.xml.org/archives/xml-dev/199710/msg00100.html I'm sure some of this must have been bouncing...
  • Tales from the Smart Client

    Avalon Grid effects

    • 0 Comments
    My colleague Amir Khella is experimenting with the Avalon Grid control, using it to provide FishEye effects quite unlike anything you'd expect from a mere layout container: http://www.elementsofpassion.com/archives/2005/07/playing_around http:/...
  • Tales from the Smart Client

    Worst jobs?

    • 2 Comments
    I'm afraid this is going to turn into a Monty Python-esque spiral ending with "...and then boss murdered us in cold blood and danced around our graves until sunrise", but following on Rory and Chris , I gotta tell about my two worst jobs: 1) Like Rory...
  • Tales from the Smart Client

    Acrylic Beta

    • 0 Comments
    We just posted a beta of Acrylic , a vector illustration product coming soon from Microsoft. Microsoft bought a product called Expression a couple of years ago from Creature House, and a small team led by the long-time architect/developer/artist/man-about...
  • Tales from the Smart Client

    Seductive Programming

    • 0 Comments
    On the topic of the previous post, we had long debates at Asymetrix about C++ versus OpenScript , and there were similar issues when AutoCAD switched from AutoLisp to C. I coined the term "Seductive Programming" to describe the way tools are marketed...
  • Tales from the Smart Client

    On Programming Languages

    • 0 Comments
    I know Chris isn't implying dynamic languages are only for hobbyists, but any discussion of languages quickly starts to sort them for their attractiveness to developers on a scale from "hobbyist" to "professional developer". Why? This is a deep subject...
  • Tales from the Smart Client

    IronPython architecture

    • 1 Comments
    Chris and I met with Jim Hugunin this morning and got an overview of the IronPython architecture. Which is basically, very simple and straightforward. Like you might expect, it consists of a tokenizer, a parser, a code generator and a library of built...
  • Tales from the Smart Client

    CodeBehind and Python

    • 0 Comments
    Rather than push on embedding Python in XAML, which Chris has made fine progress on anyway, I changed tack and quickly got Python code behind working. Separating code and markup is considered best practice anyhow...and the implementation was trivial....
  • Tales from the Smart Client

    Attached Properties and Python script

    • 0 Comments
    While I'm trying to work around the xml:space issue from my last post, it is worthwhile to see how simple it was to create the attached property (which works fine, as long as your script doesn't need newlines...): namespace Pythalon { using System;...
Page 3 of 6 (143 items) 12345»