今年の 1 月にリリースされた BlogEngine.NET バージョン 2.0 を導入しました。

と言っても、既存のバージョン 1.6.1 のブログ をアップグレードしたわけではなく、そこはそのまま残しておいて、BlogEngine2 という名前の別アプリケーションとして構築しました。
まだ試験段階ですので、試験のための記事しかありませんし、スタイルもデフォルトのままです。
今回は、データストアとして、今まで使っていなかった MySQL を使うことにしました(現在のホスティングサービスでは SQL Server と MySQL がそれぞれ 300MB ずつ使えます)。ちなみに、既存のブログ は SQL Server を使用しています。
Forms 認証にはサイト内で共通の SQL Server を利用した SqlMembershipProvider, SqlRoleProvider を使って、サイト内でアプリケーション間を移動するとき再認証を受けなくても済むようにしました。
とりあえず見つけた問題はすべて解決できましたので、どのような問題があったのか、どう解決したのかを備忘録として書いておきます。
データベース構築の問題
BlogEngine.NET/setup/MySQL フォルダの中にデータベースを構築するためのスクリプトファイルが用意されており、これを走らせて必要なテーブルを生成します。このスクリプトは各テーブルを DEFAULT CHARSET=latin1 で作るように指定しています。(latin1 が MySQL のデフォルトらしい)。
一方、MySQL 全体とデータベースのキャラクターセットはすべて UTF-8 で設定しており、その状態で日本語を使うと、Incorrect string value というエラーが出て投稿できませんでした。
結局 latin1 で作ったデータベースはドロップして、スクリプトの DEFAULT CHARSET=latin1 を utf8 に書き換えてテーブルを作り直して解決しました。
バージョン 1.6.1 の諸問題
以下の致命的な問題(詳細はリンク先の記事を参照ください)はすべて解消されていました。(1) については Encoding.Default が Encoding.UTF8 に変更されていました。(2), (3) は大幅にコードが書き換えられており、1.6.1 で問題だったコードは見つからず、実際に試して不具合は出ませんでした。
(1) 日本語の文字化け
(2) SyntaxHighlighter のコードの間違い
(3) reCaptcha のコードの間違い
以下は見栄えなどの軽微な問題です。1.6.1 の場合と同様な修正が必要でした。問題の詳細および修正方法はリンク先の記事を参照ください。
(4) 各記事の左上の日付の表示が 31. 5月 2010 12:15 のようになる
(5) Search の結果、タイトルの表示が「の検索結果 'XXXX'」となる
(6) 「関連するブログ」でテキストの折り返しがされない
(7) ウィジェットのカレンダーが月曜日から始まっている
(8) タイトルが 5月 31. 2011 のように表示される
以下の問題は 1.6.1 の場合(詳細はリンク先の記事を参照ください)より悪化していました。詳細は CodePlex の Discussions のページにアップしました。まだ検証中ですので、サーバーには修正済みファイルはアップしていません。検証が終わって修正版をサーバーにアップしたら、詳しい話を書きます。
(9) Tag cloud 中の日本語の Tag の問題
最後に、以下の問題は、SyntaxHighlighter のバージョンが変わったためか、解消されていました。
(10) SyntaxHighlighter とフラグメント識別子
------------ 2011/6/14 追記 ------------
上の (9) で書いた日本語の Tag の問題の解決策は BlogEngine.NET 2.0 の Tag cloud の問題 に詳細を書きました。興味がありましたらそちらを参照ください。