NoASP.NET Web development

After not having written a blog post for the past couple years I recently found myself wanting to write a few posts about some of the new technologies that I have been working with as well as my outdoor backpacking, kayaking, mountain biking trips. After looking at the state of affairs of my old blog I decided that I would spend some traveling time and late night TV time to create my own blog. After having used a CMS namely Orchard for my last blog and seeing how long the site took to startup I decided I wanted to create a lean blog just adding the pieces I needed when I needed them. As I have been using AngularJS quite intensively for the last 6 months I decided to build my blog using AngularJS and build a single page application. On the server side I decided to use .NET and Web.API . I have been an ASP.NET developer for nearly a decade now and have gone from Web Forms and .net 1.1 to MVC 2->5, but rather than use ASP.NET MVC as I wanted the site to be as lean as possible I decided to use OWIN. If you are not familiar with OWIN below is a definition taken from
OWIN defines a standard interface between .NET web servers and web applications. The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and, by being an open standard, stimulate the open source ecosystem of .NET web development tools.


ASP.NET was originally created a decade ago to help VisualBasic and ASP developers move to .Net and has a lot of legacy code that it needs to support which leads to slightly more overhead and a rather slow app startup. This is where I see OWIN fitting in. Microsoft has already created OWIN hosts including one that allows you to self host an Owin app/site and a System.Web Host that makes use of System.Web.dll and allows you to host OWIN Middleware alongside an ASP.NET website. If you have used the new Web.API alongside an MVC application or if you have set up SignalR than you have already used an implementation of OWIN. Along with these two hosting options Microsoft is also creating an IIS host that ties directly into IIS and doesn't make use of System.Web allowing your application to run closer to the metal, which should lead to much faster app startup times as well as higher throughput. The IIS Host is still in beta but in a recent throughput test done by Rick Strahl he found roughtly a 30% increase in throughput.

I really like C# and .Net development and don't think this blog will ever get the traffic where I will need to squeeze every bit of juice out of the server that it is running on but having recently worked on a site that has more traffic than google analytics will give you live data for (which by the way is a limit of 200,000 actions a day) I decided to create this blog only using OWIN components with the goal of hosting it using the IIS Host. I would love to see additional Hosts written by the community for other web servers like NGINX or apache and if I see one of those I'll probably try and set it up and blog about the experience but so far the only actual implementations of the OWIN standard have been written by Microsoft.