Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010108398 | TK5105.8885.A26 B435 2006 | Open Access Book | Book | Searching... |
Searching... | 30000010127835 | TK5105.8885.A26 B435 2006 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Ajax has the power to revolutionize the way web-based applications are designed. This book provides you with a thorough working knowledge of what Ajax has to offer and how to take full advantage of it in your application development.
Following an exploration of how Ajax works with .NET, you'll get acquainted with DHTML, the role of JavaScript and the Document Object Model, and the XMLHttpRequest Object, which is the foundation of Ajax. Then you will examine the Ajax-type features built into ASP.NET and explore the Ajax.NET Professional Library in detail. Finally, you will explore client scripting as well as building and using controls with Microsoft's Atlas. With an entire chapter devoted to debugging, you will have all you need to use this cutting-edge technology.
What you will learn from this book
* What you can do with the open source Ajax.NET Professional Library
* How to use the corresponding functionality, Asynchronous Client Script Callbacks, that comes with ASP.NET 2.0
* Techniques for using the XMLHttpRequest Object to communicate between the client web browser and the server
* An overview of XML, XSLT, and other ways to send data between client and server
* How to integrate Microsoft's Atlas with many of the services available in ASP.NET 2.0
Who this book is for
This book is for programmers who use ASP.NET and are just starting to use Ajax technologies to create more responsive, modern applications.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
Author Notes
Wallace B. "Wally" McClure graduated from the Georgia Institute of Technology in 1990 with a Bachelor of Science degree in electrical engineering. He continued his education there, receiving a master's degree in the same field in 1991. Since that time, he has done consulting and development for such organizations as The United States Department of Education, Coca-Cola, Bechtel National, Magnatron, and Lucent Technologies, among others. Products and services have included work with ASP, ADO, XML, and SQL Server, as well as numerous applications in the Microsoft .NET Framework. Wally has been working with the .NET Framework since the summer of 2000. Wally McClure specializes in building applications that have large numbers of users and large amounts of data. He is a Microsoft MVP and an ASPInsider, and a partner in Scalable Development, Inc. You can read Wally's blog at http://weblogs.asp.net/wallym.
Wally and coauthor Paul Glavich also co-host the ASP.NET Podcast. You can listen to it at www.aspnetpodcast.com. In addition, Wally travels around the southeast United States doing user group talks and sessions at various CodeCamps.
When not working or playing with technology, Wally tries to spend time with his wife Ronda and their two children, Kirsten and Bradley. Occasionally, Wally plays golf and on July 30, 2005, broke par on a real golf course for the first time in his life. If he hadn't been there, he would not have believed it.
Scott Cate is the President of myKB.com, Inc., in Scottsdale, Arizona. myKB.com, Inc., is a technology company specializing in commercial ASP.NET applications. His product line includes myKB.com (knowledge base software), kbAlertz.com (Microsoft knowledge base notifications), and EasySearchASP.net (a pluggable search engine for ASP.NET sites). Scott also runs AZGroups.com (Arizona .NET user groups), one of the largest and most active user group communities in the country, and is a member of ASPInsiders.com, a group devoted to giving early feedback to the Microsoft ASP.NET team. In addition, Scott has coauthored the novel Surveillance , which can be found at http://surveillance-the-novel.com.
Paul Glavich is currently an ASP.NET MVP and works as a senior technical consultant for Readify. He has over 15 years of industry experience ranging from PICK, C, C++, Delphi, and Visual Basic 3/4/5/6 to his current specialty in .NET C++ with C#, COM+, and ASP.NET. Paul has been developing in .NET technologies since .NET was first in beta and was technical architect for one of the world's first Internet banking solutions using .NET technology. Paul can be seen on various .NET related newsgroups, has presented at the Sydney .NET user group (www.sdnug.org) and is also a board member of ASPInsiders (www.aspinsiders.com). He has also written some technical articles that can be seen on community sites, such as ASPAlliance.com (www.aspalliance.com).
On a more personal note, Paul is married with three children and two grandkids, and holds a third degree black belt in budo-jitsu.
Craig Shoemaker can't sit still. As the host of the Polymorphic Podcast (polymorphicpodcast.com), Craig teaches on topics as timely as software architecture and as cutting edge as the latest Ajax technologies. Whether he's writing for CoDe Magazine , ASPAlliance, or DotNetJunkies or speaking at local user groups, Southern California Code Camp, or VSLive!, Craig loves to share his passion for the art and science for software development. Craig is also a full-time software engineer for Microsoft Certified Partner PDSA, Inc. (pdsa.com) in Tustin, California.
Table of Contents
Acknowledgments | p. ix |
Introduction | p. xix |
Chapter 1 Introduction to Ajax on ASP.NET | p. 1 |
Development Trends | p. 1 |
ASP.NET Development | p. 2 |
Design Methodology | p. 2 |
Problems ASP.NET Solves | p. 2 |
So, What's the Problem? | p. 4 |
Improving the User Experience | p. 5 |
What Is Ajax? | p. 6 |
Advantages of Ajax | p. 6 |
History of Ajax | p. 7 |
Technologies That Make Up Ajax | p. 8 |
Running Ajax Applications | p. 8 |
Who's Using Ajax? | p. 9 |
Problems Ajax Won't Solve | p. 9 |
Summary | p. 10 |
Chapter 2 Introduction to DHTML | p. 11 |
What JavaScript Is, and What It Isn't | p. 11 |
General Rules of JavaScript | p. 12 |
Writing Your First Block of JavaScript Code | p. 13 |
document.write() | p. 14 |
Using document.write() in Nested for() Loops | p. 14 |
window.status and Events | p. 16 |
Getting Input from the User | p. 17 |
Security Concerns When Getting Text Input | p. 18 |
Canceling the Normal Outcome of an Event | p. 18 |
Causing an Event Not to "Bubble Up" | p. 19 |
Working with Images | p. 19 |
Working with the image src Attribute | p. 20 |
Using Functions | p. 20 |
Programmatically Populating the Options in [left angle bracket]select[right angle bracket] | p. 21 |
Using the innerHTML Property | p. 23 |
Manipulating the Style Sheet | p. 24 |
Creating a Context Menu | p. 26 |
Summary | p. 27 |
Chapter 3 JavaScript and the Document Object Model | p. 29 |
From Static to Dynamic - A Brief History | p. 30 |
Attempts at Standardization | p. 30 |
Digging into Some More JavaScript Basics | p. 31 |
Functions and Syntax | p. 33 |
Event Handlers | p. 34 |
Core Language | p. 35 |
Variables | p. 35 |
Comments | p. 35 |
Datatypes | p. 36 |
Operators and Expressions | p. 39 |
Flow Control and Loops | p. 40 |
More on Objects and Functions | p. 43 |
Summary of Material So Far | p. 51 |
The Document Object Model | p. 51 |
Object Model Standardization (or Lack Thereof) | p. 53 |
Working with the DOM | p. 57 |
Manipulating Nodes | p. 62 |
Properties of a Node | p. 64 |
DOM Level 0 General Collections | p. 69 |
The DOM, Styles, and CSS | p. 70 |
Summary | p. 74 |
Chapter 4 The XMLHttpRequest Object | p. 77 |
Code Examples for This Chapter | p. 77 |
What Is the XMLHttpRequest Object? | p. 78 |
A Little History | p. 78 |
Synchronous Requests | p. 81 |
Asynchronous Requests | p. 82 |
Dealing with Response Data | p. 84 |
Enhancing Usability | p. 88 |
Passing Parameters to the Server | p. 93 |
What about Web Services? | p. 97 |
Summary | p. 102 |
Chapter 5 Data Communication: XML, XSLT, and JSON | p. 103 |
XML | p. 104 |
History of XML | p. 104 |
XML Documents | p. 105 |
Parsing XML | p. 111 |
XML Summary | p. 112 |
XSLT | p. 112 |
How Processing Occurs | p. 112 |
Built-in Functions | p. 114 |
Processing with XSLT | p. 116 |
Writing Functions in XSLT | p. 120 |
X Path | p. 121 |
Integrating XML and Ajax | p. 122 |
JSON | p. 124 |
Layout of JSON | p. 124 |
JSON Example | p. 125 |
Summary | p. 126 |
Chapter 6 What Is Built into ASP.NET | p. 127 |
Out-of-the-Box Controls | p. 127 |
TreeView Control | p. 128 |
GridView Control | p. 129 |
DetailsView Control | p. 132 |
Browser Compatibility | p. 132 |
The Framework | p. 133 |
ICallbackEventHandler Interface | p. 133 |
Page.ClientScript - System.Web.UI.ClientScriptManager | p. 134 |
Making All the Moving Parts Work Together | p. 135 |
Obtaining a Callback Reference | p. 135 |
Implementing the ICallbackEventHandler Interface | p. 136 |
Initiating the Asynchronous Process from the Browser | p. 138 |
Handling the Result of Asynchronous Server-Side Call on the Client | p. 138 |
Handling Errors in the Asynchronous Process | p. 141 |
Dealing with Complex Data | p. 144 |
Enabling the Page for Asynchronous Callbacks | p. 145 |
Obtaining the Data - Implementing the ICallbackEventHandler interface | p. 146 |
Dealing with the Returned Data on the Client | p. 149 |
Limitations on Returning Complex Data in XML | p. 154 |
ICallbackContainer Interface | p. 154 |
Summary | p. 156 |
Chapter 7 Ajax.NET Professional Library | p. 159 |
Acquiring Ajax.NET Pro Version 6.4.16.1 | p. 160 |
Preparing Your Application | p. 160 |
Using the Ajax.NET Pro Library | p. 161 |
Registering Your Page for Ajax.NET Pro | p. 163 |
Registering Your Methods for Ajax.NET Pro | p. 163 |
Examining the Request Object | p. 164 |
Executing Your Ajax on the Client | p. 165 |
Digging into response.value | p. 167 |
Returning Custom Objects | p. 169 |
More Advanced Callbacks and Context | p. 170 |
Ajax.NET Pro Request Events - Keeping Your Users Updated | p. 172 |
Errors, Errors, Errors. They Happen, You Trap 'em | p. 173 |
Using the Ajax.NET Pro Library - Looking under the Hood | p. 174 |
When Is the Proxy JavaScript Created? | p. 175 |
What Does the JavaScript Do? | p. 176 |
What Happens on the Server after the Proxy JavaScript Has Been Fired? | p. 176 |
How Is the Method in the Code-Behind Actually Executed and How Is the Page Actually Created? | p. 177 |
What Is Really Being Sent Back to the Client | p. 177 |
Summary | p. 177 |
Chapter 8 Anatomy of Ajax.NET Pro Library | p. 179 |
Getting the Ajax.NET Pro Code | p. 180 |
What Do the Ajax.NET Pro Web.Config Settings Accomplish? | p. 182 |
What Happens When You Register the Page Class? | p. 183 |
What Role Does the Ajax.AjaxMethod() Attribute Play? | p. 191 |
How Does the JavaScript Call Get to the Server and Back? | p. 192 |
What Is an Ajax.NET Pro Converter? | p. 193 |
Summary | p. 194 |
Chapter 9 Other Ajax Frameworks for .NET | p. 195 |
Client-Side Frameworks | p. 195 |
Sarissa | p. 196 |
HTMLHttpRequest | p. 199 |
MochiKit | p. 201 |
Server-Side Frameworks | p. 203 |
Architectural Distinctions | p. 203 |
Introduction to the Frameworks | p. 207 |
ComfortASP.NET | p. 208 |
Setup | p. 208 |
Using ComfortASP.NET | p. 209 |
What You Have Learned | p. 219 |
MagicAjax | p. 219 |
Setup | p. 219 |
Using MagicAjax | p. 220 |
What You Have Learned | p. 231 |
Anthem.NET | p. 231 |
Setup | p. 231 |
Using Anthem.NET | p. 232 |
What You Have Learned | p. 246 |
Summary | p. 246 |
Chapter 10 Atlas Client Script | p. 249 |
Introduction to Atlas | p. 249 |
Major Components | p. 250 |
Ajax Support | p. 251 |
Asynchronous Communication Only | p. 251 |
Adding Atlas Support with the ScriptManager Control | p. 252 |
Communicating with Web Services | p. 253 |
Generating the JavaScript Proxies | p. 253 |
Calling Out to Web Services | p. 255 |
Passing Types | p. 257 |
Simple Data Types | p. 257 |
Complex Data Types | p. 258 |
Caching Web Services | p. 263 |
Exposing Web Services from a Web Form | p. 265 |
Atlas Extensions to JavaScript | p. 267 |
Language Enhancements | p. 267 |
Registering Namespaces and Classes in Atlas | p. 273 |
Namespaces and Classes | p. 274 |
Inheritance | p. 276 |
Interfaces | p. 277 |
Enumerations | p. 280 |
Debugging | p. 281 |
Debugging Using debug.dump | p. 281 |
Debugging Using for() loop | p. 283 |
Special Notes Concerning Atlas Client-Side Script | p. 283 |
Resources Used | p. 283 |
Summary | p. 284 |
Chapter 11 Atlas Controls | p. 285 |
Controls | p. 285 |
Buttons | p. 285 |
Sys.UI.Data Controls | p. 286 |
Server Controls | p. 287 |
Data Binding | p. 295 |
Declarative Data Binding | p. 295 |
Programmatic Data Binding | p. 297 |
Binding Directions | p. 300 |
Binding Transformations | p. 300 |
Validation | p. 300 |
Behaviors | p. 307 |
Resources Used | p. 309 |
Summary | p. 309 |
Chapter 12 Atlas Integration with ASP.NET Services | p. 311 |
Examining ASP.NET Services | p. 312 |
Authentication | p. 312 |
Authorization/Roles | p. 313 |
Membership | p. 314 |
Profiles | p. 314 |
Web Part Personalization | p. 314 |
Using Atlas to Integrate with ASP.NET Services | p. 314 |
Authentication | p. 314 |
Authorization/Roles | p. 318 |
Accessing Profiles via Atlas | p. 320 |
Profile Property Names | p. 320 |
Loading Profile Data | p. 322 |
Save Profile Data | p. 323 |
Avoiding Profile Service Gotchas | p. 324 |
Implementing Drag and Drop via Atlas | p. 325 |
Summary | p. 328 |
Chapter 13 Debugging | p. 329 |
Server-Side Debugging | p. 329 |
Enabling Debugging Support | p. 330 |
Setting Breakpoints | p. 331 |
JavaScript and Client-Side Debugging | p. 332 |
Tools and Techniques of the Trade | p. 332 |
Other Ways of Invoking the Debugger | p. 342 |
Other Ways of Inspecting the Value of Variables | p. 344 |
Script Debugging So Far | p. 347 |
Browser Debugging Tools | p. 347 |
The Man in the Middle | p. 351 |
Summary | p. 361 |
Appendix A XSLT Commands | p. 363 |
Index | p. 373 |