Overview of MS Atlas

Download Report

Transcript Overview of MS Atlas

Overview of MS Atlas

Wallace B. McClure Scalable Development, Inc.

www.scalabledevelopment.com

ASP.NET Podcast www.aspnetpodcast.com

Who the heck am I….

    Developer/Architect.

Microsoft MVP.

ASPInsider.

Author.

 “Building Highly Scalable Database Applications” – 2002.

    “Professional ADO.NET V2” – Soon.

“AJAX with ASP.NET” – 2006.

“IIS7 for Developers/Admins” – 2007.

“ASP.NET in Orcas.” – In our lifetime.

Disclaimer

       Atlas is currently Alpha.

Your mileage will vary.

Not everything is documented at this time.

I make no guarantees that anything will work during the demo or afterwards.

October, 2005 TP.

2006 – Go Live.

Ship with the next revision of the framework Orcas.

What’s the problem with what we got?

   Roundtrips.

Server-oriented architecture.

Client and server are not integrated together.

What/Why AJAX?

        Out of band client-server calls.

AJAX - Asynchronous Javascript and XML (Atlas and AJAX.NET Pro use JSON).

Decreased network utilization.

Decreased Server CPU utilization.

Much like Client-Server computing.

Better utilization of application resources.

Opportunity to relearn Javascript.

Its cool, its hip, everybody’s doing it.

What is Ajax? (cont.)

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

What is Atlas?

      Floor Wax?

Dessert Topping?

Shampoo?

More than Microsoft’s AJAX.

Component Framework for building client side web applications.

Similar in concept to the .NET Framework for the client side web browser.

What is Atlas(cont.)?

     Out-of-band client to server calls.

Asynchronous.

Cross-browser.  Internet Explorer.

   Firefox.

Safari.

Browser Abstraction Layer.

VSI file that plugs into VS.NET 2005.

GAC is not required.

Pieces-n-Parts

  Client   Browser Abstraction Layer.

Script Core.

   Base Class Library.

Component Model and UI Layer.

Controls & Components.

Server  Server Control Framework.

  Web Services Bridge.

Application Services Bridge.

HTML, Script, “Atlas”

Architecture Diagram

“Atlas” “Atlas”-enabled ASP.NET Pages Web Services Markup Service Proxies (ASMX or WCF) “Atlas” Client Script Library “Atlas” Client Application Services Local Store, … Browser Integration Component Model and UI Framework Base Class Library Script Core Browser Compatibility

“Atlas” Client Framework and Services

ASP.NET “Atlas” Server Extensions App Services Bridge Web Services Bridge ASP.NET 2.0

Page Framework, Server Controls Application Services

“Atlas” Server Framework

“Atlas” Approach to Development

  Application development   Simple inclusion of script-based functionality via script components, server controls Separation of UI and behavior Component development     Enables disciplined approach to scripting Framework for encapsulating data, and logic Abstracts browser differences Provides building blocks for higher level development

Simple AJAX/Atlas Example

     Two form elements.

On a client side event, call a server side method without posting back to the server.

Asynchronous call.

Process the information that is returned.

MethodName(Param1,…ParamN, OnCompletion, OnTimeOut, OnError).

Let’s go to the code.

    Namespace utilization on the client.

Client side framework through javascript includes.

Client side proxies generated through “/js” option in the include.

Use the .ClientID/UniqueID.

More Complicated UI Example

    AutoCompletion of Textboxes.

Sorry, but Drag-n-Drop is not well documented at this point.

Databinding Examples are online.

Let’s go to the code.

Building an Atlas Component

Type.registerNamespace('PDC'); PDC.Sequence = function() { PDC.Sequence.initializeBase(this); var _count = 1; var _value = 0; var _randomize = false; this.get_count = function() { return _count; } this.set_count = function(value) { _count = value; } …………..

this.dispose = function() { if (_timer) { _timer.tick.remove(_tickHandler); _timer.dispose(); } PDC.Sequence.callBaseMethod(this, 'dispose'); } …………..

Type.registerSealedClass('PDC.Sequence', Web.Component); Web.TypeDescriptor.addType('pdc', 'sequence', PDC.Sequence); } var g_sequence = new PDC.Sequence(); g_sequence.set_count(20); g_sequence.next(); var value = g_sequence.get_value();

Debugging

   debug.dump(object, name, true/false); for(m in object) alert(m); Tools:    Visual Studio .NET.

Fiddler.

WebDev Helper.

Where does Atlas/AJAX make sense?

     Microsoft IIS Environment.

.NET 2.0.

Where data transfer is limited.

Small changes.

Limited bandwidth.

Difficulties

         No Javascript IDE Intellisense.

Bookmarking.

Back Button.

Accessibility/Section 508.

Search Engines.

Application State.

Downlevel browsers.

Debugging Javascript.

Doing too much at the client.

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

Browsers are fairly fragile animals.

Resources

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

Questions / Comments

    Wallace B. McClure Scalable Development, Inc.

http://www.scalabledevelopment.com

865-693-3004