The promise of OWIN starts to materialize

OWIN stands for the “Open web interface for .NET”. Basically it is a reasonably simple specification that defines how data goes through the request pipeline, and how to attach to that pipeline. It is a specification for both the server and the application (middleware on OWIN’s terms) part. When I first saw the project I was not that convinced, but since then lots of applications that rely on OWIN and not the old System.Web stack has emerged, and also there are some hosting components that implement the spec. SignalR is a good example of middleware, and Katana a host. For me the new project Helios is also very interesting and I hope the project succeeds, as that would make hosting ASP.NET WebApi very lightweight. And light is never bad. ...

May 9, 2014 · 3 min · Tero Teelahti

Yet another take on Internet Explorer compatibility mode

I have touched this subject already twice: first I I blogged about forcing site rendering to be done with Internet Explorer’s latest engine. Then I faced a situation where separate intranet zone (bad idea, Microsoft!) fallbacks to compatibility mode and does not respect the IE=edge meta tag as internet zone web sites do. Well… the saga isn’t over, as I faced this situation at work today. Again. I was going to put the IE=11 meta tag in place to force normal mode, but then I started to doubt how older IE’s (9, 10) would interpret the “11” tag. Short answer is: they don’t. Luckily you can specify many different modes, and the browser will pick the first one it supports. To apply this use either a meta tag in your page: ...

February 4, 2014 · 1 min · Tero Teelahti

Problems with Internet Explorer compatibility view

A while ago I blogged about forcing site rendering to be done with Internet Explorer’s latest engine. This feature is very well documented by Microsoft. Not that well documented is that adding the X-UA-Compatible header with value “IE=edge” does only half of the job: it overrides document mode, but not browser mode, and therefore you might end with situation like below - even if you carefully tried to avoid it by placing the meta tag (I know, I just did). ...

January 17, 2012 · 2 min · Tero Teelahti

Disable Internet Explorer compatibility view via web.config

New Internet Explorers have a necessary (?) but annoying feature called “Compatibility view”. I do not need that in my sites since I try to keep my HTML in good shape. Therefore on all projects I want to disable the feature since usually it breaks the layout. Disabling compatibility view can be done by adding a meta tag to HTML head: <meta http-equiv="X-UA-Compatible" content="IE=edge" /> …or, as it turns out, by adding a custom HTTP header with the same content. This HTTP-header-way is much better for me as I can include it in my default web.config changes I use on almost every web project. ...

December 1, 2011 · 1 min · Tero Teelahti

IIS 7.x cache optimizations

I find myself searching for this information over and over again for each web site I develop, so I guess I must blog this topic to remember it from now on. IIS 7 has a very powerful caching framework, but some of the defaults are in my opinion not very well thought for modern web applications. For example: by default Javascript files are not compressed with GZIP, and cache location for static content is not public by default. So, if you use T4MVC, SquishtIt, or any other means to link to your static files with a timestamp then you might want to use settings along these lines: ...

March 16, 2011 · 2 min · Tero Teelahti