by WebSurfer
4. May 2010 14:21
日付と時間の表示が、デフォルトでは米国式で左のようになりますが、気に入らないので変更しました。
ブラウザの言語の選択を en-US にすれば「3. May 2010 11:37」というようになってそれなりなんですが、日本語での表示はちょっと冴えないですよね。
参考にしたのは、BlogEngine.NET の Documenattion の Theme Creation です。
そこに、PostView.ascx, CommentView.ascx の中で日付の書式が Post.DateCreated.ToString("d. MMMM yyyy HH:mm") と設定されているという記述を見つけ、
それを "yyyy/MM/dd HH:mm" に変更した結果が今の表示です。
まぁ、他人から見ればどっちもどっちかもしれませんけど、自分的には少しマシになったと思っています。
ちなみに、"yyyy年MM月dd日 HH:mm" としなかったのは、国際化対応にこだわったからです。(笑)
-------- 2010/5/21 追記-----------
結局 "2010年5月1日 12:00" 形式にしました。"2010/05/01 12:00" 形式では、日本語表示としてはどうしてもイマイチに思えたものですから。(笑)
詳しくは 日付表示の変更(2) に書きましたので、ご覧ください。
by WebSurfer
4. May 2010 13:48
ストアに SQL Server を利用する設定では、日本語の文字化けの問題が出ない理由が分かりました。
「高度な設定」の「WebResource.axdを圧縮」にチェックマークが入っていないためでした(チェックマークを入れると文字化けします)。
自分でチェックマークを外したわけではなく、自動的にそうなるので気がつきませんでした。
ストアに SQL Server を利用する場合、web.config の BlogEngine 要素下の blogProvider 要素の属性を defaultProvider="DbBlogProvider"
としますが、その場合、デフォルトでは「WebResource.axdを圧縮」にチェックマークは入りません。
ちなみに、ストアを xml ファイルにするには defaultProvider="XmlBlogProvider" としますが、その場合は自動的にチェックマークが入りました。
by WebSurfer
3. May 2010 16:53
2010/5/1 にホームページの中にブログを開設しました。
中身は自分で作ったわけではなく、 BlogEngine.NET というサイトから、2010/4/30 時点での最新版 1.6.1 を入手して、既存の自分のホームページに追加しただけです。 (「追加しただけ」といっても、それなりの設定は必要ですが)
BlogEngine.NET を選んだ理由は、ASP.NET ベースの Web アプリケーションだからです。既存の自分のホームページも ASP.NET ベースなので統合するのが簡単そうだったし、ASP.NET に関する知識があればカスタマイズすることも可能と思ったからです。
特に、BlogEngine.NET は ASP.NET Forms 認証機能を持っていて、それを自分のホームページの既存の Forms 認証システムにシームレスに統合できそうな点にひかれました。
備忘録として、どのように既存のホームページに BlogEngine.NET を追加したかの概略を書いておきます。
- このホームページは ActiveWeb というホスティングサービス会社の Win2008 というサービスを利用しています。まずそこに、ホスティングサービス会社が提供しているツールを利用して、仮想ディレクトリを作成します。
- BlogEngine.NET のダウンロードサイトから Web 版(2010/5/3 時点での最新版 BlogEngine.NET 1.6.1 (web).zip)をダウンロードして解凍し、上記の仮想ディレクトリに丸ごとアップロードします。
- ストアには、デフォルトの xml ファイルではなく SQL Server を使うので、既存のデータベースファイルに BlogEngine に必要なテーブルを追加します。これは、ホスティングサービス会社が提供しているツール myLittleAdmin を利用し、ダウンロードしてきた Web 版の setup\SQLServer フォルダに含まれているクエリを走らせて行います。
- ストアに SQL Server を使えるように web.config を変更します。その方法は、Codeplex のサイトの Database Blog Provider が参考になると思います。ただし、接続文字列の内容や connectionStringName を全くそのとおりにしたのでは当然ダメで、自分のホームページの既存の設定にあわせて修正する必要はあります。
- ログインの際のユーザー認証と承認に、ASP.NET Forms 認証の既定のプロバイダ SqlMembershipProvider, SqlRoleProvider を使用するように web.config の設定を変更します。 その方法は、CodePlex のサイトの MSSQLMembershipProvider / MSSQLRoleProvider が参考になると思います。これも、接続文字列などを自分のホームページの既存の設定にあわせて修正する必要があります。
- 最後に、ユーザーがホームページ本体とブログのページを行き来する際に再認証を受ける必要をなくするための設定を行います。そのためには、ホームページ本体とブログ両方の web.config で name, protection, path, validationKey, validation, decryptionKey および decryption を同じにします。これは、MSDN ライブラリのアプリケーション間のフォーム認証が参考になりました。
ここまでやって、とりあえず表示することができるようになりました。
IIS のアプリケーションプールのマネージパイプラインモードは、今のところ「統合」のままです。「クラシック」にしないと "some of the software will fail in strange ways" と書いてありましたが、まだそういう問題に遭遇していません。 BlogEngine はホームページ本体とは別アプリケーションなので、それのみ「クラシック」にする方法はないか、ホスティングサービス会社に聞いてみる予定です。
うわさに聞く日本語の文字化けの問題は、ストアをデフ���ルトの xml ファイルにした場合は起こるようですが、SQL Server を利用する設定では、今のところ問題ないです。このまましばらく様子を見たいと思います。