greg howe's powerpoint presentation

28
February 2008 BAND Gig AJAX: What It Is, How Cool It Is and How You Can Use It Today Greg Howe, MCAD

Upload: sampetruda

Post on 18-May-2015

997 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Greg Howe's PowerPoint Presentation

February 2008 BAND Gig

AJAX: What It Is, How Cool It

Is and How You Can Use It

Today

Greg Howe, MCAD

Page 2: Greg Howe's PowerPoint Presentation

Agenda

• What AJAX is and what it isn't

• How some big sites are using it

• How you can use it in VS2005−The AJAX Control Toolkit−How to create a new AJAX-ified web app−How to AJAX-ify your existing web apps−How to take AJAX to the next level

Page 3: Greg Howe's PowerPoint Presentation

What AJAX is and what it isn't• Is = Asynchronous Javascript And XML

• Is Not = Something to clean clothes or

dishes, though you can make your

Windows look cleaner (groan)

• Is = A powerful and easy way to make web

pages more interactive and responsive

• Is Not = A Microsoft thing

Page 4: Greg Howe's PowerPoint Presentation

How some big sites are using it• Google Maps, maps.live.com, etc

−Can drag a map and it calls down to server to get new map squares on the fly based on your moving around

• Netflix−Mouse over a movie cover to read info on the

movie

• Flickr−Has several places, like their geotagging map

Page 5: Greg Howe's PowerPoint Presentation

AJAX-ify!

• You can use AJAX on your web

pages several ways:−Buy 3rd party controls like those from

ComponentArt that have their own AJAX implementations. Drop and go!

−Buy 3rd party AJAX frameworks for their versions of update panels, etc.

−Use Microsoft’s implementation

Page 6: Greg Howe's PowerPoint Presentation

The AJAX Control Toolkit

• Cool web controls that use AJAX or even

just Javascript

• Accordian, Hover Menu Extender, etc

• Demo

• AJAX? DHTML? Kinda both…oh well!

• Don’t need to use these controls to use

AJAX in your apps. They’re just controls.

Page 7: Greg Howe's PowerPoint Presentation

AJAX-ify!

• Consider what parts of your page will

benefit from posting back to the server

without a full page refresh

• Consider how you get the data you are

refreshing – page method vs. web

service−Page method is easy but has resource

ramifications, esp. on high volume page−Web service is a little more complicated but

tighter and less resource-intensive

Page 8: Greg Howe's PowerPoint Presentation

AJAX-ify!

• Note you need to be sure your web

server has the AJAX Extensions 1.0

installed if you use the Microsoft

implementation. Just ‘cause you do,

doesn’t mean they do!−Most site hosts have it installed these

days so you should be able to take advantage with sites you have today

Page 9: Greg Howe's PowerPoint Presentation

AJAX-ify!

• To use the Control Toolkit on a live

website you just need Microsoft’s

implementation installed on the

server plus the Toolkit DLL in your

bin folder.

Page 10: Greg Howe's PowerPoint Presentation

Using Microsoft’s Implementation

• Install the AJAX Extensions 1.0

• Install the vsi

• Optionally install the Control Toolkit

• Start up Visual Studio and voila!

Page 11: Greg Howe's PowerPoint Presentation

Install AJAX Extensions 1.0

• Download/install AJAX Extensions 1.0−http://www.asp.net/ajax/downloads, and

go to the “ASP.NET AJAX Downloads for ASP.NET 2.0” section

−This will install the server side of things: something for your client-side javascript to hook into and allow you to process partial page postbacks! Key parts are the UpdatePanel and ScriptManager.

−Has a vsi to install projects and parts into Visual Studio

Page 12: Greg Howe's PowerPoint Presentation

Install AJAX Control Toolkit

• Download/install the toolkit−http://www.asp.net/ajax/downloads, go to

the “ASP.NET AJAX Optional Components” section and click the “Download the Control Toolkit” button.

−Be sure to grab the right release for your version of Visual Studio.

−Unzip the file into a folder on your machine.

−Grab the AjaxControlToolkit.dll file from the samples’ bin folder and put into your app’s bin

Page 13: Greg Howe's PowerPoint Presentation

Install AJAX Control Toolkit

• Tip – to add the controls to your

toolbox, right-click your toolbox and

add a new tab. Then right-click in

there and select “Choose Items…”

and browse to the folder where you

unzipped the toolkit and go to the

sample bin (not your web app’s bin)

where the dll is and choose that file.

There you have them!

Page 14: Greg Howe's PowerPoint Presentation

How to create a new AJAX-ified web app• Download/install AJAX Extensions

1.0

• Start up Visual Studio and choose

Create Web Site and select either

“ASP.NET AJAX-Enabled Web Site” or

“AJAX Control Toolkit Web Site” (the

latter under “My Templates”)

Page 15: Greg Howe's PowerPoint Presentation

How to create a new AJAX-ified web app

Page 16: Greg Howe's PowerPoint Presentation

How to AJAX-ify your existing web apps

• You still have to install the pieces –

AJAX Extensions and Toolkit (optional)

• The big deal is your web.config file. It

needs several sections in order to tie

AJAX in.−See http://www.asp.net/learn/ajax-

videos/video-81.aspx for a great video on it

Page 17: Greg Howe's PowerPoint Presentation

How to AJAX-ify your existing web apps

• Easiest and best thing is to create a

new AJAX Enabled Web Site and steal

sections of its web.config−“configSections” section−“controls” section under “pages” section−“assemblies” under “compilation”−“httpHandlers” and “httpModules”

sections−“system.web.extensions” and

“system.webServer” sections

Page 18: Greg Howe's PowerPoint Presentation

How to AJAX-ify your existing web apps• Now pop an UpdatePanel on your web

page and put standard web controls in

it

• Items inside the UpdatePanel that

trigger postback will use AJAX

automagically (no coding needed)

• Items outside the UpdatePanel can

trigger postback of the panel via

Triggers section of the UpdatePanel

Page 19: Greg Howe's PowerPoint Presentation

How to AJAX-ify your existing web apps

Demo

Page 20: Greg Howe's PowerPoint Presentation

How to take AJAX to the next level• Write JavaScript routines that use the

AJAX libraries

• Write web services and page methods−must be static (C#) or shared (VB)

• Call web/page methods directly to get

data then you put data into page

• Think outside the box and make

something cool!

Page 21: Greg Howe's PowerPoint Presentation

How to take AJAX to the next level• You have to add your web services to the

ScriptManager

• You have to set your methods to use

scripting or can’t get there from Javascript

• You use the $get command to tie to your

objects on the page

• You call the web/page method by object

name as you would in code

• Demo

Page 22: Greg Howe's PowerPoint Presentation

Best Practices and Gotchas

• Security−Though the Page object can be used, often

you are using a web service to get data so be sure to lock the service and data too!• GetAccountInfo(acctNum) = Yikes!

−Always lock services. They are open on the web by themselves even if in your web app.

−Must call non-domain web services via a web service on your domain

Page 23: Greg Howe's PowerPoint Presentation

Best Practices and Gotchas

• Speed−If speed is essential, use PageMethod

or direct Javascript calls−Throttle your results (don’t return

1,000,000 rows just cause you can!)−Cache results in the web service

Page 24: Greg Howe's PowerPoint Presentation

Best Practices and Gotchas

• Traffic volume−Be aware of how many calls an AJAX app

makes back to the server• 100 users on an app at one time, checking for

stock ticker data every second via AJAX = 100 hits/sec every second!

• Our zip code finder – 4 key hits in 3 seconds is 4 hits…times 100 users is 400 hits in 3 seconds.

−Be aware that page methods post back ENTIRE page, including ViewState! 48K requests possible per AJAX call!

Page 25: Greg Howe's PowerPoint Presentation

Summary• AJAX frameworks encapsulate the complex stuff

and provide simple ways to make your web apps

interactive

• Microsoft gives you framework, plus a toolkit of

controls if you want (and source code too!)

• Minimal Javascript code allows you to be faster

and more explicit in rendering results

• YOU CAN DO THIS – can be simple and attractive

right out of the box, or can get more complex

and interactive as you wish. Just go do it!

Page 26: Greg Howe's PowerPoint Presentation

More Information

• Free AJAX training at Microsoft e-

Learning

(http://www.microsoftelearning.com)

• http://ajax.asp.net

• http://www.asp.net/ajax/documentation

has great video tutorials on all of this,

plus good docs to read on it

Page 27: Greg Howe's PowerPoint Presentation

Other Resources

• http://www.ajaxload.info

where you can create cool loading

gifs

Page 28: Greg Howe's PowerPoint Presentation

Q & A

THANK YOU for coming! Contact

me directly with questions or

comments:

Greg Howe

[email protected]