Web のリクエストを処理する

古くは、Perl や C 言語によって CGI プログラムとして Web からのリクエストを処理してきたし、JavaServletDelphi の WebBroker、CGI.pm などといったライブラリは、その上で各種プログラム言語から Web リクエストに含まれる情報を扱いやすくし、Web のレスポンスを生成するのを助ける仕組みであった。
これに対して、JSPASP, PHP といった仕組みはレスポンスデザインの中にコードを埋め込むことを可能にし、コードビハインドなどによってデザイン面とコード面を分離しつつある。
でも、古い人はリクエストとレスポンスを直接操作できれば十分だったり、HTML テンプレートを活用するには ASP.NET は少々大げさだったりするわけで、そういった場合に古い CGI プログラムとしての設計を行おうと考えたりする。
当然ながら、IISApache などの多くの Web Service アプリケーションは、クラシックなコンソールアプリケーションに対して、環境変数や標準入出力、そして WinCGI と呼ばれるファイル経由の入出力をサポートするものが多いので、標準入出力を使ったコンソールアプリケーションを作れば、クラシックな CGI として完成する。
しかし、.NET のアプリケーションドメインによるアプリケーション分離や、ネイティブスレッドの共有機能、サイドバイサイドやシャドウコピーといった様々な恩恵を受けるためには、自分で大量のコードを書くか、そのように設計された再利用可能なライブラリを探し出す必要があったりする。