Walther Ajax4

51

Transcript of Walther Ajax4

Page 1: Walther Ajax4
Page 3: Walther Ajax4

ASP.NET AJAX

AJAXControl Toolkit

AccordionAlwaysVisibleControlAnimationAutoCompleteCalendarCascadingDropDownCollapsiblePanelConfirmButton

DragPanelDropDownDropShadowDynamicPopulateFilteredTextBoxHoverMenuListSearchMaskedEditModalPopupMultiHandleSliderMCheckBoxNoBotNumericUpDownPagingBulletedListPasswordStrengthPopupControl

RatingReorderListResizableControlRoundedCornersSliderSlideShowTabsTextBoxWatermarkToggleButtonUpdatePanelAnimationValidatorCallout

Page 4: Walther Ajax4

ASP.NET AJAX

AJAXControl Toolkit

2nd Most Popular CodePlex Download

Server-Side controls and control extenders

Client-Side controls and behaviors

Client-Only Library: AjaxControlToolkit-ScriptFilesOnly.zip

New features coming soon…

Page 5: Walther Ajax4

ASP.NET AJAX

AJAXControl Toolkit

Announcing 3 New Controlshttp://www.ASP.net/ajax• HTML Editor

Many thanks to Obout http://www.obout.com for building this.

• ComboBoxMany thanks to Dan Ludwig for building this.

• ColorPickerMany thanks to Alexander Turlov for building this.

Page 6: Walther Ajax4

Introduction

Web Application Experience in 1993

Page 7: Walther Ajax4

Introduction

Brendan Eich’s Home Page (the inventor of JavaScript)

Page 8: Walther Ajax4

Introduction

Super Fancy Ajax Application

Page 9: Walther Ajax4

ASP.NET Server-SidePages are rendered on the server and updated through postbacks

ASP.NET Server-Side AJAX (AJAH)Pages are rendered on the server and updated through AJAX requests for HTML

ASP.NET Client-Side AJAXPages are rendered on the client and updated through Ajax requests for JSON

Different Types of Web Applications

Page 10: Walther Ajax4

Client-Side Application Model

renders once

Ajax Calls (services)

Page 11: Walther Ajax4

Less roundtripsLess bandwidthLess work on the web serverMore responsive

Why AJAX Applications Are Good

Page 12: Walther Ajax4

Two developers: an ASP.NET and JavaScript developer. Ask each developer when a button click event happens…

Why AJAX Applications are Good

Page 13: Walther Ajax4

Overview: 3 Ways to Build an Application

1. Server-Side ASP.NET

2. Server-Side ASP.NET AJAX

3. Client-Side ASP.NET AJAX

Page 14: Walther Ajax4

Overview: Features of Client-Side ASP.NET AJAX

1. Declarative Client-Side Controls

2. Command Bubbling

3. Live Bindings

4. Saving and Updating Data

5. Using Templates with JSONP

Page 15: Walther Ajax4

Server-Side ASP.NET with No Ajax

• Controls• Code• Work

Web Server Web Browser

renders

postback

Page 16: Walther Ajax4

Creating a Master/Detail Page with Server-Side ASP.NET

demo

Page 17: Walther Ajax4

BenefitsSafe: No Browser Compatibility IssuesPowerful: Use any programming language

DrawbacksResponsiveness: User must wait for a postbackPerformance: All page content must be rendered for each interaction

Server-Side ASP.NET

Page 18: Walther Ajax4

Server-Side ASP.NET AJAXwith UpdatePanel

• Controls• Code• Work

Web Server Web Browser

renders

sneakypostback

Page 19: Walther Ajax4

Creating a Master/Detail Page with Server-Side ASP.NET AJAX

demo

Page 20: Walther Ajax4

Server-Side ASP.NET AJAX

BenefitsSafe: No Browser Compatibility IssuesPowerful: Use any programming languageCompatible: Retrofit existing ASP.NET applications

DrawbacksResponsiveness: User must wait for a postback (no simultaneous Ajax)Performance: (most) page content must be rendered for each interaction

Page 21: Walther Ajax4

Client-Side ASP.NET AJAX Controls

Web Server Web Browser

renders

sneakypostback

• Code• Work • Controls

Page 22: Walther Ajax4

Creating a Master/Detail Page with Client-Side AJAX Controls

demo

Page 23: Walther Ajax4

Client-Side ASP.NET AJAX Controls

Perfection Reached!Benefits

Responsive: Events happen when they happenPerformance: Only necessary content is passed between client and serverClean separation of content and behavior

Page 24: Walther Ajax4

Data Sources

ASP.NET AJAX is compatible with anything that exposes JSON:

ASMX Web ServicesWCF Web ServicesHTTP HandlersJavaScript arraysASP.NET MVC JSonResultADO.NET Data Services REST Services.NET RIA Services

Page 25: Walther Ajax4

Why Templates are Goodfor (var i=0;i < data.length;i++){ row = "<tr>"; row += "<td>" + data[i].Title + "</td>"; row += "<td>" + data[i].Director +

"</td>"; table += row;}

$get("movieBody").innerHTML = table;

(Evil)

Page 26: Walther Ajax4

Why Templates are GoodmovieView.set_data(data);

<tbody id="movieBody" class="sys-template"><tr> <td>{{ Title }}</td> <td>{{ Director }}</td> <td>{{ DateReleased.localeFormat("D")

}}</td> </tr></tbody>

(Good)

Page 27: Walther Ajax4

Rude Objections(impediments to a perfect future)

Browser Back/Forward buttonAccessibilitySearch Engine Optimization (SEO)JavaScript disabled (Mobile Devices)

Page 28: Walther Ajax4

Creating a Master/Detail Page that supports JavaScript failover

demo

Page 29: Walther Ajax4

Technology Independent

Client-Side ASP.NET AJAX…

Works with any modern browser including IE, Firefox, Chrome, Safari, and Opera.

Works with any back-end technology that exposes JSON (not dependent on ASP.NET)

Works with HTML pages, no need for ASP.NET.

Page 30: Walther Ajax4

Creating a Master/Detail Page with Pure HTML

demo

Page 31: Walther Ajax4

Additional ASP.NET AJAX 4.0 Features

Declarative Client-Side ControlsCommand BubblingLive BindingsSaving and Updating Data

Page 32: Walther Ajax4

Declarative Controls

XML Namespacesxmlns:sys=“javascript:Sys”xmlns:dataview=“javascript:Sys.UI.DataView”

sys:activateActivates declarative controls

sys:attachAttaches a control to a DOM element

Page 33: Walther Ajax4

Creating a Master/Detail Page with Declarative Client-Side Controls

demo

Page 34: Walther Ajax4

Command Bubbling

sys:commandA command name such as select, edit, and so on

sys:commandargumentA command argument such as 78

Sys:commandtargetA control or name of a control that is the target of the command.

onCommandDataView event handler that you can use to handle a custom command

Page 35: Walther Ajax4

Select Command

DataView PropertiesselectedIndex initialSelectedIndexselectedDataselectedItemClass

Page 36: Walther Ajax4

Creating a Master/Detail Page with Command Bubbling

demo

Page 37: Walther Ajax4

Live Bindings

{{ Title }} Used to execute JavaScript in the context of the current data item

{binding Title }WPF style binding syntaxSupports live binding

Page 38: Walther Ajax4

Live BindingsOne-way, One-time - The data value is updated only the first time that data binding is invoked. {{ CompanyName }}

One-way, Live - If the underlying data item is modified, the rendered data value is updated automatically.<span>{binding CompanyName}</span>

Two-way, Live - If the user changes the data value, the value of the underlying data item is updated. In addition, if the data item is modified from another source, the rendered data value is updated.<input type=“text” value=“{binding CompanyName}” />

Page 39: Walther Ajax4

Creating a Master/Detail Page with Live Bindings

demo

Page 40: Walther Ajax4

Data Sources

ASP.NET AJAX is compatible with anything that exposes JSON:

ASMX Web ServicesWCF Web ServicesHTTP HandlersJavaScript arraysASP.NET MVC JSonResultADO.NET Data Services REST Services.NET RIA Services

Page 41: Walther Ajax4

DataContext Class

Provides read/write access to dataSupports change tracking in the browserSend multiple changes in a single batch to the serverUse AdoNetDataContext class with ADO.NET Data Services

Page 42: Walther Ajax4

Creating a Master/Detail Page that saves data

demo

Page 43: Walther Ajax4

Using ADO.NET Data Servicesdemo

Page 44: Walther Ajax4

Image Organizer

Page 45: Walther Ajax4

Conclusion

Embrace the client-side! For better performance and a better user experience, start writing client-side ASP.NET AJAX applications.

Page 46: Walther Ajax4

My BlogStephenWalther.com

CodePlex ASP.NET Previewsaspnet.CodePlex.com

Official ASP.NET Websitewww.ASP.net/ajax

Resources

Page 47: Walther Ajax4

धन्यवा�दઆભા�ર ধন্য�বা�দ

ਧੰ�ਨਵਾ�ਦ

ଧନ୍ୟ�ବା�ଦ

நன்றி�

ధన్య�వాదాలు� ಧನ್ಯ�ವಾ�ದಗಳು

നി�ങ്ങള്ക്ക്� നിന്ദി�

Page 48: Walther Ajax4

question & answer

Page 49: Walther Ajax4

Related Content

Breakout Sessions (session codes and titles)

Interactive Theater Sessions (session codes and titles)

Hands-on Labs (session codes and titles)

Hands-on Labs (session codes and titles)

Page 50: Walther Ajax4

Track Resources

Resource 1

Resource 2

Resource 3

Resource 4

Page 51: Walther Ajax4

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS,

IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.