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

添付ファイル管理機能の実装、進行中

Written By: 川俣 晶連絡先

 前回書いた添付ファイルの修正問題については、編集中のコンテンツには別のIDを付与するという方法で対処しています。

 つまり、コンテンツのIDは、作成途中のもの、正規に公開されているもの、正規に公開されているものの編集中のもの、の3種類に分けられるわけです。公開コンテンツの編集開始をクリックした場合、公開コンテンツはそのままにして、それの複製が別のIDを与えられて作られ、これが編集中のコンテンツとなります。これにより、編集中のコンテンツをいかにいじろうと、それは公開される内容に反映されません。いろいろな試行錯誤ができます。そして、書き込みボタンを押した時点で、編集中コンテンツの内容が、公開コンテンツと置き換わります。

 こういう説明を書いていると、なかなか凝ったプログラムになってしまったものだと、つくづく思います。ですが、これは必要な複雑さですね。ただ単に画像ファイルが付けられるようにするだけで良ければ、もっと安易で簡単なプログラム追加で済むところですが、実際に運用する場合の快適さを考えると、どうしても必要な機能です。自分と、そして将来のMagSite1の利用者が気持ちよく使うための必須機能と思えば、安易な方法で手抜きすることはできませんね。

 それはともかく、今日は1つのバグを出して、ASP.NETの動作について1つ勉強しました。

 コードの位置をより適切な場所へと移動させている時に、たまたまUnloadイベントのハンドラに移動させてしまいましたが、そこで意図しない動作に陥りました。設定したプロパティが反映されなくなってしまったのです。

 その理由は、Unloadイベントでコントロールのプロパティに値を設定しても無効である!ということでした。

 こういう問題を肌で体験すると、ASP.NETのアーキテクチャが身に染みて良く分かりますね。Unloadイベントは、おそらく、すべて送信した後に起こるイベントです。だから、何かを設定しても、もはや後の祭りなのでしょう。そこから空想を働かせると、ページ処理の流れが、送信される実体込みでイメージできますね。こうやって、システムの動作を身体に叩き込んで行くのも悪くない感じです。