SlideShare a Scribd company logo
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
Goals NO MARKETING OR SALES All free Microsoft stuff Reframing AJAX Development Explain Microsoft Rich Web UI Technology Jump Start PHP Developers
Atlas is now…… The Microsoft AJAX Library (JavaScript) The ASP.NET 2.0 AJAX Extensions The ASP.NET AJAX Control Toolkit
Books
What is Ajax ? Asynchronous JavaScript and XML ? JavaScript / DOM Client Accessed “Web Services” Calls Programming Browser UI “Dynamics” A new interface design predicate Software as a Service A paradigm. …  the next step to the User Experience
The User Interface Entirely Synchronous  Reactive (as opposed to proactive) Delivery timing is entirely user dependent The Content Single point of origin Primarily Reactive  Often Untimely Not Cost Effective What problems are we trying to solve?
What problems are we trying to solve? We need to meet changing user expectations. The ever changing definition of “Dynamic” Engineering Efficacy  Improve the developer feature set of JavaScript Write less code Write code in ONE place Abstract the plumbing.
Why Ajax ?  Fewer Postbacks ??? Better Applications Fewer Page Navigations User interactions Dynamic Content Applications we couldn’t even build before Granular UI Dynamics = New Business  Fiscal Viability & Software as a Service Combinatorial Design = New Problem Domains
What is “Atlas”? Framework for Building Richer, Interactive, Personalized Web Experiences and Applications A RICH Client Library & Toolset High productivity AJAX development Server side builds on top of ASP.NET 2.0 Works cross-browser (compatibility layer) End-to-End Framework  Server Source Agnostic JSON, POX, Etc… Fully Extensible
What .NET Developers get from ATLAS Ajax Style Asynchronousity  Codeless Ajax behaviors Encapsulated Client Behavior Rich, OO, Typed JavaScript Codeless Service Proxies SOAP Web Services JSON Windows Communication Foundation Page methods Sandbox Bridging Technology Component based Dev Tools ASP.NET 2.0 Services
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
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
What PHP Developers Can Get from Atlas JavaScript extensions . Adds objects, functions, and data types to native JavaScript. Enables us to create simulated OO constructs Classes, namespaces, enums, inheritance, and interfaces.  Base class library (BCL) Commonly used classes for debugging, events, strings, web services, accessing host environment, timers, and components.  Core Client UI framework (JavaScript) .  Building block objects for the UI infrastructure and for interacting with the DOM and DHTML.  Includes base control object; a set of behaviors; validation; data binding; client content templates; drag & drop; and other UI effects.  UI toolkit Set of individual, client-side controls that have richer capabilities than standard HTML controls.  Examples: hyperlink, listview, select, dataview, button, checkbox, textbox, label, datasource, counter, and more.
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
Atlas Client Library AtlasRuntime.js web services, networking, basic OO extensions  Atlas.js 'Atlas' feature set,  Included when you add 'Atlas' ScriptManager.  AtlasCompat.js & AtlasCompat2.js AtlasFX.js  ( Same as Atlas.js less the AtlasRuntime.js) For use with gadgets in hosted scenarios.  AtlasUIDragDrop.js AtlasUIGlitz.js .  AtlasUIMap.js .  Implements a virtual mapping feature.  AtlasWebParts.js .  GadgetRuntime.js .  Runtime code used by Microsoft and MSN.
Client Libraries
What PHP Developers Loose Server Controls Drag ‘n Drop Design Server Data Binding Auto Class Proxies Auto Generated Ajax Server Proxies The Profile Service Page Methods Etc….. But…………
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)
PHP Programming The Atlas Client Libraries PHP on the Server UI & Services in PHP Mixed PHP & ASP.NET UI in PHP Page Services in ASP.NET
<script language=&quot;javascript&quot; type=&quot;text/javascript&quot;>  var request = null; function createRequest() { try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); } catch (othermicrosoft) { try { request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); } catch (failed) { request = null; } } } if (request == null) alert(&quot;Error creating request object!&quot;); } 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>
Atlas Programming in PHP Create a Script Manager Instance Select your “atlas_include” Include your Atlas Components Wire them to your HTML Artifacts Specify your Service URL & Method
Ajax & PHP Applications
Community Participation Model Plans are in progress, but forming quickly Two pronged plan Atlas Component Gallery that anyone can contribute to Shared source Toolkit project  Selected members of the community have write access Top gallery submissions and help recruit new contributors Eventually hand off the Toolkit project to non-Microsoft stewards ASP.NET Team’s will work hand in hand with community contributors until handoff
Atlas Summary “ Atlas” is a key part of the ASP.NET story “ Atlas” Goals Make it super easy to incorporate AJAX patterns, and create rich user experiences, and leverage the browser Create a natural progression from Web applications to Smart clients using a common application model Still in its early stages – preview builds for greater transparency, more opportunities for feedback to have impact
Resources “ Atlas” Web site http://atlas.asp.net Bits, Forums, Quickstarts, Docs, Updates Blogs http://www.nikhilk.net http://weblogs.asp.net/scottgu http://weblogs.asp.net/bleroy “ Atlas” Control Toolkit http://atlas.asp.net/default.aspx?tabid=47&subtabid=477
 

More Related Content

PPT
Developing a Better User Experience with "Atlas"
goodfriday
 
PPTX
Introduction to the SharePoint Client Object Model and REST API
Rob Windsor
 
KEY
SharePoint 2010 Client Object Model
G. Scott Singleton
 
PPTX
Integrating SharePoint 2010 and Visual Studio Lightswitch
Rob Windsor
 
PPT
Introduction to the Client OM in SharePoint 2010
Ben Robb
 
PPTX
Lyudmila Zharova: Developing Solutions for SharePoint 2010 Using the Client O...
SharePoint Saturday NY
 
PPTX
SharePoint 2010 Application Development Overview
Rob Windsor
 
PPTX
MVC Training Part 1
Lee Englestone
 
Developing a Better User Experience with "Atlas"
goodfriday
 
Introduction to the SharePoint Client Object Model and REST API
Rob Windsor
 
SharePoint 2010 Client Object Model
G. Scott Singleton
 
Integrating SharePoint 2010 and Visual Studio Lightswitch
Rob Windsor
 
Introduction to the Client OM in SharePoint 2010
Ben Robb
 
Lyudmila Zharova: Developing Solutions for SharePoint 2010 Using the Client O...
SharePoint Saturday NY
 
SharePoint 2010 Application Development Overview
Rob Windsor
 
MVC Training Part 1
Lee Englestone
 

What's hot (20)

PPTX
Advanced SharePoint Web Part Development
Rob Windsor
 
PPTX
Ch3 server controls
Madhuri Kavade
 
PPTX
Architecture in Ajax Applications
Alois Reitbauer
 
PPT
Mvc architecture
Surbhi Panhalkar
 
PDF
ASP.NET Overview - Alvin Lau
Spiffy
 
PDF
[2015/2016] Backbone JS
Ivano Malavolta
 
PPTX
SharePoint 2010 Client-side Object Model
Phil Wicklund
 
PPTX
Ajax and ASP.NET AJAX
Julie Iskander
 
PPTX
Asp.net mvc presentation by Nitin Sawant
Nitin S
 
PPT
Ajax Ppt 1
JayaPrakash.m
 
PPT
ASP.NET 4.0 Roadmap
Harish Ranganathan
 
PPTX
Angular js for Beginnners
Santosh Kumar Kar
 
PPTX
Ajax technology
Safal Agrawal
 
PPT
Advantages and disadvantages of an ajax based client application
Placinta Alin
 
PPTX
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed
 
PPT
ASP
Ramasubbu .P
 
PPT
Ajax workshop
WBUTTUTORIALS
 
PDF
Ajax basics
Vel004
 
Advanced SharePoint Web Part Development
Rob Windsor
 
Ch3 server controls
Madhuri Kavade
 
Architecture in Ajax Applications
Alois Reitbauer
 
Mvc architecture
Surbhi Panhalkar
 
ASP.NET Overview - Alvin Lau
Spiffy
 
[2015/2016] Backbone JS
Ivano Malavolta
 
SharePoint 2010 Client-side Object Model
Phil Wicklund
 
Ajax and ASP.NET AJAX
Julie Iskander
 
Asp.net mvc presentation by Nitin Sawant
Nitin S
 
Ajax Ppt 1
JayaPrakash.m
 
ASP.NET 4.0 Roadmap
Harish Ranganathan
 
Angular js for Beginnners
Santosh Kumar Kar
 
Ajax technology
Safal Agrawal
 
Advantages and disadvantages of an ajax based client application
Placinta Alin
 
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed
 
Ajax workshop
WBUTTUTORIALS
 
Ajax basics
Vel004
 
Ad

Viewers also liked (19)

PDF
Intel Recognition Certificate
Long Phuong
 
PPTX
About ISE (UK)
cardiffPHYSX
 
PDF
Lettre de recommandation
Th Jouet
 
PDF
What does good look like? Lessons learnt from assessing the ITAM maturity of ...
Martin Thompson
 
PPTX
MOOCs and eTourism: A reflection on the university mission, and on the impact...
lorenzo cantoni
 
DOC
Tableaux numeriques
Jrhaidar abdellah
 
PDF
How to work with a vendor during an audit & what not to do – is there such a ...
Martin Thompson
 
PDF
Análisis estructural dentro de la industria III (grupos estratégicos)
P&A Consulting
 
PDF
The Software Asset Management Journey at BMC – The Financial Perspective: Bl...
Martin Thompson
 
PPTX
xBrain Presentation
Audrey Duet
 
PPTX
Transformer asset management
Muthar Hussain
 
PDF
LANDESK ITAM Review Tools Day Presentation 2015
Martin Thompson
 
PPTX
Band theory of semiconductor
Md. Hasan Al Roktim
 
PPTX
U1 le dessin industriel et les figures géométriques
Carles López
 
PPTX
Halftoning in Computer Graphics
University of Potsdam
 
PPTX
Student Registration in a University
ICFAI Business School
 
PDF
How to make your own fashion clothes
Dress Clothing Online Fashion Store
 
PPTX
Les Différents facteurs de pollution de l’eau et leurs impacts sur la santé
Emad Odel
 
PDF
Topographie 2
ayoub hachcham
 
Intel Recognition Certificate
Long Phuong
 
About ISE (UK)
cardiffPHYSX
 
Lettre de recommandation
Th Jouet
 
What does good look like? Lessons learnt from assessing the ITAM maturity of ...
Martin Thompson
 
MOOCs and eTourism: A reflection on the university mission, and on the impact...
lorenzo cantoni
 
Tableaux numeriques
Jrhaidar abdellah
 
How to work with a vendor during an audit & what not to do – is there such a ...
Martin Thompson
 
Análisis estructural dentro de la industria III (grupos estratégicos)
P&A Consulting
 
The Software Asset Management Journey at BMC – The Financial Perspective: Bl...
Martin Thompson
 
xBrain Presentation
Audrey Duet
 
Transformer asset management
Muthar Hussain
 
LANDESK ITAM Review Tools Day Presentation 2015
Martin Thompson
 
Band theory of semiconductor
Md. Hasan Al Roktim
 
U1 le dessin industriel et les figures géométriques
Carles López
 
Halftoning in Computer Graphics
University of Potsdam
 
Student Registration in a University
ICFAI Business School
 
How to make your own fashion clothes
Dress Clothing Online Fashion Store
 
Les Différents facteurs de pollution de l’eau et leurs impacts sur la santé
Emad Odel
 
Topographie 2
ayoub hachcham
 
Ad

Similar to Atlas Php (20)

PPT
Web 2.0 and ASP.NET Ajax
sudhakar
 
PPSX
Web development concepts using microsoft technologies
Hosam Kamel
 
PPTX
Microsoft UK TechDays - Top 10 ASP.NET 4.0 Features
ukdpe
 
PPTX
Walther Ajax4
rsnarayanan
 
PPT
ASPNET Roadmap
ukdpe
 
PPTX
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Quek Lilian
 
PPTX
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
PPTX
Walther Aspnet4
rsnarayanan
 
PPT
Net Framework Hima
HimaVejella
 
PPTX
Introduction to JQuery, ASP.NET MVC and Silverlight
Peter Gfader
 
PPT
Introduction to ASP.net. It provides basic introduction
ssuserbf6ebe
 
PPT
introaspnetkjadbfksdjkfaskjdbfkajsbfkjfjkswa.ppt
AvijitChaudhuri3
 
PPT
introaspnet.ppt
asmachehbi
 
PPT
introaspnet.ppt
IbrahimBurhan6
 
PPT
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
PPT
introasp_net-7364068.ppt
IQM123
 
PPT
introasp_net-6563550.ppt
IQM123
 
PPTX
Microsoft UK TechDays - jQuery and ASP.NET
ukdpe
 
PPT
Ajax World 2008
Axway Appcelerator
 
PPT
Ajaxworld March 2008 - Jeff Haynie Keynote - Appcelerator
Jeff Haynie
 
Web 2.0 and ASP.NET Ajax
sudhakar
 
Web development concepts using microsoft technologies
Hosam Kamel
 
Microsoft UK TechDays - Top 10 ASP.NET 4.0 Features
ukdpe
 
Walther Ajax4
rsnarayanan
 
ASPNET Roadmap
ukdpe
 
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Quek Lilian
 
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
Walther Aspnet4
rsnarayanan
 
Net Framework Hima
HimaVejella
 
Introduction to JQuery, ASP.NET MVC and Silverlight
Peter Gfader
 
Introduction to ASP.net. It provides basic introduction
ssuserbf6ebe
 
introaspnetkjadbfksdjkfaskjdbfkajsbfkjfjkswa.ppt
AvijitChaudhuri3
 
introaspnet.ppt
asmachehbi
 
introaspnet.ppt
IbrahimBurhan6
 
ASP.NET AJAX with Visual Studio 2008
Caleb Jenkins
 
introasp_net-7364068.ppt
IQM123
 
introasp_net-6563550.ppt
IQM123
 
Microsoft UK TechDays - jQuery and ASP.NET
ukdpe
 
Ajax World 2008
Axway Appcelerator
 
Ajaxworld March 2008 - Jeff Haynie Keynote - Appcelerator
Jeff Haynie
 

More from Gregory Renard (20)

PPTX
WygDay - Session Innovation xBrainLab
Gregory Renard
 
PPTX
WygDay 2010
Gregory Renard
 
PPT
M Forum
Gregory Renard
 
PPTX
Approach the future of tourism by the new Technologies
Gregory Renard
 
PPTX
Approach the future of cities by the singularity of technologies !
Gregory Renard
 
PPTX
Wygday 2009 Session Innovation
Gregory Renard
 
PPT
Net 2007 Faire Du E Commerce Dans Les Mv
Gregory Renard
 
PPTX
Wygday Session PléNièRe (2)
Gregory Renard
 
PPTX
Wygday Session PléNièRe (1)
Gregory Renard
 
PPTX
Wygday 2008
Gregory Renard
 
PPT
Web Services
Gregory Renard
 
PPTX
Vs2008 Linq
Gregory Renard
 
PPTX
Vs2008 Breakthrough Software Dev
Gregory Renard
 
PPT
Vs2008 Ms Lux
Gregory Renard
 
PPTX
Visual Studio 2008 Overview
Gregory Renard
 
PPTX
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
PPT
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
PPTX
Visual Basic 9.0 Trucs Et Astuces Dans Visual Studio 2008
Gregory Renard
 
PPT
Visual Basic 9.0 Trucs Et Astuces Dans Visual Studio 2008
Gregory Renard
 
PPT
Tour Horizont.Net
Gregory Renard
 
WygDay - Session Innovation xBrainLab
Gregory Renard
 
WygDay 2010
Gregory Renard
 
Approach the future of tourism by the new Technologies
Gregory Renard
 
Approach the future of cities by the singularity of technologies !
Gregory Renard
 
Wygday 2009 Session Innovation
Gregory Renard
 
Net 2007 Faire Du E Commerce Dans Les Mv
Gregory Renard
 
Wygday Session PléNièRe (2)
Gregory Renard
 
Wygday Session PléNièRe (1)
Gregory Renard
 
Wygday 2008
Gregory Renard
 
Web Services
Gregory Renard
 
Vs2008 Linq
Gregory Renard
 
Vs2008 Breakthrough Software Dev
Gregory Renard
 
Vs2008 Ms Lux
Gregory Renard
 
Visual Studio 2008 Overview
Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
Visual Basic 9.0 – Visual Studio 2008 Quoi De Neuf 2.0
Gregory Renard
 
Visual Basic 9.0 Trucs Et Astuces Dans Visual Studio 2008
Gregory Renard
 
Visual Basic 9.0 Trucs Et Astuces Dans Visual Studio 2008
Gregory Renard
 
Tour Horizont.Net
Gregory Renard
 

Recently uploaded (20)

PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Software Development Methodologies in 2025
KodekX
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
The Future of Artificial Intelligence (AI)
Mukul
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 

Atlas Php

  • 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. Goals NO MARKETING OR SALES All free Microsoft stuff Reframing AJAX Development Explain Microsoft Rich Web UI Technology Jump Start PHP Developers
  • 3. Atlas is now…… The Microsoft AJAX Library (JavaScript) The ASP.NET 2.0 AJAX Extensions The ASP.NET AJAX Control Toolkit
  • 5. What is Ajax ? Asynchronous JavaScript and XML ? JavaScript / DOM Client Accessed “Web Services” Calls Programming Browser UI “Dynamics” A new interface design predicate Software as a Service A paradigm. … the next step to the User Experience
  • 6. The User Interface Entirely Synchronous Reactive (as opposed to proactive) Delivery timing is entirely user dependent The Content Single point of origin Primarily Reactive Often Untimely Not Cost Effective What problems are we trying to solve?
  • 7. What problems are we trying to solve? We need to meet changing user expectations. The ever changing definition of “Dynamic” Engineering Efficacy Improve the developer feature set of JavaScript Write less code Write code in ONE place Abstract the plumbing.
  • 8. Why Ajax ? Fewer Postbacks ??? Better Applications Fewer Page Navigations User interactions Dynamic Content Applications we couldn’t even build before Granular UI Dynamics = New Business Fiscal Viability & Software as a Service Combinatorial Design = New Problem Domains
  • 9. What is “Atlas”? Framework for Building Richer, Interactive, Personalized Web Experiences and Applications A RICH Client Library & Toolset High productivity AJAX development Server side builds on top of ASP.NET 2.0 Works cross-browser (compatibility layer) End-to-End Framework Server Source Agnostic JSON, POX, Etc… Fully Extensible
  • 10. What .NET Developers get from ATLAS Ajax Style Asynchronousity Codeless Ajax behaviors Encapsulated Client Behavior Rich, OO, Typed JavaScript Codeless Service Proxies SOAP Web Services JSON Windows Communication Foundation Page methods Sandbox Bridging Technology Component based Dev Tools ASP.NET 2.0 Services
  • 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. 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. What PHP Developers Can Get from Atlas JavaScript extensions . Adds objects, functions, and data types to native JavaScript. Enables us to create simulated OO constructs Classes, namespaces, enums, inheritance, and interfaces. Base class library (BCL) Commonly used classes for debugging, events, strings, web services, accessing host environment, timers, and components. Core Client UI framework (JavaScript) . Building block objects for the UI infrastructure and for interacting with the DOM and DHTML. Includes base control object; a set of behaviors; validation; data binding; client content templates; drag & drop; and other UI effects. UI toolkit Set of individual, client-side controls that have richer capabilities than standard HTML controls. Examples: hyperlink, listview, select, dataview, button, checkbox, textbox, label, datasource, counter, and more.
  • 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. Atlas Client Library AtlasRuntime.js web services, networking, basic OO extensions Atlas.js 'Atlas' feature set, Included when you add 'Atlas' ScriptManager. AtlasCompat.js & AtlasCompat2.js AtlasFX.js ( Same as Atlas.js less the AtlasRuntime.js) For use with gadgets in hosted scenarios. AtlasUIDragDrop.js AtlasUIGlitz.js . AtlasUIMap.js . Implements a virtual mapping feature. AtlasWebParts.js . GadgetRuntime.js . Runtime code used by Microsoft and MSN.
  • 17. What PHP Developers Loose Server Controls Drag ‘n Drop Design Server Data Binding Auto Class Proxies Auto Generated Ajax Server Proxies The Profile Service Page Methods Etc….. But…………
  • 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. PHP Programming The Atlas Client Libraries PHP on the Server UI & Services in PHP Mixed PHP & ASP.NET UI in PHP Page Services in ASP.NET
  • 20. <script language=&quot;javascript&quot; type=&quot;text/javascript&quot;> var request = null; function createRequest() { try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;); } catch (othermicrosoft) { try { request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); } catch (failed) { request = null; } } } if (request == null) alert(&quot;Error creating request object!&quot;); } 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. Atlas Programming in PHP Create a Script Manager Instance Select your “atlas_include” Include your Atlas Components Wire them to your HTML Artifacts Specify your Service URL & Method
  • 22. Ajax & PHP Applications
  • 23. Community Participation Model Plans are in progress, but forming quickly Two pronged plan Atlas Component Gallery that anyone can contribute to Shared source Toolkit project Selected members of the community have write access Top gallery submissions and help recruit new contributors Eventually hand off the Toolkit project to non-Microsoft stewards ASP.NET Team’s will work hand in hand with community contributors until handoff
  • 24. Atlas Summary “ Atlas” is a key part of the ASP.NET story “ Atlas” Goals Make it super easy to incorporate AJAX patterns, and create rich user experiences, and leverage the browser Create a natural progression from Web applications to Smart clients using a common application model Still in its early stages – preview builds for greater transparency, more opportunities for feedback to have impact
  • 25. Resources “ Atlas” Web site http://atlas.asp.net Bits, Forums, Quickstarts, Docs, Updates Blogs http://www.nikhilk.net http://weblogs.asp.net/scottgu http://weblogs.asp.net/bleroy “ Atlas” Control Toolkit http://atlas.asp.net/default.aspx?tabid=47&subtabid=477
  • 26.