April 2007 Entries

Soooo, ok, they released a new May CTP of ASP.NET AJAX futures. It's got some new support in there for Silverlight related stuff now. Great, awesome, love to see it and totally understand they need to pimp the new platform. What has really happened beyond that though? I'm not seeing (m)any differences in the xml-script, bindings, controls and animation code that (used to?) make(s) up the real power of the previous release of the futures.

As a simple example, let's start with the fact that there's no standard ICollection interface. There's INotifyCollectionChanged (weird considering there's no ICollection, eh?) and there's loose support for duck typing of a collection class within some of the controls, but no true ICollection yet.

As a more complex example at the Selector control. First off it's data-binding support is weaker than that of ListView. Selector can either take a "pure" JavaScript array of objects, which it wraps with a DataTable (heavy handed), or it can take an instance of an object which is parses using parseFromJson (bad name if you ask me... JSON is the serialization format, not the runtime representation of the object) and, again, turns it into a DataTable. ListView on the other hand supports that concept of a custom collection (through duck typing as I mentioned above). Selector also doesn't even expose a way to get at the currently selected item. Sure it gives you the selected index, but that's extremely useless in binding scenarios which is the most powerful feature of the futures. We actually extended the prototype of Selector here at Mimeo to support  the above shortcomings in anticipation of it being added in the next drop. If anyone else wants these enhancements, click here to download.

Even further still, DataSource doesn't properly support custom WebServices (i.e. Sys.Preview.Data.ServiceType.Handler). Neither does ServiceMethodRequest. which always wraps the parameters as DataService parameters (i.e. parameters + loadMethod), so we can't even call our own web methods using it without creating a shim method on the web service likse MySearchHACK(Dictionary<string, string>, string) and then converts the parameters and calls the real method which is MySearch(string, int).

Anyway, it seems like Silverlight is ursurping the development of the core AJAX futures and, while I'm all for Silverlight, I think it's a bad move to put these features on the backburner. They should be fleshed out and delivered. They are extremely valuable to those of us trying to build rich web browser (only) based applications.

I'd love to hear from someone inside MS on what exactly their intentions are at this point. If it's dead, fine... just let us know. If it's not, tell us what to expect and when to expect it so we can make decisions on how to proceed. I've said it before and I'll say it again, the stuff that was cut from ASP.NET AJAX 1.0 and ended up in the futures was much more important to developing rich internet applications than 1.0. It's true that 1.0 layed the groundwork, but having to cobble together all the UI in JavaScript still with $get and $addHandler, while possible, isn't what I'd call a good platform. I want to do:

<page xmlns="....">
  <serviceRequest id="myWebServiceRequest" url="MySearch.asmx" methodName="Search" useGet="false" />
  <textBox id="mySearchText"/>
  <button id="myButton">
    <click>
      <invokeMethodAction target="myWebServiceRequest" method="invoke">
         <bindings>
            <binding dataSource="mySearchText" dataPath="text" property="parameters" propertyKey="searchText" />
         </bindings>
     </invokeMethodAction>
    </click>
  </button>
</page>

Declarative, simple, no code. That was the power of ASP.NET AJAX before the split and hopefully remains the power when (if?) the futures are ever truly delivered.

posted Monday, April 30, 2007 7:29 PM | Comments | Filed Under [ Web Development ]

Upload up to 4gigs to Microsoft's network and they'll give you back a URL that you can point to and present however you like in your own web site. Backed by Microsoft's content network, you can be sure that if you're Slashdotted or Digg'd your video will (hopefully) still be served up to everyone at full speed. Read more about it here...

posted Monday, April 30, 2007 10:48 AM | Comments | Filed Under [ Web Development ]

Just announced by Ray Ozzie on stage @ Mix '07, Expression Studio is now shipping! Congrats to those teams! It's a huge step forward for WPF/Silverlight because now we have a real tool for the designers to work in.

posted Monday, April 30, 2007 9:56 AM | Comments |

There it is. As I suspected, Ray Ozzie just anounced they are pushing out a "first class" .NET runtime environment with Silverlight that will allow you to develop using any .NET languages!!!!

I'm waiting to hear details on what exactly "first class" means... will there be full BCL support for example?

Update 1:53 EST:
Wow. It's a full blown, high performance implementation of the CLR... it even supports new 3.5 language features such as LINQ!!! It supports a "subset" of the BCL, not sure what the specifics are on that yet. They also announced something like HTML DOM integration and a special networking stack. More on that ASAP.

Update 1:57 EST:
WOW!!!!!!!!!!!!!!!!! You can remote debug the Silverlight application running on the Mac from your PC using Visual Studio!!!!!!!

posted Monday, April 30, 2007 9:51 AM | Comments | Filed Under [ .NET Web Development ]

Sounds like it might have been a mistake to blow Mix off this year. Last year's just didn't seem all that compelling, but this year with Microsoft offering so many new web technologies I'm beginning to think I'm missing out.

Well, guess I'll just keep an eye on the Mix07 site. You can even watch the keynote live (starts @ 9:30 PT).

For now, back to working with the AJAX futures. We're building a really cool new project here using those bits. They're pretty solid considering they're only a CTP. I was sooo bummed when they cut these features (binding, xml-script, animation, etc.) from the RTM build. Speaking of which... I wonder if they'll release a new drop during a new conference??? I'll keep my fingers crossed.

posted Monday, April 30, 2007 8:59 AM | Comments |

I can't get references to work in Web Application Projects in Orcas. They seem to work fine under a regular Web Site Project though. Bug? I sure hope so...

To check this out for yourself, create a Web Site and Web Application Project. Make sure you manually add a reference to System.Web.Extensions for the WAP version, 'cause unlike WSP they don't include the reference by default yet (also a bug IMHO). Next, put a Test.js file in both flavors of projects containing just this:

/// <reference name="MicrosoftAjax.debug.js"/>

Then, go to the next line and type "$g". If it doesn't auto-complete and give you "$get" in the completion list, it's not working. Like I said, for me, it seems to work in WSPs, but not WAPs. *shrug*

posted Tuesday, April 24, 2007 4:27 PM | Comments |

Well, you've probably read this some place else already, but I'm jumping on the bandwaggon since I think it's a huge announcement. The technology formerly known as WPF/E is now officially called Silverlight. You can read all about it over here. I think this is a huge step for Microsoft... and one that's going in the right direction.

Perhaps most interesting is that it seems, this post hints at something that has yet to be announced, something I think this post might have already let slip, which is that the .NET runtime may very well come to the Mac in full force (i.e. a complete CLR and framework). That would be supremely awesome. In the past it's only been a "partial" platform with enough of the CLR and framework classes to support WPF/E itself. I, for one, am keeping my fingers crossed.

posted Monday, April 16, 2007 10:25 AM | Comments | Filed Under [ .NET Web Development ]