Chris Gomez

Development topics for the indie programmer

CMAP Fall 2012 Code Camp - The Stateful, Realtime Web

Thanks to everyone who attended my talk about the Stateful and Realtime web.  It's a little bit more than "another SignalR" talk, as I am focusing on building a game state server that your web client connects to so players can see updates in real time.

Code and Slides

Presentation Slides (PowerPoint 911KB)

Code (2.0MB)

Notes on the code download: My goal was that you could download this, run the GameStateServer and let it start, then run the MapClient and you would be up and running.  The solutions are VS 2012 solutions with my source control bindings removed.  The NuGet packages are not in here so NuGet Package Restore should pick them up for you on your build attempt.  IISExpress should launch for MapClient.

 

Here are links to many things we discussed in the talk:

Single Page Application Layout

Steve Sanderson's Blog - I liked how this looked and worked and for someone new to hardcore CSS, I understood what it was doing to divide and subdivide "rows" and "columns"

HTML5 canvas "engines" or "toolkits"

EaselJS - part of CreateJS. Designed to implement a "game loop" and ease your using a raw canvas

KineticJS - HTML5 Canvas framework

ImpactJS - Focused on game development using canvas. They support iOS and Win8 JS too.

Realtime Web Frameworks

SignalR - Of interest to the ASP.NET developer because it is about to be officially part of ASP.NET. Open source and supported.

node.js - Javascript runtime with massive community support (via Node Package Manager). Should be able to use socket.io and nowjs packages to do what SignalR does.

Javascript Engines

Noesis Javascript.NET - Exposes the Google V8 engine via .NET. Does require MS VC++ runtime. Fast and thorough. Simple to use.

Jurassic - A .NET implementation of ECMAScript. Not as fast. Also not as simple to use, but isn't wrapping a C++ implementation, either.

Jint - Javascript Interpreter for .NET.  I got this implemented, but it would not run the basic script you see in my "immediate window". I gave up trying to figure out why.  YMMV.

Hosting languages in .NET

Dynamic Languages 101 - Ted Neward discusses hosting several dynamic languages like Lua, Scheme, Prolog.

Hosting C# using Roslyn - Compiler as a service is coming.  Maybe you'd like to just keep writing C# or VB?