1 / 17

The New Web Stateful, Realtime, Programmable

The New Web Stateful, Realtime, Programmable. Chris Gomez chris@chrisgomez.com www.chrisgomez.com Twitter: @SpaceShot. Definitions. “AJAX” – xmlhttprequest, calling back to server without page refresh “HTML5” - “Modern Browsers” – Latest Firefox or Chrome, IE 9 or 10 (lean towards 10).

Download Presentation

The New Web Stateful, Realtime, Programmable

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The New WebStateful, Realtime, Programmable Chris Gomezchris@chrisgomez.comwww.chrisgomez.com Twitter: @SpaceShot

  2. Definitions • “AJAX” – xmlhttprequest, calling back to server without page refresh • “HTML5” - • “Modern Browsers” – Latest Firefox or Chrome, IE 9 or 10 (lean towards 10).

  3. Developing for the Web Ruby On Rails CGI/ISAPI ODBC Web Server NoSQL MongoDB NodeJS Database HTTP Requests RavenDB ASP.NET MVC Linq to SQL Cookies EF Code First Cassandra ASP.NET Web API AJAX CouchDB ASP.NET (WebForms) XML JSONP SQL Server Access Static HTML Jade SQL Server Express Classic ASP SQL Server Compact Sinatra

  4. The Stateless Web(or “Who are you? What’s going on here?”) Hey, it’s John Baird Ugh, you forgot? Hold a sec… Web Server Who? Database Try a cookie? Let’s see… Requests Jim Bear… John Barker… John… Baird!Here’s SessionState! Finally… Great, thanks!Here’s howthe web pagelooks now!

  5. When does this approach break down? • Loading of complex and fast changing state • Realtime updates to the browser • Working around the “page cycle”

  6. What’s a “Stateful” Web Server? This is Chris, I movedtoken #1 to 100,100 Web Server Requests John moved token #2 to 400,100

  7. Board game scenario • All players can join at any time and view the game state as it currently is • All players can join a chat and talk in real time • All players can move game tokens around at any time • Other players see the tokens in motion • The environment is extensible via a common scripting language.

  8. File > New Project • ASP.NET MVC 4 Web Application • Empty Project (nothing done for you) • No Unit Tests / Razor • Just using MVC as a means to quickly deliver a web page

  9. Steve Sanderson’s “App” Layouts • http://blog.stevensanderson.com/2011/10/05/full-height-app-layouts-a-css-trick-to-make-it-easier/ • Don’t think this is the only way or the only place or the only guy looking at this

  10. HTML5 Canvas • “Immediate Mode” rendering • <canvas> tag • Only accessible via JavaScript Use a library or toolkit!

  11. EaselJS • Part of CreateJS Suite (www.createjs.com)

  12. EaselJS API Stage – Manages a canvas for you Ticker – Represents the “Game loop” or “render loop” Bitmap – Represents a bitmap on a canvas SpriteSheet – Assists in keyframe (flipbook) style animation Touch – assists with Touch support in Chrome.Firefox, IE10

  13. SignalR • Started as open source project (within Microsoft ASP.NET team) • In PreRelease as a full member of ASP.NET. • Moving into Microsoft.AspNet.SignalR • Supporting web clients and ASP.NET servers • Also supports .NET Clients and WinRT clients. • You can “self-host” Version 1.0!!

  14. Building Real-time Web Apps at buildhttp://channel9.msdn.com/Events/Build/2012/3-034/player

  15. Game Board Archectiture Web Server --MVC on IIS— I deliver HTML/JS to bootstrap Requests Console AppSignalR “GameHub” I maintain & update game state as it happens

  16. JavaScript Engines • NOT the same as letting user script run in the browser • This is running on the server • Use a Javascript implementation to drive adoption of your API or platform • There are Javascript developers already out there! • No one writes CustomSuperDuperScriptXPlus!

  17. Hosting Javascript Console App JavaScript Engine Context Exposes a CLR object like “map” Exposes public methods: GetTokenList()

More Related