the powerpoint slides from the talk

20
Overview of MS Overview of MS Atlas Atlas Wallace B. McClure Wallace B. McClure Scalable Development, Scalable Development, Inc. Inc. www.scalabledevelopment www.scalabledevelopment .com .com ASP.NET Podcast ASP.NET Podcast www.aspnetpodcast.com www.aspnetpodcast.com

Upload: sampetruda

Post on 28-Jan-2015

105 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: The powerpoint slides from the talk

Overview of MS AtlasOverview of MS AtlasWallace B. McClureWallace B. McClureScalable Development, Inc.Scalable Development, Inc.www.scalabledevelopment.www.scalabledevelopment.comcomASP.NET PodcastASP.NET Podcastwww.aspnetpodcast.comwww.aspnetpodcast.com

Page 2: The powerpoint slides from the talk

Who the heck am I….Who the heck am I….

Developer/Architect.Developer/Architect. Microsoft MVP.Microsoft MVP. ASPInsider.ASPInsider. Author.Author.

““Building Highly Scalable Database Applications” Building Highly Scalable Database Applications” – 2002.– 2002.

““Professional ADO.NET V2” – Soon.Professional ADO.NET V2” – Soon. ““AJAX with ASP.NET” – 2006.AJAX with ASP.NET” – 2006. ““IIS7 for Developers/Admins” – 2007.IIS7 for Developers/Admins” – 2007. ““ASP.NET in Orcas.” – In our lifetime.ASP.NET in Orcas.” – In our lifetime.

Page 3: The powerpoint slides from the talk

DisclaimerDisclaimer

Atlas is currently Alpha.Atlas is currently Alpha. Your mileage will vary.Your mileage will vary. Not everything is documented at this time.Not everything is documented at this time. I make no guarantees that anything will I make no guarantees that anything will

work during the demo or afterwards.work during the demo or afterwards. October, 2005 TP.October, 2005 TP. 2006 – Go Live.2006 – Go Live. Ship with the next revision of the Ship with the next revision of the

framework Orcas.framework Orcas.

Page 4: The powerpoint slides from the talk

What’s the problem with what we What’s the problem with what we got?got?

Roundtrips.Roundtrips. Server-oriented architecture.Server-oriented architecture. Client and server are not integrated Client and server are not integrated

together.together.

Page 5: The powerpoint slides from the talk

What/Why AJAX?What/Why AJAX?

Out of band client-server calls.Out of band client-server calls. AJAX - Asynchronous Javascript and XML AJAX - Asynchronous Javascript and XML

(Atlas and AJAX.NET Pro use JSON).(Atlas and AJAX.NET Pro use JSON). Decreased network utilization.Decreased network utilization. Decreased Server CPU utilization.Decreased Server CPU utilization. Much like Client-Server computing.Much like Client-Server computing. Better utilization of application resources.Better utilization of application resources. Opportunity to relearn Javascript.Opportunity to relearn Javascript. Its cool, its hip, everybody’s doing it.Its cool, its hip, everybody’s doing it.

Page 6: The powerpoint slides from the talk

What is Ajax? (cont.)What is Ajax? (cont.)

Major operations no longer “require” Major operations no longer “require” going back to the server.going back to the server.

Page 7: The powerpoint slides from the talk

What is Atlas?What is Atlas?

Floor Wax?Floor Wax? Dessert Topping?Dessert Topping? Shampoo?Shampoo? More than Microsoft’s AJAX.More than Microsoft’s AJAX. Component Framework for building Component Framework for building

client side web applications.client side web applications. Similar in concept to the .NET Similar in concept to the .NET

Framework for the client side web Framework for the client side web browser.browser.

Page 8: The powerpoint slides from the talk

What is Atlas(cont.)?What is Atlas(cont.)?

Out-of-band client to server calls.Out-of-band client to server calls. Asynchronous.Asynchronous. Cross-browser. Cross-browser.

Internet Explorer.Internet Explorer. Firefox.Firefox. Safari.Safari. Browser Abstraction Layer.Browser Abstraction Layer.

VSI file that plugs into VS.NET 2005.VSI file that plugs into VS.NET 2005. GAC is not required.GAC is not required.

Page 9: The powerpoint slides from the talk

Pieces-n-PartsPieces-n-Parts

ClientClient Browser Abstraction Layer.Browser Abstraction Layer. Script Core.Script Core. Base Class Library.Base Class Library. Component Model and UI Layer.Component Model and UI Layer. Controls & Components.Controls & Components.

ServerServer Server Control Framework.Server Control Framework. Web Services Bridge.Web Services Bridge. Application Services Bridge.Application Services Bridge.

Page 10: The powerpoint slides from the talk

ASP.NET “Atlas” Server ExtensionsASP.NET “Atlas” Server Extensions

“Atlas” Server

Controls

“Atlas” Server

Controls

App Services Bridge

App Services Bridge

Web Services Bridge

Web Services Bridge

“Atlas” Server

Controls

“Atlas” Server

Controls

Architecture DiagramArchitecture Diagram

““Atlas” Server Atlas” Server FrameworkFramework

““Atlas” Client Framework and Atlas” Client Framework and ServicesServices

“Atlas” Client Script Library“Atlas” Client Script Library

Controls, Components

Controls, Components

Script CoreScript Core

Base Class LibraryBase Class Library

Component Model and UI FrameworkComponent Model and UI Framework

Browser Compatibility

Browser Compatibility

“Atlas” Client Application Services

“Atlas” Client Application Services

Local Store, …

Local Store, …

BrowserIntegration

BrowserIntegration

ASP.NET 2.0ASP.NET 2.0

Application Services

Application Services

Page Framework,

Server Controls

Page Framework,

Server Controls

““Atlas”-enabled Atlas”-enabled ASP.NET PagesASP.NET Pages

““Atlas”-enabled Atlas”-enabled ASP.NET PagesASP.NET Pages

Web ServicesWeb Services(ASMX or WCF)(ASMX or WCF)

Web ServicesWeb Services(ASMX or WCF)(ASMX or WCF)

HTML, Script,HTML, Script,““Atlas”Atlas”MarkupMarkup

HTML, Script,HTML, Script,““Atlas”Atlas”MarkupMarkup

““Atlas”Atlas”ServiceServiceProxiesProxies

““Atlas”Atlas”ServiceServiceProxiesProxies

Controls, Components

Controls, Components

Page 11: The powerpoint slides from the talk

““Atlas” Approach to DevelopmentAtlas” Approach to Development

Application developmentApplication development Simple inclusion of script-based functionality Simple inclusion of script-based functionality

via script components, server controlsvia script components, server controls Separation of UI and behaviorSeparation of UI and behavior

Component developmentComponent development Enables disciplined approach to scriptingEnables disciplined approach to scripting Framework for encapsulating data, and logicFramework for encapsulating data, and logic Abstracts browser differencesAbstracts browser differences Provides building blocks for higher level Provides building blocks for higher level

developmentdevelopment

Page 12: The powerpoint slides from the talk

Simple AJAX/Atlas ExampleSimple AJAX/Atlas Example

Two form elements.Two form elements. On a client side event, call a server On a client side event, call a server

side method without posting back to side method without posting back to the server.the server.

Asynchronous call.Asynchronous call. Process the information that is Process the information that is

returned.returned. MethodName(Param1,…ParamN, MethodName(Param1,…ParamN,

OnCompletion, OnTimeOut, OnError).OnCompletion, OnTimeOut, OnError).

Page 13: The powerpoint slides from the talk

Let’s go to the code.Let’s go to the code.

Namespace utilization on the client.Namespace utilization on the client. Client side framework through Client side framework through

javascript includes.javascript includes. Client side proxies generated Client side proxies generated

through “/js” option in the include.through “/js” option in the include. Use the .ClientID/UniqueID.Use the .ClientID/UniqueID.

Page 14: The powerpoint slides from the talk

More Complicated UI ExampleMore Complicated UI Example

AutoCompletion of Textboxes.AutoCompletion of Textboxes. Sorry, but Drag-n-Drop is not well Sorry, but Drag-n-Drop is not well

documented at this point.documented at this point. Databinding Examples are online.Databinding Examples are online. Let’s go to the code.Let’s go to the code.

Page 15: The powerpoint slides from the talk

Building an Atlas ComponentType.registerNamespace('PDC');Type.registerNamespace('PDC');PDC.Sequence = function() {PDC.Sequence = function() { PDC.Sequence.initializeBase(this);PDC.Sequence.initializeBase(this); var _count = 1;var _count = 1; var _value = 0;var _value = 0; var _randomize = false;var _randomize = false;

this.get_count = function() {this.get_count = function() { return _count;return _count; }} this.set_count = function(value) {this.set_count = function(value) { _count = value;_count = value; }}…………………….... this.dispose = function() {this.dispose = function() { if (_timer) {if (_timer) { _timer.tick.remove(_tickHandler);_timer.tick.remove(_tickHandler); _timer.dispose();_timer.dispose(); }} PDC.Sequence.callBaseMethod(this, 'dispose');PDC.Sequence.callBaseMethod(this, 'dispose'); }}……………………....Type.registerSealedClass('PDC.Sequence', Type.registerSealedClass('PDC.Sequence',

Web.Component);Web.Component);Web.TypeDescriptor.addType('pdc', 'sequence', Web.TypeDescriptor.addType('pdc', 'sequence',

PDC.Sequence);PDC.Sequence);}}

<atlas:Script ID="sampleScript" <atlas:Script ID="sampleScript" runat="server" runat="server" Path="~/ScriptLibrary/SequencPath="~/ScriptLibrary/Sequence.js" />e.js" />

var g_sequence = new var g_sequence = new PDC.Sequence();PDC.Sequence();

g_sequence.set_count(20);g_sequence.set_count(20);

g_sequence.next();g_sequence.next();

var value = var value = g_sequence.get_value();g_sequence.get_value();

Page 16: The powerpoint slides from the talk

DebuggingDebugging

debug.dump(object, name, debug.dump(object, name, true/false);true/false);

for(m in object)for(m in object)alert(m);alert(m);

Tools:Tools: Visual Studio .NET.Visual Studio .NET. Fiddler.Fiddler. WebDev Helper.WebDev Helper.

Page 17: The powerpoint slides from the talk

Where does Atlas/AJAX make Where does Atlas/AJAX make sense?sense?

Microsoft IIS Environment.Microsoft IIS Environment. .NET 2.0..NET 2.0. Where data transfer is limited.Where data transfer is limited. Small changes.Small changes. Limited bandwidth.Limited bandwidth.

Page 18: The powerpoint slides from the talk

Difficulties

No Javascript IDE Intellisense.sense. Bookmarking.. Back Button.Back Button. Accessibility/Section 508.Accessibility/Section 508. Search Engines.Search Engines. Application State.Application State. Downlevel browsers.Downlevel browsers. Debugging Javascript.Debugging Javascript. Doing too much at the client.Doing too much at the client.

I’ll just save these 50,000 records on the client and not ent and not have to go back to the server for the next page of have to go back to the server for the next page of records…………..records…………..

Browsers are fairly fragile animals.Browsers are fairly fragile animals.

Page 19: The powerpoint slides from the talk

Resources

http://atlas.asp.net/ http://www.aspnetpodcast.com/http://www.aspnetpodcast.com/ http://www.wilcob.com/http://www.wilcob.com/ http://weblogs.asp.net/wallymhttp://weblogs.asp.net/wallym http://www.nikhilk.net/http://www.nikhilk.net/ ““AJAX with ASP.NET” in 2006AJAX with ASP.NET” in 2006

Page 20: The powerpoint slides from the talk

Questions / Comments

Wallace B. McClure Scalable Development, Inc. http://

www.scalabledevelopment.com 865-693-3004