Archives / 2003
  • Building RSS Readers with ASP.NET Whidbey

    Kent showed a simple RSS reader that can be built with the ASP.NET Whidbey alpha today.  Note that in the alpha the XmlDataSource can only databind to local XML files stored on the file-system.  With the beta we've added support for the XmlDataSource to also be able to bind to remote XML documents available over a network.  This will enable you to build an RSS reader populated off of remote RSS feeds (like 

  • New ASP.NET Web Resources Control Feature in Whidbey

    Nikhil has posted two blogs on the new web resources feature in Whidbey.  At a highlevel it provides a nice way for control developers to encapsulate resources for their controls within a compiled assembly (as resources), and then be able to leverage them at both runtime and design-time without having to copy files all over their dev machine and web-server (for example: for images, scripts, etc).

  • XHTML and Accessibility in ASP.NET Whidbey

    Folks on my team setup a good set of reviews for me last Friday to go over our final plans on Accessibility and XHTML compliance for ASP.NET Whidbey.  I left the meetings feeling really good about where we'll end up when Whidbey ships.

  • Performance Tuning and ASP.NET Whidbey

    We are now in the final mini-milestone of Whidbey feature development -- which is the time when we start to really push hard on performance, even if it means cutting features to hit the necessary performance goals (which is one of the hardest things to go through when shipping a product -- and thankfully one that we haven't had to-do yet with Whidbey).

  • Legomation and Stop Motion Videos built with Web Cams

    I read an article in the November edition of Wired magazine on how you can build stop-motion animation films using Legos and fairly cheap Web Cams (many of which -- including the Logitech Quickcam -- come with built-in stop motion animation software). 

  • My PDC Keynote Demo

    I was forwarded a few pictures from my PDC keynote demo today.  Keynote demos are always “fun” events, and are great at creating a lot of stress in a compressed period of time.

  • Fun ASP.NET Whidbey Tip/Trick: DataBinding to Generics

    One of the great new features in Whidbey are "Generics" -- which basically provide a mechanism that enables developers to build classes whose signature and internal datatypes can be templatized.

    For example, rather than use an ArrayList (which is a collection of type Object), or force developers to create their own strongly typed list collection class (ie: the OrderCollection class) -- developers using Whidbey can use the new List class implemented within the System.Collections.Generic namespace, and specifically specify the type of the collection when using or referencing it.

    For example:

    // Use the built-in "List" collection within the System.Collections.Generic namespace
    // to create a collection of type "Order"

    List<Order> orders = new List<Order>();

    // Add Order objects into the list

    orders.Add(new Order(123, "Dell"));
    orders.Add(new Order(345, "Toshiba"));
    orders.Add(new Order(567, "Compaq"));

    // Lookup the "OrderId" of the first item in the list -- note that there is no cast below,
    // because the collection items are each an "Order" object (as opposed to "Object"
    // which they would be with an ArrayList

    int orderId = orders[0].OrderId

    // The below statement will generate a compile error, but would have
    // compiled (but generated a runtime exception) if the collection was
    // an ArrayList

    orders.Add("This will not work because it isn't an order object");


    Below is a more complete sample on how to use Generics with the new ASP.NET ASP:ObjectDataSource control, and then bind the list to a GridView control.

    First is the "OrderSystem.cs" file which should be saved within the "Code" directory immediately underneath the application vroot:

    // OrderSystem.cs: Save within "code" directory
    using System; using System.Collections.Generic;

    public class Order { private int _orderId; private string _productName;
    public Order(int orderId, string productName) { _orderId = orderId; _productName = productName; }
    public string ProductName { get { return _productName; } }
    public int OrderId { get { return _orderId; } } }
    public class OrderSystem { public List<Order> GetOrders() { List<Order> orders = new List<Order>();
    orders.Add(new Order(123, "Dell")); orders.Add(new Order(345, "Toshiba")); orders.Add(new Order(567, "Compaq"));
    return orders; } }
    I can then write a simple .aspx page that uses the ObjectDataSource control to bind against the "GetOrders" method to retrieve a List of Order objects. I can then point the GridView at the ObjectDataSource control:

    <%@ page language="C#" %>
    <html> <body> <form runat="server"> <asp:gridview id="GridView1" runat="server" datasourceid="ObjectDataSource1" bordercolor="#CC9966" borderstyle="None" borderwidth="1px" backcolor="White" cellpadding="4"> <headerstyle forecolor="#FFFFCC" backcolor="#990000" font-italic="False" font-bold="True"> </headerstyle> </asp:gridview>
    <asp:objectdatasource id="ObjectDataSource1" runat="server" typename="OrderSystem" selectmethod="GetOrders"> </asp:objectdatasource>
    </form> </body> </html>

  • The PDC was a Blast...

    I just returned to Seattle from the PDC in LA (I ended up staying an extra day to present to the local .NET User Group on Whidbey Thursday night).

  • ASP.NET Whidbey Cool Tips and Tricks Talk Coming Along

    I was a bad person and just started working on my Cool Tips and Tricks talk for the PDC this week.  My official reason for waiting was that I was holding off working on content until the other 18 ASP.NET Whidbey talks were done -- so that I could make sure to avoid any duplication of content.  For those who have never been to one of my tips and tricks talks before, the basic structure I use is a slide/demo/slide/demo format.  The emphasis is on cool stuff that can you can easily put into most applications.

  • ASP.NET Whidbey Blog Controls at PDC

    Nikhil and Andrew Lin have been working on some cool new Blogging controls for Whidbey in preparation for Nikhil's Building ASP.NET Server Controls talks at the PDC (WSV 401 and WSV 402).  Specifically, they are building a BlogDataSource control that demonstrates how to write a new ASP.NET Whidbey DataSource control (which will mean that any standard ASP.NET control will be able to declaratively databind against it -- no code required), as well as a BlogEntryView control that enables easy creation and editing of blog entries (including a cool out of band server callback scenario for spell checking).

  • Screenshots of ASP.NET Whidbey

    Several folks have pinged me asking for screenshots of my keynote demo ( to see what the final output looked like.  Below is a quick walkthrough of the various steps.  Apologies for the weird screen-color on a few of them (apparently alt-print screen and MS Paint doesn't always handle the pallete correctly!). Click each image to see a full-size version.

  • Just Got Back from ASP.NET Connections

    It was a busy last 24 hours at ASP.NET Connections -- 5 breakout talks, 1 night-time panel, and the keynote this morning.  I just flew back to Seattle a few hours ago and am totally beat.

  • Busy Week Prepping for the PDC

    There are times when I have to admit that I'm glad the PDC isn't every year -- because frankly getting ready for it is exhausting work. ;-)

  • Whidbey Preview at ASP.NET Connections

    ASP.NET Connections is rapidly approaching (October 12th-15th).  I'm doing both a keynote and 5 breakout talks.  Two of my breakout talks are currently titled “Special Top Secret ASP.NET Team Sessions”. 

  • Just finished an Interview for .NET Rocks

    Carl Franklin and Mark Dunn called me for a phone interview for their .NET Rocks series today.  We ended up spending the whole time talking about ASP.NET Whidbey (our V2.0 release), during which I gave a few previews of some of the things we are doing.  I only spilled the beans on about 2% of the overall feature set, but hopefully enough to be interesting and tantalizing....

  • ASP.NET 2.0 at the PDC

    The PDC is going to be a big one this year.  ASP.NET V2.0 (aka “Whidbey“) will be among the technologies first publicly shown (and each attendee will walk away with a tech preview release of it).

  • New Version of Web Matrix Making Progress...

    Our team has been spend some cycles the last few months on a new refresh of Web Matrix.  We've unfortunately been heads-down on ASP.NET V1.1 and ASP.NET V2 for the last several months -- which is why the refresh has taken longer than we origionally hoped for.

  • New Blog Aggregator...

    Jeremy Allaire (formerly of Macromedia and before that Allaire) phoned me Friday to sync up and chat a little about the future of the web.  One of the things we talked a little about was the current state of blogs and blog aggregators (we had met once before at a web developer conference where we had both done keynotes -- but reconnected by stumbling on each others Blogs). 

  • QQQ is sending out an SOS

    Thomas Marquardt, one of our developers on ASP.NET, recently published an article on MSDN about ASP.NET performance monitoring.  Along with the article are a number of great utilities (all complete with C# source code). 

  • Hitting Code Complete

    This weekend has been a pretty busy one for my team (ASP.NET and the Visual Studio web tools) as we drive towards hitting code complete (CC) for our current V2 feature milestone.  Our target date for hitting CC was this past Friday (the 14th) -- which really means late Sunday night.  About half of my team has been here at somepoint this weekend finishing up -- we look to be on track for hitting our goal.

  • My First WebBlog Entry

    Scott Watermasysk was kind enough to help set me up with this new blog -- and this is my first entry in it.  So far, I've been very impressed with the system he has built -- it looks very polished!