私は初めて XML を唯一のデータ ソースとして使用したい小さなプロジェクトに取り組んでいます...ファイル ベースのストアがプロジェクトのニーズに合っています。
DAL を作成するとき、すべての get メソッドを静的にする必要がありますか? 「ファイルを開いている間に読む」エラーを回避するには?ファイルで CacheDependency を使用する必要がありますか?
どうも
私は初めて XML を唯一のデータ ソースとして使用したい小さなプロジェクトに取り組んでいます...ファイル ベースのストアがプロジェクトのニーズに合っています。
DAL を作成するとき、すべての get メソッドを静的にする必要がありますか? 「ファイルを開いている間に読む」エラーを回避するには?ファイルで CacheDependency を使用する必要がありますか?
どうも
私はあなたができるほど明確ではなかったと思います。これらのファイルはどのくらいの大きさになりますか? データ層が XmlDocument を常にメモリに保持し、更新のたびにハードディスクにダンプすることは理にかなっていますか?
アップデートが行われる場合、どのくらいの頻度で行われますか? 並行性をどのように処理しますか? 更新は複数の xml ファイル間でトランザクションになりますか? 一貫性とトランザクションの整合性をどのように処理しますか? 更新がなければ、あなたの人生はずっとシンプルになります。
メソッドは静的である必要はありません。考慮すべき主な点は、将来、DAL プロバイダーを XML から DB に変更する可能性があることです。この目的のために、DAL インターフェイスの具体的な実装は、抽象データ プロバイダーと通信する必要があります。あなたにとっては、最初は Xml プロバイダーになりますが、同じインターフェイスを実装する Sql プロバイダーを作成し、依存関係の挿入、構成ファイル、または what-have-you を使用して実装を簡単に切り替えることができるはずです。
DAL 実装のインスタンスがあれば、それらのオブジェクトを使用してデータ層と対話できます。
これがあなたにとって良いスタートになることを願っています。
わかった。
ファイルは巨大ではない可能性が高く、最大で 1 ~ 2 MB に達すると思われます。
DAL インターフェイスは DB と交換可能である必要があるので、インターフェイスについて慎重に検討する必要があります。
並行性、まあ、私はそれについて心配しており、それをどのように処理すべきか完全にはわかりません. 静的な読み取りおよび書き込みメソッドが役立つと考えていました。
XML はそれほど頻繁ではなく、おそらく 1 日 1 回更新されますが、いつでも頻繁に更新される可能性があります。
ファイルが変更されたときにのみソースから取得するために CacheDependancy を使用しています。
キャッシュを同時に読み取るときに問題が発生しますか? では、同時実行の問題にどのように対処すればよいでしょうか。