Taking ASP NET AJAX to the Next Level

  • Slides: 42
Download presentation

Taking ASP. NET AJAX to the Next Level Jonathan Carter www. lostintangent. com www.

Taking ASP. NET AJAX to the Next Level Jonathan Carter www. lostintangent. com www. twitter. com/lostintangent

What exactly is the “next level”?

What exactly is the “next level”?

“The Next Level” The Current Level

“The Next Level” The Current Level

What’s going to happen here… Let’s address this issue we all seem to have

What’s going to happen here… Let’s address this issue we all seem to have with Java. Script How can the illustrious “next level” be reached by developers of all shapes and sizes? Learning to love ASP. NET AJAX for what is it, and what it isn’t

Why do some find Java. Script painful? . . .

Why do some find Java. Script painful? . . .

Who in their right mind wants to write code like that?

Who in their right mind wants to write code like that?

Frameworks to the rescue!

Frameworks to the rescue!

Server-Centric AJAX Server AJAX ring e Rend Initial request: HTML Form POST HTML This

Server-Centric AJAX Server AJAX ring e Rend Initial request: HTML Form POST HTML This is how ASP. NET Web. Forms developers get to the “next level”

So what is the story with the AJAX Control Toolkit?

So what is the story with the AJAX Control Toolkit?

AJAX Control Toolkit enhancements 3 brand new controls 1) HTML Editor 2) Color Picker

AJAX Control Toolkit enhancements 3 brand new controls 1) HTML Editor 2) Color Picker 3) Combo Box 20+ bugs fixed Go grab it: http: //www. asp. net/Ajax/ajaxcontroltoolkit

Who do we have to thank for that? Alexander Turlov Bennett Adelson Consulting, Inc.

Who do we have to thank for that? Alexander Turlov Bennett Adelson Consulting, Inc. http: //www. bennettadelson. com Dan Ludwig Obout Software, Inc. http: //www. obout. com

Moving forward, the ACT will be getting much stronger…

Moving forward, the ACT will be getting much stronger…

demo Server-Side AJAX

demo Server-Side AJAX

“ASP. NET AJAX is alright, but it is way too server-centric for serious client-side

“ASP. NET AJAX is alright, but it is way too server-centric for serious client-side development…” - Misinformed Guy

VERY IMPORTANT POINT! ASP. NET AJAX supports the entire ASP. NET ecosystem and beyond…

VERY IMPORTANT POINT! ASP. NET AJAX supports the entire ASP. NET ecosystem and beyond…

Common Myths ASP. NET AJAX is tied to ASP. NET, namely Web. Forms… You

Common Myths ASP. NET AJAX is tied to ASP. NET, namely Web. Forms… You must use a Script. Manager and Update. Panels to get anything done… It requires Visual Studio to work…

Mr. Owl Challenge! How many demos does it take to get to the client-side

Mr. Owl Challenge! How many demos does it take to get to the client-side center of an ASP. NET AJAX presentation?

Client-Centric AJAX Server AJAX ring e Rend Initial request: HTML Form POST HTML Client

Client-Centric AJAX Server AJAX ring e Rend Initial request: HTML Form POST HTML Client AJAX HTML + JSON ring e Rend

The server should only be concerned with data, not presentation

The server should only be concerned with data, not presentation

Client Templates Server-Side (Web. Forms): <Item. Template> <li><%# Eval("Name") %></li> </Item. Template> Client-Side: <ul

Client Templates Server-Side (Web. Forms): <Item. Template> <li><%# Eval("Name") %></li> </Item. Template> Client-Side: <ul class="sys-template"> <li>{binding Name}</li> </ul>

Client Controls Data. View Data. Context Templated UI (master/detail) Service communication Command bubbling Change

Client Controls Data. View Data. Context Templated UI (master/detail) Service communication Command bubbling Change tracking Data. Context integration Problems solved: 1. Client-templates 2. Data binding 3. Client controls Problems solved: 1. Easy service communication 2. Client controls

demo Client-Side AJAX: A One

demo Client-Side AJAX: A One

How can we easily interact with elements within the template?

How can we easily interact with elements within the template?

Command Bubbling Server-Side (Web. Forms): <asp: Button runat=“server” Command. Name=“Select" … /> Client-Side: <button

Command Bubbling Server-Side (Web. Forms): <asp: Button runat=“server” Command. Name=“Select" … /> Client-Side: <button sys: command="select" … />

What if you want to “connect” objects together?

What if you want to “connect” objects together?

Live Bindings Source Target Object #1 Object #2 Property #1 Property #2 Property #3

Live Bindings Source Target Object #1 Object #2 Property #1 Property #2 Property #3 One-Time One-Way Two-Way The property is bound the source Bothtarget the target property and to source property, only once. will stay in sync. and boundand to each other, and will stay in sync.

demo Command Bubbling & Live Bindings: A Two-Hoo

demo Command Bubbling & Live Bindings: A Two-Hoo

What if our service interaction is geared more towards data than it is behavior?

What if our service interaction is geared more towards data than it is behavior?

Data. Context “in depth”… ASMX 1. Request WCF Data Context 3. Modify Data 2.

Data. Context “in depth”… ASMX 1. Request WCF Data Context 3. Modify Data 2. JSON Data 4. Save Data ADO. NET Data Services ASP. NET MVC Json. Result Etc.

That slide made change tracking look really easy!

That slide made change tracking look really easy!

demo ADO. NET Data Services & Change Tracking: A Three

demo ADO. NET Data Services & Change Tracking: A Three

Maybe you’d prefer to write as little Java. Script as possible…

Maybe you’d prefer to write as little Java. Script as possible…

Declarative Instantiation 1. Map: <body … xmlns: dataview="javascript: Sys. UI. Data. View“ … >

Declarative Instantiation 1. Map: <body … xmlns: dataview="javascript: Sys. UI. Data. View“ … > 2. Attach: <div sys: attach="dataview"></div> 3. Use: <div … dataview: serviceuri="my. Service. svc“ … >

Marketing Translation… Map. Attach. Use.

Marketing Translation… Map. Attach. Use.

Did I mention that it is XHTML compliant?

Did I mention that it is XHTML compliant?

demo Declarative Instantiation: Cruuuunch!

demo Declarative Instantiation: Cruuuunch!

Browser Support Microsoft Internet Explorer 6 Microsoft Internet Explorer 7 Microsoft Internet Explorer 8

Browser Support Microsoft Internet Explorer 6 Microsoft Internet Explorer 7 Microsoft Internet Explorer 8 Mozilla Firefox 2 Mozilla Firefox 3 Apple Safari 3 Opera 9. 6

Takeaways Java. Script isn’t to be feared ASP. NET AJAX and j. Query work

Takeaways Java. Script isn’t to be feared ASP. NET AJAX and j. Query work great together The ACT provides a strong ecosystem of UI widgets

Complete an evaluation on Comm. Net and enter to win!

Complete an evaluation on Comm. Net and enter to win!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2009 Microsoft Corporation. All rights reserved. Microsoft, 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.