More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Damo's spot on the webPhotosProfileFriendsMore Tools Explore the Spaces community

Damo's spot on the web

Thoughts on ASP.NET, CSS & team development

Damian Edwards

View spaceSend a message
Occupation:
Age:
Location:
Interests:
"There are no ordinary moments" - Dan Millman
August 17

iPhone Speed Check updated to test connection latency

I've published an update to iphonespeedcheck.com so that it tests connection latency. I've also stripped out the dependency on third-party JavaScript libraries so it's extra lean. There's also a shiny new home screen icon too.

Note that the site will only work properly in Safari on Windows, Mac or iPhone/iPod Touch.

Thanks to Cybner for the hosting.

August 13

Using PageDataSource (was ParentDataSource) with ASP.NET Web Site projects

I got a request today from somebody who was trying to use my ParentDataSource (now called PageDataSource) control in an ASP.NET Web Site project and was running into problems. The bound control kept throwing an InvalidOperationException saying it couldn't load the type. Turns out the problem is with the difference in the way that pages and assemblies are dynamically compiled and loaded by the BuildManager in web site projects. The fix involves simple adding the dynamic assembly name to the type name so that the BuildManager can locate it correctly when the bound control asks for it:

if (ctl.Parent == null)
{
    // At the top of the control tree and user control was not found, use page base type instead
    this.TypeName = Assembly.CreateQualifiedName(
        this.Page.GetType().Assembly.FullName,
        this.Page.GetType().BaseType.FullName);
    _parentHost = this.Page;
    return;
}

You can download the updated control class file from here.

August 02

What have I been up to?

I haven't posted here in a long time so I thought I'd do a quick heads up of what I've been doing lately:

On top of that I finished up a long term gig I'd been on and took a couple of weeks off to unwind.

What's on my radar for the coming months?

Phew, that looks like enough! If you want to know what I'm thinking at any given time I can usually be heard chirping over on Twitter.

May 31

AccessKeyHighlighter v1.0.1 released

I've released an update to the AccessKeyHighlighter to resolve a couple of issues and add some new features. Check it out on its CodePlex page.

May 25

Announcing the AccessKeyHighlighter control for ASP.NET AJAX

I've finally managed to get the first release of my AccessKeyHighlighter control for ASP.NET AJAX published. When the control is placed on a form it highlights the access keys assigned to form fields when the user holds down the access key shortcut key in their browser (Alt for IE & Safari, Shift+Alt for Firefox). You can see a live demo of it in action here.

If you find it useful, be sure to leave me a note on the CodePlex site, and if you find any issues or have any suggestions for improvements or new features, please create a feature request on the Issue Tracker page.

May 22

ReMIX08 Australia Welcome to Internet Explorer 8 session content

Thanks to all those who attended my and Lachlan's session on IE8 at ReMIX in Sydney and Melbourne. We hope you got something out of it. You can download the deck and demo from the session below.





May 21

Suggested improvements for CSS editor in Visual Web Developer and Expression Web

People who know me will know that I love CSS and that I can often be found with my head deep in a CSS file in Visual Web Developer (the web tools in Visual Studio). Recently I've been thinking about how Microsoft could make the support for editing CSS files directly in these tools more conducive to discovering features of CSS you don't know about, improving productivity through better contextual awareness, and offering insight as to real world issues such as browser compatibilities.

So I've put together a series of mock-ups that illustrate some of the ideas I have for improving the support for CSS file editing:

  • Inline RGB colour picker
  • Ability to define colour swatches in XML comments including name, RGB and category
  • Inline colour swatch picker with $ keyboard shortcut that replaces name with hex RGB value on completion
  • Inline named colour picker with preview of named colour in pick list
  • Ability to choose browsers to warn of incompatibilities with when schema checking CSS
  • Green "squigglies" under CSS selectors and properties know to be unsupported or have issues in chosen warning browsers
  • ToolTips for CSS properties showing description and browser compatibility summary with hyperlinks to further information
  • ToolTips for CSS selectors showing description of what elements it will select, browser compatibility summary and specificity score with hyperlinks to further information on each
  • ToolTip preview of url resources (images) showing file size and image dimensions
  • ToolTip preview of font-family showing font source (TrueType, W3C, etc.) and font rendering preview
  • Support for automatic indenting of style declarations based on descendant or child selectors if they appear after each other

Hopefully somebody on the appropriate teams in Microsoft will here me :)

Presenting at ReMIX Australia

This week I'm presenting at ReMIX Australia in Sydney (yesterday) and Melbourne (tomorrow). I'm presenting a session along with Lachlan Hardy on Internet Explorer 8. The talk focuses heavily on web standards as that is the big news for IE8. Hope to see you there.

March 11

IE8 beta 1 browser version targeting and ASP.NET Themes

You might find that when you add the meta tag required to force IE8 beta 1 into IE7 (or 6) rendering mode into your ASP.NET page (or Master Page) that it doesn't work as expected.... IE8 continues to render the site in full standards mode. The reason might be that in beta 1 of IE8 the "X-UA-Compatible" meta tag must be the first element in the page head element and by default ASP.NET will insert the link tags to the CSS files in your theme at the beginning of the head element of your page (or Master Page), before any other elements that might actually be defined in the .aspx or .master file.

To fix this, add the following code to the page's (or Master Page's) PreRender event handler (Page_PreRender):

// Move browser tageting meta tag to top of header
HtmlMeta meta = null;
int metaXUACompatIndex = -1;
foreach (Control ctl in page.Header.Controls)
{
    meta = ctl as HtmlMeta;
    if (meta == null)
        continue;

    if (meta.HttpEquiv == "X-UA-Compatible")
    {
        // Grab index
        metaXUACompatIndex = page.Header.Controls.IndexOf(meta);
        break;
    }
}
if (metaXUACompatIndex > 0)
{
    HtmlMeta metaXUACompat = page.Header.Controls[metaXUACompatIndex] as HtmlMeta;
    page.Header.Controls.RemoveAt(metaXUACompatIndex);
    page.Header.Controls.AddAt(0, metaXUACompat);
}

This will move the browser targeting meta tag to the top of the list so that IE8 will honour it.

March 06

I'm at MIX08 in Las Vegas

Keep track of what I'm doing (when I have charge) on twitter: http://twitter.com/DamianEdwards

View more entries
 
Updated 6/16/2008
Updated 3/9/2006
Updated 5/25/2008
Updated 3/28/2006