もしかしたら私の見識が狭いだけなのかもしれませんが、すべての Web サーバー管理者が、各ユーザーに対し、"ねぇ、キミが最初に飼ったペットの名前を教えてくれるかな? ちなみにうちは団地だったからペットは飼ったことがないんだよね、テヘっ" なんてフレンドリーに訊ける状況というのはなかなかないような気がします。
この二つのオブジェクトの違いを簡単に説明すると、モジュールは、クライアントと Web サーバーの応答の間で処理を行うフィルタのようなものであり、ハンドラは、クリエストを受けてなにがしかの処理を実行するエンジンのようなものです。たとえば ASP.NET や、PHP 等を実行する FastCGI はハンドラです。
セキュリティを強化するため、使用している Web サーバーが Microsoft 社の Internet Information Server 7 であることを世間の目からひた隠しに覆い隠す、という行為は、セキュリティの向上という観点から理解できますが、しかし、これは、あくまでも私一個人の心情の問題にすぎないのですが、日々仕事で IIS にかかわる者としては少々複雑な気分にならざるをえません。
using System; using System.IO; using System.Text; using System.Web; using System.Text.RegularExpressions; using System.Configuration; using System.Web.Caching;
namespace MyIisExtentionModure { public class WordFilter : IHttpModule { public void Dispose() {}
public void Init(HttpApplication context) { //イベントハンドラの登録 context.PreRequestHandlerExecute += new EventHandler(application_PreRequestHandlerExecute); }
今回のサンプル ハンドラーが出力する情報は、ブラウザーに Web ページとして表示されますが、実は IIS からレスポンスされているコンテンツは HTML ではなく XML です。これに XSL を適用し、人間にも分かり易いように成形しています。これは、ブラウザーで HTML ソースを表示することで確認できます。
そのためアプリケーションなどからはこのデータを直接 Rest データとして利用することができます。
ちなみにクエリーストリングを style=xmlと指定すると、スタイルシート (XSL) が外れた状態でデータが返るので、ブラウザで XML を確認することができます。
CREATE DATABASE AdventureWorks2008R2
ON (FILENAME = '<drive>:\<file path>\AdventureWorks2008R2_Data.mdf') -- change the drive and file path
FOR ATTACH_REBUILD_LOG ;
これから SQL Server のレポート機能を試したり、AdventureWorks データベースを使用する、という方が身近にいたらぜひこの内容をお伝えくだい。
店のコンセプトは、「傷ついた街の天使が羽根を休める….、ということはどうでも良くて、前回の記事から、このサンプルに使用している ”いまどきの” Web 技術について紹介しております。
今日は Web フォントについて書きたいと思います。
「ハートブレイク・カフェ」のロゴは、画像ではなく Web フォントの 「Lobster」 というフォントを指定して表示しています。
ちなみにこの「Lobster」というフォントは Windows には標準で含まれていませんが、Web フォントをサポートしている Web ブラウザーでアクセスすると、Windows はもちろん、Mac でも Linux でも「Lobster」 フォントが正しく表示されます。(※ コーヒーカップの絵は画像ですよ。)
Web フォントとは
Web フォントは、クライアントにインストールされていないフォントであっても、Web からフォント提供することで、指定通りの字体の表示を行わせる技術で、CSS3 でサポートされています。(※)
フォントというと、ほとんどの場合機種依存であり、異なるプラットフォームで同じ文字を表示をさせるには、形状が似たフォントを指定するなどの工夫が必要でしたが、 Web フォントを使用すると、こういった面倒はありません。
(※) 実は、Web フォントは CSS3 以前から存在しており、以前より CSS の @font-face から使用することができました。機能自体の実装もけっこう早くて、Internet Explorer では 4 の時代からサポートしていました。Web フォントの指定は CSS2.1 で廃止されていましたが、後方互換のためか多くの Web ブラウザーで引き続き使用することができました。ただし、Web ブラウザー間でサポートされているフォントのフォーマットが異なったり、異なるドメインにあるフォントを使用できなかったりと、あまり実用的とは言えませんでした。
Web フォントのフォーマット
Webフォントのフォーマットとしては、以前から EOT(Embedded OpenType)、SVG(Scalable Vector Graphics)、SVGZ(gzip 圧縮されたSVG)、TrueType、OpenType などがありますが、今後標準として扱われるのは WOFF(Web Open Font Format) と言われています。
WOFF は、Mozilla Corporation や Type Supply、LettError など多くのフォントファンダリが共同で提案したウェブ専用の新しいフォントフォーマットであり、HTML5 対応をうたう最近 Web ブラウザーであればサポートされています。逆に、新しいフォーマットなので、ちよっと前の Web ブラウザーでは使用できません。
WOFF のフォーマットは、TrueType または OpenType フォントをテーブル単位で圧縮して、独自のヘッダーを追加した形式、ということで、TrueTyep Font から WOFF を生成するツールなんかも存在しますが、フォントの配布にはライセンスの問題も絡むと思うので、たとえば、個人でローカルにインストールしてあるお気に入りのフォントから WOFF を生成して Web で使用する際には、元になるフォントのライセンスを充分に確認したほうが良いでしょう。
また、Web には 有償/.無償で公開されている Web フォントがいくつもあるので、それらを利用する方が面倒がなくて良いでしょう。
「ハートブレイク・カフェ」のロゴは、Google web fonts 提供の「Lobster」 というフォントを使用しています。
使い方は非常に簡単で、以下のように <link> タグで Web フォントを指定して、CSS の font-family にフォント名を指定するだけです。
以下のサンプルでは、「Lobster」 以外に 「Wire One」と「Monofett」という Web フォントを使用しています。なお、href に google さんのサーバーを指定していますが、個別にフォントをダウンロード入手して使用することも可能なようです。(ここらへんは各フォントのライセンスを確認してください。)
Visual Studio のテキスト エディタに ashx ファイルがオープンされるので、既定のコードを以下のように書き換え
using System; using System.Collections.Generic; using System.Web; using System.Net; using System.Drawing; using System.Drawing.Imaging; using System.IO;
//クラス名は作成した ashx の名前に合わせてください public class Handler : IHttpHandler {
その際に、当時作成したテキストエディタのソースを引っ張りだして来て、Visual Studio 2012 でのコンバートと、細かいコードの調整を行ったのですが、使ってみるとなかなか使い勝手がよく、ちょうど手軽に Web コンテンツを書くツールも欲しかったこともあり、その記事を投稿後に本格的に自分用に機能を追加してみた次第です。