An Introduction to Microsoft’s Codename “Atlas” (For PHP Developers)   Gregory Renard CTO Wygwam [email_address] Microsoft...
Goals <ul><li>NO MARKETING OR SALES </li></ul><ul><li>All free Microsoft stuff </li></ul><ul><li>Reframing AJAX Developmen...
Atlas is now…… <ul><li>The Microsoft AJAX Library (JavaScript) </li></ul><ul><li>The ASP.NET 2.0 AJAX Extensions </li></ul...
Books
What is Ajax ? <ul><li>Asynchronous JavaScript and XML ? </li></ul><ul><li>JavaScript / DOM </li></ul><ul><li>Client Acces...
<ul><li>The User Interface </li></ul><ul><ul><li>Entirely Synchronous  </li></ul></ul><ul><ul><li>Reactive (as opposed to ...
What problems are we trying to solve? <ul><li>We need to meet changing user expectations. </li></ul><ul><ul><li>The ever c...
Why Ajax ?  <ul><li>Fewer Postbacks ??? </li></ul><ul><li>Better Applications </li></ul><ul><ul><li>Fewer Page Navigations...
What is “Atlas”? <ul><li>Framework for Building Richer, Interactive, Personalized Web Experiences and Applications </li></...
What .NET Developers get from ATLAS <ul><li>Ajax Style Asynchronousity  </li></ul><ul><li>Codeless Ajax behaviors </li></u...
Architecture Diagram “ Atlas” Server Framework “ Atlas” Client Framework and Services “ Atlas”-enabled  ASP.NET Pages Web ...
Atlas – Implementation Architecture IE Firefox Safari Browser Clients Web Server Atlas Client  JavaScript Libraries AtlasU...
What PHP Developers Can Get from Atlas <ul><li>JavaScript extensions . </li></ul><ul><ul><li>Adds objects, functions, and ...
Client-Centric Programming Model Browser “Application” Presentation (HTML/CSS) “ Atlas” Service Proxies UI Behavior (Scrip...
Atlas Client Library <ul><li>AtlasRuntime.js </li></ul><ul><ul><li>web services, networking, basic OO extensions  </li></u...
Client Libraries
What PHP Developers Loose <ul><li>Server Controls </li></ul><ul><li>Drag ‘n Drop Design </li></ul><ul><li>Server Data Bind...
Server-Centric Programming Model Browser “Application” Presentation (HTML/CSS) ASP.NET Application Services Page Framework...
PHP Programming <ul><li>The Atlas Client Libraries </li></ul><ul><li>PHP on the Server </li></ul><ul><ul><li>UI & Services...
<ul><li><script language=&quot;javascript&quot; type=&quot;text/javascript&quot;>  var request = null; </li></ul><ul><li>f...
Atlas Programming in PHP <ul><li>Create a Script Manager Instance </li></ul><ul><li>Select your “atlas_include” </li></ul>...
Ajax & PHP Applications
Community Participation Model <ul><li>Plans are in progress, but forming quickly </li></ul><ul><li>Two pronged plan </li><...
Atlas Summary <ul><li>“ Atlas” is a key part of the ASP.NET story </li></ul><ul><li>“ Atlas” Goals </li></ul><ul><ul><li>M...
Resources <ul><li>“ Atlas” Web site </li></ul><ul><ul><li>http://atlas.asp.net </li></ul></ul><ul><ul><li>Bits, Forums, Qu...
 
Upcoming SlideShare
Loading in...5
×

Atlas Php

1,049

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,049
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Atlas Php

  1. 1. An Introduction to Microsoft’s Codename “Atlas” (For PHP Developers) Gregory Renard CTO Wygwam [email_address] Microsoft Regional Director Microsoft MVP ASP.NET Asp-Php.Net Admin Aurélien Verla Architecte - Développeur [email_address] Microsoft MVP ASP.NET Asp-Php.Net Admin
  2. 2. Goals <ul><li>NO MARKETING OR SALES </li></ul><ul><li>All free Microsoft stuff </li></ul><ul><li>Reframing AJAX Development </li></ul><ul><li>Explain Microsoft Rich Web UI Technology </li></ul><ul><li>Jump Start PHP Developers </li></ul>
  3. 3. Atlas is now…… <ul><li>The Microsoft AJAX Library (JavaScript) </li></ul><ul><li>The ASP.NET 2.0 AJAX Extensions </li></ul><ul><li>The ASP.NET AJAX Control Toolkit </li></ul>
  4. 4. Books
  5. 5. What is Ajax ? <ul><li>Asynchronous JavaScript and XML ? </li></ul><ul><li>JavaScript / DOM </li></ul><ul><li>Client Accessed “Web Services” Calls </li></ul><ul><li>Programming Browser UI “Dynamics” </li></ul><ul><li>A new interface design predicate </li></ul><ul><li>Software as a Service </li></ul><ul><li>A paradigm. </li></ul><ul><li>… the next step to the User Experience </li></ul>
  6. 6. <ul><li>The User Interface </li></ul><ul><ul><li>Entirely Synchronous </li></ul></ul><ul><ul><li>Reactive (as opposed to proactive) </li></ul></ul><ul><ul><li>Delivery timing is entirely user dependent </li></ul></ul><ul><li>The Content </li></ul><ul><ul><li>Single point of origin </li></ul></ul><ul><ul><li>Primarily Reactive </li></ul></ul><ul><ul><li>Often Untimely </li></ul></ul><ul><ul><li>Not Cost Effective </li></ul></ul>What problems are we trying to solve?
  7. 7. What problems are we trying to solve? <ul><li>We need to meet changing user expectations. </li></ul><ul><ul><li>The ever changing definition of “Dynamic” </li></ul></ul><ul><li>Engineering Efficacy </li></ul><ul><ul><li>Improve the developer feature set of JavaScript </li></ul></ul><ul><ul><li>Write less code </li></ul></ul><ul><ul><li>Write code in ONE place </li></ul></ul><ul><ul><li>Abstract the plumbing. </li></ul></ul>
  8. 8. Why Ajax ? <ul><li>Fewer Postbacks ??? </li></ul><ul><li>Better Applications </li></ul><ul><ul><li>Fewer Page Navigations </li></ul></ul><ul><ul><li>User interactions </li></ul></ul><ul><ul><li>Dynamic Content </li></ul></ul><ul><li>Applications we couldn’t even build before </li></ul><ul><ul><li>Granular UI Dynamics = New Business </li></ul></ul><ul><ul><li>Fiscal Viability & Software as a Service </li></ul></ul><ul><ul><li>Combinatorial Design = New Problem Domains </li></ul></ul>
  9. 9. What is “Atlas”? <ul><li>Framework for Building Richer, Interactive, Personalized Web Experiences and Applications </li></ul><ul><li>A RICH Client Library & Toolset </li></ul><ul><li>High productivity AJAX development </li></ul><ul><li>Server side builds on top of ASP.NET 2.0 </li></ul><ul><li>Works cross-browser (compatibility layer) </li></ul><ul><li>End-to-End Framework </li></ul><ul><li>Server Source Agnostic </li></ul><ul><ul><li>JSON, POX, Etc… </li></ul></ul><ul><li>Fully Extensible </li></ul>
  10. 10. What .NET Developers get from ATLAS <ul><li>Ajax Style Asynchronousity </li></ul><ul><li>Codeless Ajax behaviors </li></ul><ul><li>Encapsulated Client Behavior </li></ul><ul><li>Rich, OO, Typed JavaScript </li></ul><ul><li>Codeless Service Proxies </li></ul><ul><ul><li>SOAP Web Services </li></ul></ul><ul><ul><li>JSON </li></ul></ul><ul><ul><li>Windows Communication Foundation </li></ul></ul><ul><ul><li>Page methods </li></ul></ul><ul><li>Sandbox Bridging Technology </li></ul><ul><li>Component based Dev Tools </li></ul><ul><li>ASP.NET 2.0 Services </li></ul>
  11. 11. Architecture Diagram “ Atlas” Server Framework “ Atlas” Client Framework and Services “ Atlas”-enabled ASP.NET Pages Web Services (ASMX or WCF) HTML, Script, “ Atlas” Markup “ Atlas” Service Proxies ASP.NET “Atlas” Server Extensions “ Atlas” Server Controls App Services Bridge Web Services Bridge “ Atlas” Client Script Library Controls, Components Script Core Base Class Library Component Model and UI Framework Browser Compatibility “ Atlas” Client Application Services Local Store, … Browser Integration ASP.NET 2.0 Application Services Page Framework, Server Controls
  12. 12. Atlas – Implementation Architecture IE Firefox Safari Browser Clients Web Server Atlas Client JavaScript Libraries AtlasUIGlitz.js AtlasGadgets.js AtlasFX.js AtlasCompat.js AtlasRuntime.js JSON Bridge Support Mashup Bridge Support Membership & Personalization Support ASP.NET Server Control Integration IIS & ASP.NET Apache & PHP
  13. 13. What PHP Developers Can Get from Atlas <ul><li>JavaScript extensions . </li></ul><ul><ul><li>Adds objects, functions, and data types to native JavaScript. Enables us to create simulated OO constructs </li></ul></ul><ul><ul><li>Classes, namespaces, enums, inheritance, and interfaces. </li></ul></ul><ul><li>Base class library (BCL) </li></ul><ul><ul><li>Commonly used classes for debugging, events, strings, web services, accessing host environment, timers, and components. </li></ul></ul><ul><li>Core Client UI framework (JavaScript) . </li></ul><ul><ul><li>Building block objects for the UI infrastructure and for interacting with the DOM and DHTML. </li></ul></ul><ul><ul><li>Includes base control object; a set of behaviors; validation; data binding; client content templates; drag & drop; and other UI effects. </li></ul></ul><ul><li>UI toolkit </li></ul><ul><ul><li>Set of individual, client-side controls that have richer capabilities than standard HTML controls. </li></ul></ul><ul><ul><li>Examples: hyperlink, listview, select, dataview, button, checkbox, textbox, label, datasource, counter, and more. </li></ul></ul>
  14. 14. Client-Centric Programming Model Browser “Application” Presentation (HTML/CSS) “ Atlas” Service Proxies UI Behavior (Script) ASP.NET Application Services Page Framework, Server Controls Web Application Pages Web Services Atlas Script Framework Client Application Services Component/UI Framework, Controls Initial Rendering (UI + Behavior) Data Data
  15. 15. Atlas Client Library <ul><li>AtlasRuntime.js </li></ul><ul><ul><li>web services, networking, basic OO extensions </li></ul></ul><ul><li>Atlas.js </li></ul><ul><ul><li>'Atlas' feature set, </li></ul></ul><ul><ul><li>Included when you add 'Atlas' ScriptManager. </li></ul></ul><ul><li>AtlasCompat.js & AtlasCompat2.js </li></ul><ul><li>AtlasFX.js ( Same as Atlas.js less the AtlasRuntime.js) </li></ul><ul><ul><li>For use with gadgets in hosted scenarios. </li></ul></ul><ul><li>AtlasUIDragDrop.js </li></ul><ul><li>AtlasUIGlitz.js . </li></ul><ul><li>AtlasUIMap.js . </li></ul><ul><ul><li>Implements a virtual mapping feature. </li></ul></ul><ul><li>AtlasWebParts.js . </li></ul><ul><li>GadgetRuntime.js . </li></ul><ul><ul><li>Runtime code used by Microsoft and MSN. </li></ul></ul>
  16. 16. Client Libraries
  17. 17. What PHP Developers Loose <ul><li>Server Controls </li></ul><ul><li>Drag ‘n Drop Design </li></ul><ul><li>Server Data Binding </li></ul><ul><li>Auto Class Proxies </li></ul><ul><li>Auto Generated Ajax Server Proxies </li></ul><ul><li>The Profile Service </li></ul><ul><li>Page Methods </li></ul><ul><li>Etc….. </li></ul><ul><li>But………… </li></ul>
  18. 18. Server-Centric Programming Model Browser “Application” Presentation (HTML/CSS) ASP.NET Application Services Page Framework, Server Controls Atlas Script Framework Client Application Services Component/UI Framework, Controls ASP.NET Application Pages UI Behavior (Managed Code) Input Data Updated UI + Behavior Initial Rendering (UI + Behavior)
  19. 19. PHP Programming <ul><li>The Atlas Client Libraries </li></ul><ul><li>PHP on the Server </li></ul><ul><ul><li>UI & Services in PHP </li></ul></ul><ul><li>Mixed PHP & ASP.NET </li></ul><ul><ul><li>UI in PHP </li></ul></ul><ul><ul><li>Page Services in ASP.NET </li></ul></ul>
  20. 20. <ul><li><script language=&quot;javascript&quot; type=&quot;text/javascript&quot;> var request = null; </li></ul><ul><li>function createRequest() { </li></ul><ul><li>try { </li></ul><ul><li>request = new XMLHttpRequest(); </li></ul><ul><li>} catch (trymicrosoft) { </li></ul><ul><li>try { </li></ul><ul><li>request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); </li></ul><ul><li>} catch (othermicrosoft) { </li></ul><ul><li>try { </li></ul><ul><li>request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); </li></ul><ul><li>} catch (failed) { </li></ul><ul><li>request = null; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>if (request == null) </li></ul><ul><li>alert(&quot;Error creating request object!&quot;); </li></ul><ul><li>} </li></ul>function getBoardsSold() { createRequest(); var url = &quot;getUpdatedBoardSales-ajax.php&quot;; request.open(&quot;GET&quot;, url, true); request.onreadystatechange = updatePage; request.send(null); } function updatePage() { if (request.readyState == 4) { var newTotal = request.responseText; var boardsSoldEl = document.getElementById(&quot;boards-sold&quot;); var cashEl = document.getElementById(&quot;cash&quot;); replaceText(boardsSoldEl, newTotal); /* Figure out how much cash Katie has made */ var priceEl = document.getElementById(&quot;price&quot;); var price = getText(priceEl); var costEl = document.getElementById(&quot;cost&quot;); var cost = getText(costEl); var cashPerBoard = price - cost; var cash = cashPerBoard * newTotal; /* Update the cash for the slopes on the form */ cash = Math.round(cash * 100) / 100; replaceText(cashEl, cash); } } </script>
  21. 21. Atlas Programming in PHP <ul><li>Create a Script Manager Instance </li></ul><ul><li>Select your “atlas_include” </li></ul><ul><li>Include your Atlas Components </li></ul><ul><ul><li>Wire them to your HTML Artifacts </li></ul></ul><ul><li>Specify your Service URL & Method </li></ul>
  22. 22. Ajax & PHP Applications
  23. 23. Community Participation Model <ul><li>Plans are in progress, but forming quickly </li></ul><ul><li>Two pronged plan </li></ul><ul><ul><li>Atlas Component Gallery that anyone can contribute to </li></ul></ul><ul><ul><li>Shared source Toolkit project </li></ul></ul><ul><ul><ul><li>Selected members of the community have write access </li></ul></ul></ul><ul><ul><ul><li>Top gallery submissions and help recruit new contributors </li></ul></ul></ul><ul><ul><ul><li>Eventually hand off the Toolkit project to non-Microsoft stewards </li></ul></ul></ul><ul><li>ASP.NET Team’s will work hand in hand with community contributors until handoff </li></ul>
  24. 24. Atlas Summary <ul><li>“ Atlas” is a key part of the ASP.NET story </li></ul><ul><li>“ Atlas” Goals </li></ul><ul><ul><li>Make it super easy to incorporate AJAX patterns, and create rich user experiences, and leverage the browser </li></ul></ul><ul><ul><li>Create a natural progression from Web applications to Smart clients using a common application model </li></ul></ul><ul><li>Still in its early stages – preview builds for greater transparency, more opportunities for feedback to have impact </li></ul>
  25. 25. Resources <ul><li>“ Atlas” Web site </li></ul><ul><ul><li>http://atlas.asp.net </li></ul></ul><ul><ul><li>Bits, Forums, Quickstarts, Docs, Updates </li></ul></ul><ul><li>Blogs </li></ul><ul><ul><li>http://www.nikhilk.net </li></ul></ul><ul><ul><li>http://weblogs.asp.net/scottgu </li></ul></ul><ul><ul><li>http://weblogs.asp.net/bleroy </li></ul></ul><ul><li>“ Atlas” Control Toolkit </li></ul><ul><ul><li>http://atlas.asp.net/default.aspx?tabid=47&subtabid=477 </li></ul></ul>

×