#TIL: PrDC Edition Day 2

It’s Day 2 of the Prairie Dev Con conference! I’m giving two talks today (updated summaries below), but I’ll also be blogging the few sessions I’ll be at between freaking out / preparing for my own.

An Overview of OWIN and Microsoft’s Katana Project

Howard Dierking walks us through the origins of OWIN and Katana. Evolving from ASP.NET MVC, WebAPI added the ability for those endpoints to be self-hosted, which opened up a whole new set of requirements when it came to hosting ASP.NET applications. Project Katana consists of a set of components for building and running web applications on the OWIN specification. This allows developers to make a composable, portable, and performant web application – it consists of only the parts you need, you can run it on any OWIN-compatible service, and because of this you get more control over the performance and scalability of your application.

Ready, Set, GO! An Introduction to the Go Programming Language

This session is meant as a primer to the Go programming language, which was created by Google and has been in production for over two years. My goal with this session is to focus on some of the features of the language and give everyone an idea why you’d want to use Go for your next project, as opposed to just stepping through a tutorial – you can do that on your own. When you leave my session you’ll have a decent understanding of what Go is about and what you can use it for. Slides up on the website

Building OWIN Components

Expaning on the earlier talk, Howard Dierking reviews how to roll your own OWIN components. We created a few components to return data based on url fragments and request headers, and rolled our own middleware components that allow you to intercept and return responses on whatever criteria you’d like. Using this we implemented a request logger by simply attaching to the OWIN pipeline and their “russian doll” execution model. Also worked with the OWIN.Testing library to write a unit test against an OWIN application and pipeline, being able to simulate a request and test the appropriate response. Even dived into subbing out Katana dependencies using Ninject and DI!

Caching Up is Hard to Do: Improving Your Web Services

In this talk I start with a published web service that takes roughly 4.3 seconds to complete and together we bring it down to 100 milliseconds, using techniques like caching, compression, and conditional requests. While I do use a MVC4 / WebAPI1 endpoint in the talk, the techniques we talk about can be applied to any web service in any language.