Shanku (Atlas/ASP.NET PUM) just finished giving his Atlas talk where he went through the major parts of Atlas and did a bunch of demos.
He also demo'd some of the stuff that my team has been working on. I've been hinting about exactly what it is, and it's been now (cryptically) mentioned by Shanku and Scott in a few places.
I'm on a mission to make developing Atlas controls and extenders as easy as possible, as soon as possible. I spent a few weeks fiddling with Atlas and I noticed a very common pattern:
Control Extender -> XML Script -> Behavior
Control Extenders, as I mentioned earlier, are server-side controls that hook up server-side UI controls with client side behaviors. The glue between them is XML script that gets parsed on the client side and attaches the behavior to the running browser element.
ControlExtender derive from a class called ExtenderBase, and have a collection of objects that derive from TargetProperies. From my last post, an extender for the ConfirmButton behavior might look like this in the ASPX:
<myns
So basically what's here is a class that derives from ExtenderBase that has a collection of type ConfirmButtonProperties. Each ConfirmButtonProperties object has a property called ConfirmText.
The first thing I realized is that if you just named the properties in the ConfirmButtonProperties the same as the ones in your Javascript file, we could easily just walk that object and automatically generate the XML script for you. Cool! That's one less thing to learn, right?
That was just the start. I also realized we could do a bunch of other stuff automatically. Things like...
So it kind of grew from there. The more we built the more cool ideas we had. We started writing controls and adding functionality to the base classes, and before long, cranking out awesome Atlas controls/behaviors was a snap.
See, my last post was about how much I dig the Atlas Javascript framework. So my goal here was two-fold:
1) To make the page-builder experience as familiar as possible for an ASP.NET developer 2) Cut out all the steps that I could so all you had to learn to get started was how to work in the Javascript framework. No XML, no script references, none of that. IJW - It Just Works. You can learn the other stuff later, but you're not forced to learn it up front.
1) To make the page-builder experience as familiar as possible for an ASP.NET developer
2) Cut out all the steps that I could so all you had to learn to get started was how to work in the Javascript framework. No XML, no script references, none of that. IJW - It Just Works. You can learn the other stuff later, but you're not forced to learn it up front.
And now I've been having fun writing (eeeek!) Javascript and building behaviors that you can easily integrate into new or existing web pages. We're going to give out source for the ones that we've built:
In most of these cases you can also use the Javascript portion side as a standalone for non-ASP.NET scenarios as well.
We're working on getting this stuff packaged up so I can get it posted here soon and on the Atlas site before long. As soon as that happens, I'll post a walkthrough of exactly how to use it so you can see first-hand why I've been having so much fun doing it.
UPDATED: Forgot CascadingDropDown...