Atlas Presentation Slides and Demos

Slides, demos and a brief overview of the contents from my atlas talk (PRS420) at PDC05. Enjoy!

I have made the slides and demos from my session, PRS420, available here. You can download the samples, and run them locally along with the atlas preview bits.

A quick overview and guide to the demos I did:

  1. Building Script Types and Components (ScriptLibrary/Sequence.js, SequenceClass.aspx, and SequenceComponent.aspx)
    • A sampling of OOP patterns such as namespaces and classes.
    • Implementing a component to participate in the component framework (bindings, actions, declarative markup, etc)
  2. Encapsulating Data Access (ScriptLibrary/PhotoList.js and PhotoList.aspx)
    • Using XMLHTTP via the WebRequest and ServiceMethodRequest abstractions.
    • Natural incorporation of async programming model in atlas.
    • Building higher level data access semantics by including image pre-fetching logic.
  3. Script Controls (ScriptLibrary/SlideShow.js and SlideShow.aspx)
    • Packaging UI behavior into components that can be associated with HTML markup and elements.
  4. Templated Script Controls (ScriptLibrary/TemplatedSlideShow.js and SlideShow2.aspx)
    • Support for client-side templates along with CSS to support customization of content, and look and feel.
  5. Script Components as Reusable Blocks of Functionality (PhotoAlbum.js and PhotoMap.aspx)
    • Demonstration of how the building blocks (photo list, photo sequence, and slideshow) can be used in larger applications.
  6. Server Control (Postback-based: PhotoSelector.cs and PhotoSelector.aspx)
    • A basic CompositeDataBound control built using the ASP.NET 2.0 data-bound controls architecture.
  7. Server Control (Atlas-enabled: DynamicPhotoSelector.cs, PhotoDataSource.cs and DynamicPhotoSelector.aspx)
    • Server controls that implement IScriptComponent and work with the ScriptManager to render XML script markup and utilize atlas to implement their client side functionality.
    • Server controls that preserve server programming model (properties, events, state management in pages that use atlas along with post-back)
  8. I also showed a demonstration of the upcoming version of the Web Development Helper and features that help in developing rich Web applications. I will be updating the download point soon... hopefully on Monday.
  9. Bonus material not shown: Script Behaviors (OverlayBehavior.js, CrossFadeBehavior.js and SlideShow2.aspx)
    • These implement the cool translucency of the description overlay and fade effects from one image to another in the slide show.

Hopefully these make for good learning material... enjoy!


[ Tags: | | | ]
Posted on Saturday, 9/17/2005 @ 4:50 PM | #Presentations


Comments

32 comments have been posted.

Chandra

Posted on 9/17/2005 @ 6:46 PM
Thanks for demos from the PDC. I attended both atlas sessions and found them very useful. I have been following the news on developing AJAX style apps for sometime now and found the native support for Ajax in ASP.NET 2.0 very encouraging because we had about 6 months ago decided to move from J2EE to .NET 2.0.

And thanks for the web development helper. It is quite useful and I can't wait to download the new version (to debug Javascript errors).

Zubair.NET!

Posted on 9/18/2005 @ 5:24 AM
Nikhil,

Thanks for the Samples, However I am receiving some error trying to run the samples.

I copies Microsoft.Web.Atlas.dll into the bin directory and copied the Atlas client script library into the ScriptLibrary/Atlas directory. However, when I try to build I get the following error.

Error 1 The type or namespace name 'Web' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) C:\Documents and Settings\.....\PDC2005\Demo\Controls\DynamicPhotoSelector.cs

Am I missing something? Do I need to have VS 2005 RC1 installed for the samples?

Awaiting your reply...

Henk Feijt

Posted on 9/18/2005 @ 6:19 AM
Zubair.Net,

Check the references in the Controls. Look at the Microsoft.Web.Atlas reference. It may have a warning sign in the icon. This means that the reference is not found. Delete the reference and make a new reference to the assembly. You need the to Atlas bits that contain the assembly.

Hopes this helps.

Ramon Durães

Posted on 9/18/2005 @ 6:37 AM
Thanks

[],

Ramon Durães

Henk Feijt

Posted on 9/18/2005 @ 8:29 AM
Nikhil,

Great stuff. Could you write a post to explain the implementation of the IScriptComponent methods. There are a lot of things going on, but it is hard to understand. As a control developer I would like to experiment by creating my own Atlas controls.

Zubair.NET!

Posted on 9/18/2005 @ 8:46 AM
Thanks Henk Feijt,

Great work Nikhil.

Keyvan Nayyeri

Posted on 9/18/2005 @ 11:35 AM
Thank you very much. They are very helpful.

Ramon Durães

Posted on 9/18/2005 @ 1:09 PM
Hi Nikhil,

This possible create DatePicker using Atlas?

Srikanth

Posted on 9/19/2005 @ 12:05 PM
Nikhil,

Great work. Thanks for sharing the PDC stuff.
I tried running the samples and couldn't get the photolist, slideshow,slideshow2 pages to run?.Other pages work fine.
The page errors out with the javascript error as 'syntax error'.Everything in the code looks fine to me.
I have VS2005 Sep RC.
Is there something i'm missing?. Did anyone else had the same problem?
Appreciate your help in advance.

Thanks,
Srikanth

Edgardo Rossetto

Posted on 9/19/2005 @ 3:12 PM
I think this demos are intended to work with beta2, not CTPs

Anyway. Thanks for sharing the material Nik! :)

Israel Aece

Posted on 9/20/2005 @ 6:22 AM
Hello Ramon,

I believe that DatePicker control will come in the next release, how Nikhil speaks in your PPT:

"Upcoming Additions
New Controls:
RichTextBox, DatePicker, …"

Regards,

Israel Aece

Posted on 9/20/2005 @ 6:50 AM
Hello Nikhil,

Is it possible through the Atlas to invoke a method of the CodeBehind or Class (without WebServices), like AJAX/Remote Scripting?

Best Regards,

Nikhil Kothari

Posted on 9/20/2005 @ 11:45 AM
Alexander:
Yes you can create utility script libraries - though I'd recommend creating a static class with methods rather than have global methods.
ScriptManager currently doesn't have a whole lot you can specify declaratively, but it will (in the future) - hence it is on the page.
Regarding pre-requisites - some of these will go away as atlas functionality becomes more integrated with asp.net in the future. The master page etc. is not required - I agree it got in the way of the lab, and that is being fixed.
Declarative web apps being ugly - that is perhaps a personal opinion, and is likely to vary from person to person. For instance, I would look at the declarative style and say cool, and maybe eve beautiful, and look at imperative glue code and think ugly. I think glue ought to be declarative, and the guts of an app, i.e. code intensive aspects, should be packaged into components. That said, atlas can be used declaratively or programmatically.

Israel:
Yes, you can mark a public method on a page with [WebMethod] and call that using the PageMethodRequest object on the client. ServiceMethodRequest and PageMethodRequest both derive from MethodRequest, which contains the real logic of how to make a web method request.

Ray Fan

Posted on 9/21/2005 @ 10:58 AM
Hi Nikhil, where can I get Microsoft.Web.Atlas lib, the demo code is missing this ref. Thanks!

Nikhil Kothari

Posted on 9/21/2005 @ 7:34 PM
Ray, you get Microsoft.Web.Atlas.dll from the atlas preview bits (http://atlas.asp.net).

Also, Shanku has posted slides and demos for part 1 of the two atlas talks: http://weblogs.asp.net/ShankuN/archive/2005/09/21/425750.aspx.

Alexander Popov

Posted on 9/22/2005 @ 2:31 AM
>Yes you can create utility script libraries - though I'd recommend creating a static class with methods rather than have global methods.

how i can include this libraries. and how atlas processing dependies in it ( if process at all ) .

example:
i have java_script utiliti class with some static functions, MyLibrary. it depends on other javascript library, that provide some basic operations with lists ( map, filter, etc. )

I want to have functionality to include only MyLibrary script, and all depends libraries are included automatically.

Are you plan this functionality to atlas?

Tibi

Posted on 9/28/2005 @ 9:35 PM
As a participant at the PDC05 I was looking forward to attend the two Atlas sessions. My team is currently developing using AJAX technology so we were very interested in what Atlas can bring to us. Looking forward to see it released!

John

Posted on 10/18/2005 @ 2:45 PM
Check out more Good stuff on AJAX at http://www.ajaxgoals.com

Muhammad Niyaz Rana

Posted on 10/20/2005 @ 8:08 PM
thanks

Daniel Buchmueller

Posted on 11/11/2005 @ 11:45 AM
The samples don't work on my machine I think because the following needed .js files are not in your supplied zip package (http://www.nikhilk.net/Content/Presentations/PDC2005.zip):
< add src="ScriptLibrary/Atlas/AtlasUI.js" / >
< add src="ScriptLibrary/Atlas/AtlasControls.js" / >
< add src="ScriptLibrary/Atlas/AtlasUIGlitz.js" / >

Can you repost it or am I missing something?

Cheers,

Daniel.

Nikhil Kothari

Posted on 11/12/2005 @ 11:33 AM
You get the atlas scripts by downloading atlas from http://atlas.asp.net.

denn

Posted on 11/15/2005 @ 2:50 PM
Hi

Can someone please email me the "PDC.Samples.AtlasControls.dll" or a link to it?
denn007x@hotmail.com

I can't build the 'Controls' project because I'm using Visual Web Developer.

So I can't do the following in the readme file:
"3. Build the Controls project, and copy PDC.Samples.AtlasControls into the bin
directory."

Thanks
denn

Vish

Posted on 11/16/2005 @ 1:08 PM
What version of visual studio do I need to open the solution?
I have 2003 and it is complaining that this solution was created with a newer version....

rbfigueira

Posted on 12/10/2005 @ 3:04 PM
Hi

I am getting some script error on the sample [SlideShow2.aspx].

Here is the details, using your great tool:

at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasUI.js [156]
JScript anonymous function
code: result.callbackResult =instanceElementCreatedCallback(result.instanceElement,markupContext,callbackContext)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/TemplatedSlideShow.js [161]
JScript anonymous function
code: var templateInstance =
_descriptionTemplate.createInstance(document.body,
descriptionElementCreatedCallback,
templateDataContext)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [12]
JScript anonymous function
code: method.apply(instance,arguments)


Then I press [Continue] and then again:

at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [186]
JScript anonymous function
code: td =instance.getDescriptor()
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [243]
JScript anonymous function
code: var td =Web.TypeDescriptor.getTypeDescriptor(instance)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [439]
JScript anonymous function
code: var value =Web.TypeDescriptor.getProperty(propertyObject,propertyName)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [430]
JScript anonymous function
code: this.evaluateIn()
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [454]
JScript anonymous function
code: this.evaluate(Web.BindingDirection.In)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [516]
JScript anonymous function
code: _bindings[i].initialize(this)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [513]
JScript anonymous function
code: this.initialize()
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [277]
JScript anonymous function
code: _pendingEndUpdates[i].endUpdate()
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasUI.js [157]
JScript anonymous function
code: markupContext.complete()
at http://localhost:2972/PhotoBrowser/ScriptLibrary/TemplatedSlideShow.js [161]
JScript anonymous function
code: var templateInstance =
_descriptionTemplate.createInstance(document.body,
descriptionElementCreatedCallback,
templateDataContext)
at http://localhost:2972/PhotoBrowser/ScriptLibrary/Atlas/AtlasCore.js [12]
JScript anonymous function
code: method.apply(instance,arguments)


Note: I am using the last version of Atlas with VS2005
Thanks

sam

Posted on 12/14/2005 @ 7:50 AM
Hi Nik ;p

How to resolve the problem that rbfigueira has mencionated ?
Thanks

Rajan Raj

Posted on 12/29/2005 @ 1:56 AM
Download Atlas Wiki Sample Kit Visual Studio 2005 web project template from http://msdn.microsoft.com/asp.net/info/future/atlas_wiki/ for getting Microsoft.Web.Atlas dll and Javascript libraries. The other template, ASP.NET Atlas Web Site Template available in http://msdn.microsoft.com/asp.net/info/future/atlastemplate/default.aspx apparently has Microsoft.Web.Atlas dll and JavaScript libraries which are not compatible to the Photos sample application which Nikhil has developed. You will get compilation errors if you use the second template. Go with Wiki template. Thanks.

Munish

Posted on 4/7/2006 @ 10:38 AM
As suggested, I have included the Microsoft.Web.Atlas.Dll in bin directory of control as well PhotoBrowser project.
When I compile the control I am getting following error...please let me know where can I find IScriptComponent inter.face

Error 1 The type or namespace name 'IScriptComponent' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\PhotoDataSource.cs 19 54 Controls
Error 2 The type or namespace name 'IScriptComponent' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\DynamicPhotoSelector.cs 21 68 Controls
Error 3 The type or namespace name 'ScriptTypeDescriptor' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\PhotoDataSource.cs 45 9 Controls
Error 4 The type or namespace name 'IScriptObject' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\PhotoDataSource.cs 59 9 Controls
Error 5 The type or namespace name 'ScriptTextWriter' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\PhotoDataSource.cs 67 44 Controls
Error 6 The type or namespace name 'ScriptTypeDescriptor' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\DynamicPhotoSelector.cs 219 9 Controls
Error 7 The type or namespace name 'IScriptObject' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\DynamicPhotoSelector.cs 232 9 Controls
Error 8 The type or namespace name 'ScriptTextWriter' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\Controls\DynamicPhotoSelector.cs 240 44 Controls
Error 9 The type or namespace name 'AtlasControls' does not exist in the namespace 'PDC.Samples' (are you missing an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 7 19 C:\...\PhotoBrowser\
Error 10 The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 13 33 C:\...\PhotoBrowser\
Error 11 The type or namespace name 'Photo' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 20 33 C:\...\PhotoBrowser\
Error 12 The type or namespace name 'Location' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 41 16 C:\...\PhotoBrowser\
Error 13 The type or namespace name 'Photo' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 46 16 C:\...\PhotoBrowser\
Error 14 The type or namespace name 'Photo' could not be found (are you missing a using directive or an assembly reference?) My Documents\Practise\Photo\Demo\PhotoBrowser\App_Code\Trip.cs 50 16 C:\...\PhotoBrowser\

Raman

Posted on 4/16/2006 @ 11:11 PM
hi Nikhil,
Thanx for the samples.... i've been working in .NET framework for 1 year approx...
Nikhil will you please tell me how to use session or profile variables in Atlas controls.
Thanx

Chandru

Posted on 4/20/2006 @ 12:22 AM
i dont see the Microsoft.Web namespace with the atlas package. I am not able to compile the sample without IScriptComponent being defined. Please let me know where i can find this interface.

Kshitiz

Posted on 5/11/2006 @ 4:22 AM
Hi Nikhil,
I wana use ATLAS in an existing application developed in ASP.NET 2.0, but can't use webservice.
Is there any way to use ATLAS without webservices and using aspx.cs File as did for AJAX.Kindly Mail me on
kshitiz82@indiatimes.com

Pradhiba

Posted on 5/16/2006 @ 8:43 AM
Please explain the way to use ATLAS without webservices and using aspx.cs File as did for AJAX. Waiting for a quick reply. Can reply to my id pradhiba_pec@yahoo.com.

Irfan Khan

Posted on 6/7/2006 @ 9:56 PM
Hi Nikhil,
I have download your sample and also copied the files as per the ReadMe.txt given in the sample code. But when I am compiling the Control I am setting a list of errors like the one given below
Error 1 The type or namespace name 'IScriptComponent' could not be found (are you missing a using directive or an assembly reference?) C:\Downloads\Demo\Controls\DynamicPhotoSelector.cs 22 68 Controls

Please Nikhil help or any one who reads this please reply back if you have a solution on irfankhanpathan@rediffmail.com

Thanks in advance.
The discussion on this post has been closed. Please use my contact form to provide comments.