Если вы продвинетесь в этом, я бы предложил реализовать HttpModule вместо global.asax. HttpModule позволяет вам отключить сжатие с изменением конфигурации по сравнению с перестройкой и позволяет вам манипулировать сборкой сжатия отдельно от веб-приложения.
Rich Crane имеет довольно хороший модуль 2.0 здесь: http://www.codeplex.com/httpcompression/, если вы хотите быстро начать работу.
Проект blowery , о котором упоминал Стивен Роджерс, также является HttpModule.
В противном случае, написание собственного довольно просто. Модуль HttpModule предоставляет вам те же события, что и global.asax - BeginRequest, EndRequest и более мелкозернистые события, такие как PostReleaseRequestState и PreSendRequestHeaders, которые могут понадобиться для устранения всех складок.
Что касается сжатия IIS по сравнению с HttpModule, IIS определенно проще, так как вам не нужно возиться с еще одной сборкой. Я использовал оба метода с бизнес-приложениями, и оба работают примерно одинаково при нагрузочном тестировании. Если IIS доступен, я бы сказал, использовать его.
Сжатие от 60 до 80% для файлов HTML, JS, CSS и XML является обычным для gzip. Имейте в виду, что большая часть полезной нагрузки может представлять собой изображения и мультимедийные объекты, которые гораздо сложнее сжать.