Your SlideShare is downloading. ×
0
Microsoft ‘Atlas’ Part 1: The Microsoft Ajax Library Presenter: Tim Kremer
About Tim <ul><li>Project Manager at SSW </li></ul><ul><li>Software Engineering Background </li></ul><ul><li>Developing we...
Ajax Timeline <ul><li>Microsoft invents it </li></ul><ul><ul><li>IE in 1998 </li></ul></ul><ul><ul><li>OWA, MSDN take adva...
Why is Web 2.0 difficult? <ul><li>JavaScript apps are difficult to develop </li></ul><ul><ul><li>Poor debug tools </li></u...
Many Popular Libraries <ul><li>Prototype JavaScript extension library, and crux of many of the open-source offerings. </li...
Problems with the landscape <ul><li>Most existing libraries are: </li></ul><ul><ul><li>Incomplete </li></ul></ul><ul><ul><...
3 Parts of Atlas <ul><li>Client Side Stuff  **this presentation** </li></ul><ul><li>Server Side Stuff </li></ul><ul><li>At...
Briefly - Microsoft ASP.NET 2.0  Server Extensions <ul><li>Server Controls </li></ul><ul><ul><li>Script Manager </li></ul>...
Briefly - Microsoft ASP.NET 2.0 Ajax Toolkit <ul><li>Overview </li></ul><ul><li>Asp.net Official Link:   http://atlas.asp....
The Microsoft Ajax Family <ul><li>Formerly codenamed ‘Atlas’ </li></ul><ul><ul><li>Client-side framework </li></ul></ul><u...
 
Microsoft Ajax Client Library <ul><li>More than just Ajax: </li></ul><ul><ul><li>Cross-Browser Framework  </li></ul></ul><...
Microsoft Ajax Client Library Browser Compatibility   <ul><li>Browser Compatibility Layer Supports </li></ul><ul><li>IE </...
Microsoft Ajax Client Library   Script Core -  Rich OO model <ul><li>Your client-side script supports: </li></ul><ul><li>I...
Microsoft Ajax Client Library   Base Class Library <ul><li>Useful types: </li></ul><ul><li>StringBuilder </li></ul><ul><li...
Microsoft Ajax Client Library   Client-side Programming Models <ul><li>Traditional Imperative Code </li></ul><ul><li>And/o...
Microsoft Ajax Client Library   Components, Events & Actions <ul><li>Components </li></ul><ul><li>Components are   reusabl...
Microsoft Ajax Client Library   Components, Events & Actions <ul><li>Events </li></ul><ul><li>Components can raise events....
Microsoft Ajax Client Library   Control Bindings <ul><li>Control Bindings </li></ul><ul><li>Bindings allow wiring up compo...
Control Extensions & Behaviours <ul><li>Control Extensions exist to add interesting functionality to simple html or asp co...
Microsoft Ajax Client Library   Data Binding <ul><li>Atlas provides a rich set of data controls using familiar html templa...
Essential Tools <ul><li>http://www.fiddlertool.com </li></ul><ul><ul><li>IE powertoy from Microsoft </li></ul></ul><ul><ul...
Real World Web 2.0 <ul><li>Spyk.com Property Search </li></ul><ul><li>Using: </li></ul><ul><li>Atlas (mostly client-side w...
Questions?
<ul><li>Future Atlas Presentation Topics: </li></ul><ul><li>Client-side Data Binding </li></ul><ul><li>Client-side Authent...
<ul><li>Thank you! </li></ul>
Upcoming SlideShare
Loading in...5
×

Microsoft Ajax

414

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
414
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Microsoft Ajax"

  1. 1. Microsoft ‘Atlas’ Part 1: The Microsoft Ajax Library Presenter: Tim Kremer
  2. 2. About Tim <ul><li>Project Manager at SSW </li></ul><ul><li>Software Engineering Background </li></ul><ul><li>Developing websites since 1998 </li></ul><ul><li>Developing in .NET for 5+ years </li></ul>
  3. 3. Ajax Timeline <ul><li>Microsoft invents it </li></ul><ul><ul><li>IE in 1998 </li></ul></ul><ul><ul><li>OWA, MSDN take advantage </li></ul></ul><ul><li>Google popularises it </li></ul><ul><ul><li>Google Maps </li></ul></ul><ul><li>Web 2.0 explodes </li></ul><ul><ul><li>Flickr </li></ul></ul><ul><ul><li>Digg </li></ul></ul><ul><ul><li>Live.com </li></ul></ul><ul><ul><li>YouTube </li></ul></ul><ul><ul><li>www.Spyk.com (the newest!) </li></ul></ul>
  4. 4. Why is Web 2.0 difficult? <ul><li>JavaScript apps are difficult to develop </li></ul><ul><ul><li>Poor debug tools </li></ul></ul>
  5. 5. Many Popular Libraries <ul><li>Prototype JavaScript extension library, and crux of many of the open-source offerings. </li></ul><ul><ul><li>Script.aculo.us built on top of prototype </li></ul></ul><ul><ul><li>Dojo toolkit – rich client-side UI library built on top of prototype </li></ul></ul><ul><li>Google Web Toolkit server side java libraries that emit javascript and html </li></ul><ul><li>Component Art Server controls and update panels for ASP.NET </li></ul><ul><li>Microsoft ‘Atlas’ - **This presentation** </li></ul><ul><li>Many more: </li></ul><ul><li>http:// wiki.osafoundation.org/bin/view/Projects/AjaxLibraries </li></ul>
  6. 6. Problems with the landscape <ul><li>Most existing libraries are: </li></ul><ul><ul><li>Incomplete </li></ul></ul><ul><ul><ul><li>Some improve on the javascript structure </li></ul></ul></ul><ul><ul><ul><li>Some do cool UI effects </li></ul></ul></ul><ul><ul><ul><li>Some on client side </li></ul></ul></ul><ul><ul><ul><li>Some tied to a particular server technology </li></ul></ul></ul><ul><ul><li>Can’t be used with each other </li></ul></ul>
  7. 7. 3 Parts of Atlas <ul><li>Client Side Stuff **this presentation** </li></ul><ul><li>Server Side Stuff </li></ul><ul><li>Atlas Control Toolkit </li></ul>
  8. 8. Briefly - Microsoft ASP.NET 2.0 Server Extensions <ul><li>Server Controls </li></ul><ul><ul><li>Script Manager </li></ul></ul><ul><ul><li>Update Panel </li></ul></ul><ul><ul><li>Server side equivalents of UI controls </li></ul></ul><ul><ul><li>Server Control extensions </li></ul></ul><ul><li>Server Extensions </li></ul><ul><ul><li>Web Services Bridge </li></ul></ul><ul><ul><ul><li>JSON serialiser </li></ul></ul></ul><ul><ul><ul><li>Javascript proxy generation </li></ul></ul></ul><ul><ul><ul><li>Bridge files (*.asbx) to connect via the server to external web services. **Awesome for mashups!! </li></ul></ul></ul><ul><ul><li>Application Services Bridge </li></ul></ul><ul><ul><ul><li>User authentication (using membership service) </li></ul></ul></ul><ul><ul><ul><li>User data storage (using profile service) </li></ul></ul></ul>
  9. 9. Briefly - Microsoft ASP.NET 2.0 Ajax Toolkit <ul><li>Overview </li></ul><ul><li>Asp.net Official Link: http://atlas.asp.net/default.aspx?tabid=47&subtabid=477 </li></ul><ul><li>Project Source on Codeplex: http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit </li></ul><ul><li>Join the open community effort! </li></ul>
  10. 10. The Microsoft Ajax Family <ul><li>Formerly codenamed ‘Atlas’ </li></ul><ul><ul><li>Client-side framework </li></ul></ul><ul><ul><li>Server side extensions </li></ul></ul><ul><ul><li>Atlas Control Toolkit </li></ul></ul><ul><li>New Official Names, Sept 2006: </li></ul><ul><ul><li>Microsoft Ajax Library **this presentation** </li></ul></ul><ul><ul><li>Microsoft ASP.NET 2.0 Ajax Extensions </li></ul></ul><ul><ul><li>Microsoft ASP.NET 2.0 Ajax Toolkit </li></ul></ul>
  11. 12. Microsoft Ajax Client Library <ul><li>More than just Ajax: </li></ul><ul><ul><li>Cross-Browser Framework </li></ul></ul><ul><ul><li>Extends Javascript to a rich OO model </li></ul></ul><ul><ul><li>Components, Events, Actions </li></ul></ul><ul><ul><li>Imperative or Declarative programming paradigm </li></ul></ul><ul><ul><li>Control Binding </li></ul></ul><ul><ul><li>Control Extensions & Behaviours </li></ul></ul><ul><ul><li>Data Binding </li></ul></ul><ul><ul><li>Not just for ASP.NET </li></ul></ul><ul><ul><li>More efficient AJAX calls using JSON </li></ul></ul>
  12. 13. Microsoft Ajax Client Library Browser Compatibility <ul><li>Browser Compatibility Layer Supports </li></ul><ul><li>IE </li></ul><ul><li>Mozilla </li></ul><ul><li>Safari </li></ul><ul><li>Opera (in the works) </li></ul>
  13. 14. Microsoft Ajax Client Library Script Core - Rich OO model <ul><li>Your client-side script supports: </li></ul><ul><li>Inheritance </li></ul><ul><li>Interfaces & Abstract classes </li></ul><ul><li>Namespaces </li></ul><ul><li>Enumerations </li></ul><ul><li>Delegates </li></ul>
  14. 15. Microsoft Ajax Client Library Base Class Library <ul><li>Useful types: </li></ul><ul><li>StringBuilder </li></ul><ul><li>Debug </li></ul><ul><li>Event </li></ul><ul><li>IDisposable </li></ul><ul><li>Other Support: </li></ul><ul><li>Serialisation for JSON </li></ul><ul><li>Authentication integration with the server counterpart </li></ul><ul><li>Profile integration with the server counterpart </li></ul><ul><li>Abstractions: </li></ul><ul><li>Abstractions for XMLHTTP </li></ul><ul><ul><li>WebRequest </li></ul></ul><ul><ul><li>WebResponse </li></ul></ul><ul><li>Further Abstractions for invoking WebMethods </li></ul><ul><ul><li>Aspx pages </li></ul></ul><ul><ul><li>Web services </li></ul></ul><ul><ul><li>any server class </li></ul></ul>
  15. 16. Microsoft Ajax Client Library Client-side Programming Models <ul><li>Traditional Imperative Code </li></ul><ul><li>And/or </li></ul><ul><li>Declarative XML-script mark-up called ‘Atlas Script’ </li></ul>
  16. 17. Microsoft Ajax Client Library Components, Events & Actions <ul><li>Components </li></ul><ul><li>Components are reusable, self-describing types </li></ul><ul><li>Common components include: </li></ul><ul><ul><li>Controls Includes visible UI Controls (eg. ListView, VEMap) and non-visible controls (eg. Timer, Counter) </li></ul></ul><ul><ul><li>Behaviours Pre-written functionality to attach additional semantics to existing controls (eg. drag/drop and hover behaviours) </li></ul></ul><ul><ul><li>Validators Like Behaviours, but allow you to define validation rules for input controls </li></ul></ul>
  17. 18. Microsoft Ajax Client Library Components, Events & Actions <ul><li>Events </li></ul><ul><li>Components can raise events. Events can have Actions attached to them. (eg. An event could be raised when a property changes on the component) </li></ul><ul><li>Actions </li></ul><ul><li>Actions allow performing work, by calling Component methods or setting properties in response to events </li></ul>
  18. 19. Microsoft Ajax Client Library Control Bindings <ul><li>Control Bindings </li></ul><ul><li>Bindings allow wiring up components to transfer property values from one component to another. Transformations can be called in the process, and methods can also be invoked. </li></ul><ul><li><span id=&quot;label2&quot;>Empty</span> </li></ul><ul><li><input type=&quot;text&quot; id=&quot;textBoxInput&quot; /> </li></ul><ul><li><script type=&quot;text/xml-script&quot;> .. </li></ul><ul><li><textBox id=&quot;textBoxInput&quot;/> </li></ul><ul><li><label id=&quot;label2&quot;> </li></ul><ul><li><bindings> </li></ul><ul><li><binding dataContext=&quot;textBoxInput&quot; dataPath=&quot;text&quot; property=&quot;text&quot; /> </li></ul><ul><li></bindings> </li></ul><ul><li></label> </li></ul><ul><li>.. </li></ul>
  19. 20. Control Extensions & Behaviours <ul><li>Control Extensions exist to add interesting functionality to simple html or asp controls </li></ul><ul><li>Client Side Extenders </li></ul><ul><ul><li>Eg. AutoCompletion </li></ul></ul><ul><li>Server Side Extenders </li></ul><ul><ul><li>Eg. AutoCompletion </li></ul></ul>
  20. 21. Microsoft Ajax Client Library Data Binding <ul><li>Atlas provides a rich set of data controls using familiar html templates: Variety of DataBound Controls </li></ul><ul><ul><li>ListView </li></ul></ul><ul><ul><li>DataNavigator </li></ul></ul><ul><ul><li>ItemView </li></ul></ul><ul><ul><li>Paging Control </li></ul></ul><ul><li>Additional Client-side behaviours </li></ul><ul><ul><li>Sorting behavior </li></ul></ul><ul><li>Variety of Data Sources </li></ul><ul><ul><li>DataSource </li></ul></ul><ul><ul><li>DataTable </li></ul></ul><ul><ul><li>XML Data Source – uses XPATH on the client side for filtering!! </li></ul></ul><ul><li>This is a whole topic of its own, and ripe for future usergroup presentations. </li></ul>
  21. 22. Essential Tools <ul><li>http://www.fiddlertool.com </li></ul><ul><ul><li>IE powertoy from Microsoft </li></ul></ul><ul><ul><li>HTTP debugging proxy. Inspect traffic, set breakpoints, and ‘fiddle’ with requests </li></ul></ul><ul><li>Microsoft Internet Explorer Developer Toolbar </li></ul><ul><ul><li>View & manipulate Browser DOM, Caches </li></ul></ul><ul><ul><li>Highlighting & labelling of html elements </li></ul></ul><ul><ul><li>Validate CSS, HTML, Links </li></ul></ul>
  22. 23. Real World Web 2.0 <ul><li>Spyk.com Property Search </li></ul><ul><li>Using: </li></ul><ul><li>Atlas (mostly client-side with service calls) </li></ul><ul><li>Virtual Earth </li></ul><ul><li>SQL Server </li></ul><ul><li>ASP.NET </li></ul><ul><li>.NET multithreaded rich client for spidering properties. </li></ul>
  23. 24. Questions?
  24. 25. <ul><li>Future Atlas Presentation Topics: </li></ul><ul><li>Client-side Data Binding </li></ul><ul><li>Client-side Authentication + Profile </li></ul><ul><li>Server Control Creation </li></ul><ul><li>Web Services Bridge for Mashups </li></ul><ul><li>Gadget Creation </li></ul>
  25. 26. <ul><li>Thank you! </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×