2003年09月07日
川俣晶の縁側ソフトウェアMagSite1開発日誌 total 2098 count

編集中のコンテンツを特殊な一人前のコンテンツ扱いすることの副産物

Written By: 川俣 晶連絡先

 今日は、思いっきりMagSite1のコードを書くはずでしたが、どうもVisual Studio .NET 2003のASP.NET開発が安定しない感じで、Norton AntiVirusを止めてみたり、要らない開発関係のソフトをアンインストールしてみたり、いろいろ手間を食ってしまいました。そのため、思ったほど作業は進みませんでした。

 今日の作業内容は、編集中のコンテンツにちゃんとIDも割り当て、ファイルにも保存するようにすることでした。全て出来ているわけではありませんが、そこそこ作業は進みました。コンテンツの作成を開始すると、従来はただ単にコンテンツ作成のASP.NETページに進むだけでしたが、これを固有のIDを確保して空のファイルを作成してからコンテンツ作成を開始するようにしました。この構造の副産物として、前から欲しかった書きかけの文書を保存する機能が実現できました。コンテンツを書いている途中で、書き上がっていないけれど続きは明日、というような場合は、保存して終了のボタンを押すと、そこまで書いた内容がファイルに保存されます。

 それはさておき、書きかけの文書のIDは、コンテンツのIDと同じデータ型ですが、特別なDraft IDという分類のものが割り当てられます。実は、MagSite1のIDは日付時刻を示していて、新規コンテンツの判別などに使われる情報でもあるのです。そのため、通常のIDをコンテンツ作成時点で割り当ててしまうと、書きかけの保存機能を使った時に困ったことになります。つまり、コンテンツの日付時刻が、書き始めた時のものになって、たとえば1週間後に書き上げて書き込んだとしても、それはシステムから1週間前のコンテンツだと見なされてしまうのです。これではまずいので、コンテンツ作成開始時点で与えられるIDはあくまで仮のDraft ID。正規に書き込む瞬間に、通常のコンテンツIDが与えられる構造になっています。

 というわけで、ちょっと複雑な構造になっていますが、必要な機能を実現するための最小限の構造でもあるわけで、今のところ順調と言って良いでしょう。