Chris Gomez

Development topics for the indie programmer

OWIN–What? Where? Why? – Philly.NET

“15 Minutes of Fame” nights at user groups are fun.  It’s challenging to provide value to your fellow developers in 15 minutes.  Thanks to everyone who saw my little piece of a series of great talks.

Lately, I’ve been working with SignalR and WebAPI, but self-hosted in my own application (not deployed to IIS).  The application is a thick client that other clients communicate with using standard web protocols (thanks to the self-hosting!).  This makes it awfully easy to deploy your app and NOT have to worry about whether your customers’ firewalls will allow the traffic or if they set up your server correctly.  The client IS the server!

What’s OWIN good for?  In short, you can use it to make your application portable between servers (at this time, this is likely saying “portable between IIS and self-hosted in your own app”). 

You can also use it to only take the frameworks or pipelines you want.  If you are using ASP.NET Web API, do you REALLY need the whole IIS pipeline and ASP.NET page cycle?  You might not.  Do you hate that to get simple membership you have to take all of System.Web?  As more frameworks and middleware support the OWIN specification, you’ll pick just what you want.  As Scott Hanselman would say: “The Lego pieces are the right size.”

Resources for you to learn more about OWIN:

This is still in prerelease, but you can learn a lot about the idea of separating frameworks from hosts and servers so that your applications are more portable and flexible.  Why be limited to IIS or even Windows for that matter?

The Katana Project - OWIN for ASP.NET – Video

An Overview of Project Katana – An overview of the need for OWIN and walks you through some simple examples.

How I am using OWIN – Damian Hickey shows you how his web applications are testable because OWIN eliminated the dependency on a network/http stack just to test.

OWIN, Katana, and getting started – Another short explanation, with some great visuals.  Also a simple getting started sample.

The Realtime Web – Central Penn .NET User Group

Thanks to everyone who attended my presentation on the Realtime, Stateful, Programmable Web.  In it, I discussed technologies like SignalR, OWIN, and Javascript Engines.  They enable you to create applications that have server push technologies to enable real time like scenarios, self-hosted applications that act as mini web-servers, and embedding a JavaScript engine to provide a real programming API for your users.

We talked about a lot of things in this session, so a link dump seemed in order to many of the resources you’ll want to visit:

SignalR Samples

Tutorial - Getting Started with SignalR – The chat application

Tutorial - Server broadcast with SignalR – The stock ticker sample

More...

The Web Is Ready For Games: ASP.NET Edition

Part 1 – Introduction

I have longed for the web to be ready for high performance games, including multiplayer games.  I believe we are at the point where the technologies you need to build high performance, real time games are here.  The exciting thing is we have a lot of choices now.

I believe we can use Microsoft tools and technologies to deliver the games I am speaking of.  I am going to show you how ASP.NET and many of its pieces such as SignalR can be a foundation, but what will be more exciting is when we explore the options afforded us by OWIN and scaling technologies like the Windows Azure Service Bus.

Getting started is going to involve learning how to develop with ASP.NET SignalR.  You  may be hearing a lot about SignalR lately.  It certainly can be labeled the new hotness.  People are excited about the prospect of real-time applications on the web and breaking the stateless request/response paradigm.

How is that even possible, you may ask?  Well, the fact of the matter is there is no magic going on here… no cheating… it’s still the web.  It’s just that some very clever techniques developed over the years, plus newer features like WebSockets are coming together to enable this.

More...