The magic behind live bindings explained
Dave has a fantastic and very detailed post about our implementation of the Observer pattern in ASP.NET Ajax 4.0. This feature is what enables the live bindings to work. Check it out! http://weblogs.asp.net/infinitiesloop/archive/2008/11/09/asp-net-ajax-4-0-observing-updates-to-pojos-plain-ole-......
Visual Studio patched for better jQuery IntelliSense
Jeff King just announced the release of a patch for Visual Studio 2008 that enables the IDE to find the –vsdoc.js file without requiring the developer to reference it. To give some context, a documentation file (basically the same file as the runtime script but with XML documentation annotations) ......
Building a data driven application with ASP.NET Ajax 4.0 and ADO.NET Data Services
Jim Wang (one of the great QA people on the Ajax team) just started a blog, and his first post is a very detailed walk through building a data-driven application from scratch using ADO.NET Data Services and the new client templates in ASP.NET Ajax 4.0. http://weblogs.asp.net/jimwang/archive/2008/1......
PDC 2008 ASP.NET AJAX Futures talk available online
The full 83 minutes of my PDC talk are available on the Channel 9 web site. You can watch the session online (using Silverlight) or download the video in a number of formats. Slides and source code for the demo are also available.
Watch online: http://channel9.msdn.com/pdc2008/PC32/
Download MP......
ASP.NET 4.0 Roadmap talk available online
Scott Hunter’s talk on the ASP.NET 4.0 roadmap (in which I’m doing a 10 minute demo) is available from Channel9: http://channel9.msdn.com/pdc2008/PC20/...
Going to California
I’m flying to San Jose tonight for tomorrow’s OpenAjax Alliance face to face meeting, which Microsoft is hosting. On Friday, we are also hosting a new event that aims at establishing a dialogue between JavaScript library developers and Microsoft. We’ll have talks from the IE, Visual Studio and ASP.......
Using the power of binding to animate changes
In a recent post, I showed how the binding component can be instantiated independently of the {binding} markup extension. But there’s a whole lot more it can do. For instance, it has two very interesting callback properties, convert and convertBack that get called any time the binding sees a chang......
Hack: using live bindings outside templates
A comment on this post is asking whether it is possible to create bindings outside of a template. The point of doing that is that you don’t necessarily want to render a template just to set-up a few bindings.
Well, bindings are really implemented by a component, Sys.Binding, and a markup extension......
Alt.NET podcast on jQuery
We had an interesting conversation with the good people from the Alt.NET podcast on jQuery and what it means for .NET developers. Check it out: http://altnetpodcast.com/episodes/11-jquery-in-asp.net...
A possible cause of “‘Sys’ is undefined” explained
Clay Compton explains on the ASP.NET QA blog how bad web.config overrides can lead to the Microsoft Ajax Library not loading and the “‘Sys’ is undefined” error being thrown when the page loads. It’s a great read and hopefully will unblock some of you. http://weblogs.asp.net/asptest/archive/2008/10......
Client templates in MSDN Magazine
My first full-length article in MSDN Magazine is out with the October issue and it’s about Microsoft AJAX client templates. Check it out… http://msdn.microsoft.com/en-us/magazine/cc972638.aspx...
jQuery now officially part of the .NET developer’s toolbox
You may have read that from John Resig or Scott Guthrie. I’m very excited to announce that Microsoft has decided to ship, adopt and support using jQuery on top of ASP.NET. This may come as a surprise to some of you but I hope you’ll agree with me that it makes total sense. jQuery is a fantastic Jav......
JavaScript and client templates on Hanselminutes
I'm sharing a spot with Scott Cate (of CloudDB fame, and by the way CloudDB is a fantastic product built entirely using ASP.NET AJAX) this week on Hanselminutes. I had lots of fun discussing with Scott (Hanselman) on various topics ranging from JavaScript to the Microsoft Ajax Library and our new ......
Using client templates, part 2: Live Bindings
In part 1, we saw how to use DataView to render JavaScript data using a simple template. In this post, we'll see how rich bindings unlock richer scenarios where user changes automatically propagate back to the data and to all UI that is bound to it. In part 1, we used the simplest type of binding,......
Using the Ajax Control Toolkit in ASP.NET MVC
Stephen Walther has a pretty cool post on using the new file-only version of the Ajax Control Toolkit from an MVC application:
http://weblogs.asp.net/stephenwalther/archive/2008/08/22/asp-net-mvc-tip-36-create-a-popup-calendar-helper.aspx
UPDATE: the problem with Stephen is that he writes quite f......
Ajax Control Toolkit released for .NET 3.5 SP1
I just released the latest version of the Ajax Control Toolkit for .NET 3.5 SP1.
This is an intermediary release that provides a version of the Toolkit that is built against the .NET Framework 3.5 SP1. It contains a new control, MultiHandleSlider, built by Daniel Crenna (thanks, Daniel, you're the......
Need a simple grid for ASP.NET Ajax?
A client grid control is probably the most requested control for the Ajax Control Toolkit. It will come eventually but if you need a simple grid control right now, DotNetSlackers' Ajax Data Controls do a pretty good job. Their grid supports pagination, sorting, drag and drop of columns, in-place ed......
Using client templates, part 1
Last week, we shipped the first preview for the Ajax work we're doing in ASP.NET 4.0 under the simple form of a simple script file (release and debug versions). This should show how much emphasis this release puts on the client-side. As a matter of facts, I'll use a plain HTML file here instead of ......
Alternating styles in ListView without AlternatingItemTemplate
ListView (the server-side control), like all repeating data controls in ASP.NET, has an AlternatingItemTemplate, but it would be a shame to have to copy all the markup in the ItemTemplate into AlternatingItemTemplate, just to alternate styles on the items. It's quite likely that only css classes wi......
ASP.NET AJAX 4.0 CodePlex Preview 1 available
I'm very happy to announce that the first preview for the new Ajax features in ASP.NET just went live. Thanks to everyone who made that happen and thanks to all of you for providing feedback on the Roadmap. This preview contains preview implementations for the following features: Client-side t......
Using ScriptManager with other frameworks
ScriptManager is a useful control. It manages script references, removes duplicates, enables localization and debug/release modes, enables script combining and makes client-side component-based development easier (components register their script dependencies with ScriptManager without the page dev......
ASP.NET Ajax roadmap published
We just published our roadmap for ASP.NET Ajax. In this document we describe some of the proposed features that we are considering investing in future releases of ASP.NET AJAX, Visual Web Developer, and the ASP.NET AJAX Control Toolkit. We really appreciate your feedback, so this document is in......
Script reference profiler
ASP.NET Ajax 3.5 SP1 contains a new feature that enables the application developer to combine scripts in order to reduce the number of downloaded files. But in order to do that, the developer must have a way of discovering what scripts are being used in a page or application.
To make that easier, ......
A case for partial rendering
I've been seeing more and more authors lately dismissing partial rendering (a.k.a. UpdatePanel) as a poor man's version of Ajax, something you should only choose if you're too lazy to implement "true" Ajax. I think that view not only has a slightly pedantic ring (isn't laziness one of th......
If you're reading this, you should be on weblogs.asp.net/bleroy
Apologies if you're not. Let me explain. I'm publishing this post on my blog, which quite a few external sites chose to aggregate. I thank them for that, but I should still have the freedom to talk about any subject I want on my own blog no matter what the editorial line of those other sites is. Th......
Getting absolute coordinates from a DOM element
For some reason, there is no standard API to get the pixel coordinates of a DOM element relative to the upper-left corner of the document. APIs only exist to get coordinates relative to the offset parent. Problem is, it's very important to get those coordinates for applications such as drag and dro......
Improving PHP by running it in IIS
Mike Volodarsky wrote a fantastic article in the January 2008 issue of MSDN magazine in which he explains how you can take an existing PHP application (he uses QDig, a popular image gallery) and improve it without touching a line of its code. This is a great demonstration of the power of IIS 7's mo......
Dates and JSON
JSON is a great data format and it's taken the Internet by storm for a number of good reasons. But because of a strange oversight in the EcmaScript specs, there is no standard way of describing dates in JSON. There's been a lot of discussion on this topic and it still remains a problem today.
In t......
Screencast: how to enable server-side history management in an ASP.NET Ajax application
I've recently recorded a screencast showing how to enable server-side history management (in other words, handling the back button) in an ASP.NET Ajax application. The whole video is less than 15 minutes total and I build the whole application from scratch in there (in VB). I hope it shows just how......
Ajax usage survey among .NET developers
Following the more open-sourcey informal study that was recently advertised on Ajaxian, Simone Chiaretta publishes and analyses the results of his own study that he recently made and that is aimed exclusively at .NET developers. While Richard Monson-Haefel's study is being made for the third consec......
Does JavaScript need method overloading?
John Resig of Mozilla and jQuery fame has a very interesting post about method overloading in JavsScript. In a nutshell, he proposes a utility function that gives a relatively simple way of overloading a method. The different versions are distinguished by the number of arguments (not their types). ......
Is Safari on Windows a good thing or a bad thing?
The first thing most web developers probably thought this morning when they learned about Safari for Windows was "oh man, yet another browser to test in". And yes, for the moment, that's what it amounts to. Coincidentally, I have spent a good part of last week making the history management in ......
Microsoft Ajax events - part 2: exposing events from custom classes
In part 1, I showed how to subscribe to events exposed by JavaScript classes built on Microsoft Ajax. In this post, I'll show how to expose new events from your own classes.
Theoretically, the only things you have to do to expose an event are to implement "add_myEvent" and "remove_myEvent"......
Microsoft Ajax events - part 1: subscribing
When building Ajax applications, you basically deal with two kinds of events. First, there are DOM events, and second, events from JavaScript objects. This second category is not part of the EcmaScript specs (or of the DOM specs, of course) so each framework needs to define its own pattern to expos......
Woohoo! I'm on TV!
The latest episode of the .NET show is all about ASP.NET Ajax. Brad and Matt first have a really interesting discussion of the history and architecture of ASP.NET Ajax and then you can see me demo-ing UpdatePanel, extenders and localization.Most of the demos are extracted from the short book Matt ......
The format for JavaScript doc comments
Xml documentation annotations are going to drive JavaScript IntelliSense in Visual Studio Orcas (the next version of Visual Studio). For more than a year now, we've been including xml doc comments to all public APIs in the Microsoft Ajax Library (which are a great place to check out some examp......
How to keep some context attached to a JavaScript event handler?
The problem is the following... You want to attach a handler to a DOM event but you want some information to remain associated with it. Let's say for example that the handler is a method of an object that makes use of the "this" pointer somewhere in its body (as it should, otherwise it sh......
OpenAjax meetings
It was my great pleasure to be at the face to face OpenAjax Alliance meetings for the first time last month. Thanks to the nice people at IBM for hosting them. I really enjoyed the discussions with Alex from Dojo, Gideon from OpenSpot and many others. There were also great demos of OpenAjax-ba......
Scott on JSON hijacking
Scott has a great post on how ASP.NET Ajax has built-in mitigations already in place for JSON hijacking attacks:http://weblogs.asp.net/scottgu/archive/2007/04/04/json-hijacking-and-how-asp-net-ajax-1-0-mitigates-these-attacks.aspx...
ASP.NET Ajax UpdatePanel PDF erratum
I corrected a few remaining errors in our O'Reilly shortcut on UpdatePanel (mainly references to the old Atlas codename). If you already bought it, you can download the new version for free. And if you haven't, what are you waiting for? ;)http://www.oreilly.com/catalog/atlasupc...
Microsoft joins OpenAjax
I'm extremely pleased to announce that we're joining OpenAjax today and that I'll represent the company in the organization's meetings starting this Thursday. This is a way for us to ensure that our user community can combine the Microsoft AJAX Library and ASP.NE......
What are these Foo$Bar$baz functions in the Microsoft Ajax Library files?
If you've looked at the debug version of our JavaScript files, you may have noticed code similar to that:Foo.Bar = function Foo$Bar() {
Foo.Bar.initializeBase(this);
}
function Foo$Bar$baz() {
// Do something
}
Foo.Bar.prototype = {
baz: Foo$Bar$baz
}
Foo.Bar.registerClass('Foo.Bar');
......
UpdatePanel PDF updated for ASP.NET Ajax 1.0
The PDF document that I wrote with Matt Gibbs a while ago on UpdatePanel is now up to date and in sync with the RTW (Release to Web) version of the ASP.NET 2.0 Ajax Extensions. It's a 60 page document that teaches how to use the UpdatePanel control to incrementally "ajaxify" an ASP.NE......
ASP.NET Ajax-aware JavaScript IntelliSense available from the Orcas CTP
This is an absolutely awesome feature. IntelliSense / autocompletion for JavaScript is a difficult problem (because of the dynamic nature of JavaScript) which the Visual Studio team is brilliantly solving. They were able to build an elegant solution to the problem that works reasonably well on plai......
How to work around the access denied cross-domain frame issue in ASP.NET Ajax 1.0
Some users have run into an issue when hosting ASP.NET Ajax applications in a frame or iframe that's in a different domain from the top-level window. If you try to do that and browse to the page using IE, you'll receive an "access denied" error client-side any time a DOM event is ......
We shipped!
I'm very proud to announce that ASP.NET Ajax 1.0 shipped this morning. This is the result of all the work we've done since the first CTP and of all the very valuable feedback from our early adopters. I can't stress this enough: this product is probably one of the Microsoft products that......
Eilon's class browser for the Microsoft AJAX Library
Back in the CTP days, Wilco wrote a nice class browser that has been used for a while by the ajax.asp.net documentation site.Eilon has written a new class browser that is more complete than Wilco's and that has the interesting particularity to build on top of a reflection layer for the AJA......
DOM events in the Microsoft AJAX Library
In previous CTPs, the client-side DOM event model was the IE model. You would use attachEvent and get the event data from window.event. In other words, we had just implemented the IE model in Firefox and Safari. This didn't fly as well as we expected for a number of reasons. For instance, it wasn't......
Dynamic languages in ASP.NET
David Ebbo wrote a very interesting article that explains in great details how they gave ASP.NET the ability to be driven by dynamic languages. The compilation system, on which David worked for a few years, is explained, as well as why it doesn't apply to dynamic languages. Then he goes on to e......
Meet the team in Vegas next week
I'll be in Las Vegas next week for ASP Connections with some other people from the AJAX team. If you're going too, stop by and say hi.We're going to talk about some new exciting features, in particular some great localization and globalization stuff.
Share this post: Email it! | bo......