ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

39
ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH http://blogs.msdn.com/walzenbach

Transcript of ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Page 1: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

ASP.NET Ajax

Daniel WalzenbachDeveloper EvangelistMicrosoft Deutschland GmbH

http://blogs.msdn.com/walzenbach

Page 2: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

select * from Danieldocument.getElementById('Daniel')$get('Daniel')

Page 3: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

setting expectations

Page 4: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Was ist Ajax?

Design PatternSäulen von Ajax

JavaScriptDocument Object Model (DOM)Cascading Style Sheets (CSS)XMLHttpRequest

Page 5: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

AJAX Komponenten

ASP.NET AJAX in Action, Manning Verlag, Seite 6

Page 6: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Ajax

Page 7: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Synchrone Webentwicklung

ASP.NET AJAX in Action, Manning Verlag, Seite 8

Page 8: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Asynchrone Webentwicklung

ASP.NET AJAX in Action, Manning Verlag, Seite 9

Page 9: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

XMLHttpRequest

Page 10: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

ASP.NET AJAX Architektur

ASP.NET AJAX in Action, Manning Verlag, Seite 16

Page 11: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Microsoft Ajax Library Features

Application ModelComponentsJavaScript ExtensionsCompatibilityAjaxApplication ServicesPartial Rendering

Page 12: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Client Page Lifecycle

ASP.NET AJAX in Action, Manning Verlag, Seite 44

Page 13: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

tons of demos ;-)

Page 14: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbolic ResolutionBackground: Javascript Variable Scoping

Local

Global

DOM

Expando

Page 15: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionBackground: Evaluating local variablesfunction WorkOnLocalVariable() {

local_var = ObtainValueFromDOM();return (local_var + 1);

}

Page 16: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionRecommendation: Declare local variables

function WorkOnLocalVariable() {

var local_var = ObtainValueFromDOM();return (local_var + 1);

}

Page 17: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionBackground: Recognize implicit look ups

function BuildUI() {

var baseElement=document.getElementById(‘target’);

 baseElement.innerHTML = ‘’; //Clear out previous

baseElement.innerHTML += BuildTitle(); baseElement.innerHTML += BuildBody(); baseElement.innerHTML += BuildFooter();

}

Page 18: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionRecommendation: Cache values in local variables

function BuildUI() {

var elementText = BuildTitle() + BuildBody() + BuildFooter();

document.getElementById(‘target’).innerHTML =

elementText;}

Page 19: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol Resolution Background: DOM function symbolic lookupfunction CalculateSum() {

var lSide = document.body.all.lSide.value;var rSide = document.body.all.rSide.value;

document.body.all.result.value = lSide + rSide;}

Page 20: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionRecommendation: Cache values in local variablesfunction CalculateSum() {

// Cache document.body.allvar elemCollection = document.body.all;

var lSide = elemCollection.lSide.value;var rSide = elemCollection.rSide.value;      elemCollection.result.value = lSide + rSide;

}

Page 21: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionBackground: Javascript function symbolic lookupfunction IterateWorkOverCollection() {

var length = myCollection.getItemCount(); for(var index = 0; index<length; index++) {

Work(myCollection[index]);}

}

Page 22: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionRecommendation: cache JavaScript function pointersfunction IterateWorkOverCollection() {

var funcWork = Work;var length = myCollection.getItemCount(); for(var index = 0; index<length; index++) {

funcWork(myCollection[index]);}

}

Page 23: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionBackground: Internet Explorer function symbolic lookupfunction IterateWorkOverCollection() {

var parentElement = document.getElementById(‘target’);

var length = myCollection.getItemCount();for(var index = 0; index<length; index++) {

parentElement.appendChild(myCollection[iterate]);}

}

Page 24: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Optimizing Symbol ResolutionRecommendation: Cache Internet Explorer function pointers (sometimes)function IterateWorkOverCollection() {

var funcAppendChild =

document.getElementById(‘target’).appendChild;

var length = myCollection.getItemCount(); for(var index = 0; index<length; index++) {

funcAppendChild(myCollection[index]);}

}

Page 25: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Javascript Code InefficienciesBackground: String concatenationvar smallerStrings = new Array();var myRatherLargeString = "";var length = smallerStrings.length;

for(var index = 0; index<length; index++) {

myRatherLargeString += smallerStrings[index];}

Page 26: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Javascript Code InefficienciesRecommendation: array.join for string concatenationvar smallerStrings = new Array();

smallerStrings.push("<div id=\""); smallerStrings.push("sampleID"); smallerStrings.push("\">"); smallerStrings.push("sampleText"); smallerStrings.push("</div>");

…var myRatherLargeString =

smallerStrings.join(‘’);

Page 27: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

ASP.NETAjax in Action, Manning Verlag

Page 28: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

ASP.NET AJAX Online Documentationhttp://www.asp.net/AJAX/Documentation/Live/default.aspx

HTML and DHTML Referencehttp://msdn2.microsoft.com/en-us/library/ms533050.aspx

Extending JavaScript with ASP.NET AJAX

http://www.asp.net/AJAX/Documentation/Live/tutorials/EnhancingJavaScriptTutorial.aspx

Page 31: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

XML Documentation Comments (C# Programming Guide)

http://msdn2.microsoft.com/en-us/library/b2s063f7.aspx

The format for JavaScript doc comments

http://weblogs.asp.net/bleroy/archive/2007/04/23/the-format-for-javascript-doc-comments.aspx

AjaxDoc http://www.codeplex.com/ajaxdoc

Page 32: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

Ajax Design Patternshttp://ajaxpatterns.org/

RESTwikihttp://rest.blueoxen.net/cgi-bin/wiki.pl?FrontPage

Remote Procedure Calls (RPC)http://www.cs.cf.ac.uk/Dave/C/node33.html

Microsoft AJAX Library Cheat Sheetshttp://aspnetresources.com/blog/ms_ajax_cheat_sheets_batch2.aspx

Page 33: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

IE + JavaScript Performance Recommendations

http://blogs.msdn.com/ie/archive/2006/08/28/728654.aspxhttp://blogs.msdn.com/ie/archive/2006/11/16/ie-javascript-performance-recommendations-part-2-javascript-code-inefficiencies.aspxhttp://blogs.msdn.com/ie/archive/2007/01/04/ie-jscript-performance-recommendations-part-3-javascript-code-inefficiencies.aspx

Page 34: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

Yahoo developer network: Best Practices for Speeding Up Your Web Site

http://developer.yahoo.com/performance/rules.html

Page 35: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Referenzen

Fiddlerhttp://www.fiddlertool.com/fiddler/

Web Development Helperhttp://projects.nikhilk.net/Projects/WebDevHelper.aspx

Firebughttp://www.getfirebug.com/

Page 36: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

Visual Studio – weitere Angebote

90-Tage Evaluierungs Versionen aller VS2008 Editionenwww.msdn-online.de/evalcenter

Launchveranstaltung von VS2008, SQL2008 & WS200819.-21. Februar 2008 in Frankfurt a.M.www.microsoftlaunch2008.de

Visual Studio Team System Information DayRegelmäßige ganztägige Informationsveranstaltung von MicrosoftPraxisnahe Demos & viel Raum für DiskussionenDetails & Anmeldung: www.event-team.com/events/visualstudio

TeamConf 2008 – Die Visual Studio Team System KonferenzSave the Date! 22.-24. April 2008 in MünchenErste Informationen und Call for Papers: www.teamconf.de

Patterns & Practices VSTS Guidance Project Praktische Ratschläge über den Einsatz von VSTS www.codeplex.com/VSTSGuidance

Page 37: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Page 38: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Page 39: ASP.NET Ajax Daniel Walzenbach Developer Evangelist Microsoft Deutschland GmbH .

© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.