VB.net 2010でプログラムを作成しており、そのパラメーター入力にIniFileを使用しました。
その作成の途中で、VB.netではIniFileではなくXMLが推奨されている様な事を読みました。
プログラムが完成したので、XMLもいじってみようと思い、簡単なパラメーターの読み書きは出来る様に成りましたが、その過程で、DOM が簡単だとかX Documentが良いとか色々書かれて居るのをみました。
私が使ったのはXmlSerializer/DeSeralizerですが、XMLを作成する方法で一番簡単なのは何でしょうか。
IniFileと同じ様な機能を実現させようとして居るのですが、色々試行錯誤して好みを見つける時間が無いのでどれか一つで作業を進めて行こうと思っています。
各方式で何か特徴はあるのでしょうか。
目的としては先に書いた様にIniFileの代替です。
特にSectionの削除、Keyの追加等は必須と成ります。
Serializer/DeserializerでSectiionやのKeyの追加、削除はどの様にするのかネットを検索して居る内に色々方法があるらしい事が分ったのですが、全ての方法を試して居る時間がありません。
IniFileの代替として一番使い易い方法は何でしょうか。
お分かりに成る方が居られましたら宜しくご回答下さい。
又、IniFileの代替方法のサイトがありましたらご紹介下さい。
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
仕様が固まっているときに私が良く使うのは、
クラス丸ごとシリアル化
http://dobon.net/vb/dotnet/file/xmlserializer.html
自分のアプリケーションでしか使わないなら、セクション
やキーすらも面倒。使いたい形のままで保存です。
お手軽だけど、バージョンアップしてドンドン設定が
追加されていく場合は、過去のデータを引き継ぐところ
とかもコーディングが必要になってくるかも。
.configファイルはEXEのあるフォルダに置くと思うので、
読み取り専用の設定で使ってます。UAC対策が必須となって
きていますので。
INIファイルの利点の1つは、ユーザに直接編集して
もらえる可能性が高いという点だと思っています。
XMLでは「ごちゃごちゃタグが付いたら分かり難い」
って言われてINIファイルを採用した.NETのシステム
開発も経験しました。結局お金を出してくれる人が決めた
仕様次第ですし、素人の方にはタグが付いただけで敷居が
高くなるんですよね。。。そういう意味ではINIファイル
の方が優秀かもしれません。
まぁ、設定画面もフォームで作ってアプリケーションから
設定させる想定なのかもしれませんが。
ご回答有難うございます。
>INIファイルの利点の1つは、ユーザに直接編集して
もらえる可能性が高いという点だと思っています。
そうなんですよね。ユーザーの人はINIファイルなら編集出来ています。
今更XMLにしますと言ってもタグの中の一部が必要な内容で、現場が混乱するだけ。
何処かのサイトに書いてありましたが、ユーザーに編集させるならエディターも用意して上げなくてはと。
エディターを用意するぐらいならせっかくIniファイルを実装したのだから、VB.netの基本姿勢には背くようですが、Iniファイルを踏襲したほうがエンドユーザーの為に成りますね。
明日の会議ではIniファイル続投で行こうと思います。
No.1
- 回答日時:
ちょいと論旨が違うような
> VB.netではIniFileではなくXMLが推奨されている
.NETでは.iniは使用できません。代わりにプロジェクトとして.configファイルを使用し、その記述にXMLが使用されているだけです。
.iniの役をする(オレオレ方式の)XML定義ファイルを作っても、その場合は読み出し、オブジェクトへの展開などの手順をプログラムとして書かなければいけません。
標準的な定義ファイル記述であれば、標準化された手法で自動的に処理されますので、そちらを順守する方がはるかに効率的で高品質なものになります。
.configファイルにおける、.ini代替えの記述は、
・単純なものはappSettings
・それ以外のものはカスタムセクション
として記述します。
カスタムセクション
http://uchukamen.com/ASPNET20/ConfigSectionHandl …
//==
あと、.NETからのXMLハンドリングですが、Serialize/Deserializeはあくまで、オブジェクトシリアライズの一環としてのXML書き出しであって、XMLハンドリングとはとうてい言えません。
XMLを直接扱うのは、一般的には昔からあるXmlDocument(System.Xml名前空間)。
ここ数年では、XDocument(System.Xml.Linq名前空間)。
他のオブジェクト操作とも親和性がいいので、断固Linqがいいですね。
ご回答ありがとうございます。
VB.netのでの推奨との事でXMLを少しいじってみましたが、XMLはシステム間の移行がし易いとか、項目の追加が簡単とかが書かれていますが、現場の人にとって障害が発生したなどの緊急時のメインテナンスではIniファイルの方が簡単であると感じました。
XML自体はもう少し学習してみますが、今回のシステムではせっかくIniファイルを実装したので、Iniファイルでいこうと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
チョコミントアイス
得意ですか?不得意ですか?できれば理由も教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
Functionの戻り値を配列にしたいのですが
Visual Basic(VBA)
-
フォームを画面のど真ん中に表示させたいのですが
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでフォルダ内のhtmlファイル...
-
エクセルのVBAで開いている...
-
vbs ブック共有を解除
-
excel マクロ PDF化の際のエラ...
-
webブラウザからローカルファイ...
-
ExcelVBA 文字コード変換
-
「AccessViolationException」...
-
vbsでのアスタリスクとファイル...
-
Accessのウインドウサイズの固定
-
Excel VBA Outlookメールにエ...
-
VBAでのファイル名と更新日(作...
-
VB.net XMLの作成方法 Iniの代替
-
動かなくなってしまった古いVBA...
-
「エクセルファイルが開いてい...
-
ExcelVBAマクロでテキストボッ...
-
遅延バインディングの回避方法
-
更新日が指定日以降のファイル取得
-
inetコントロールを使用したFTP...
-
c# で作成したアプリをある拡張...
-
コモンダイアログで拡張子の無...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォルダ含むフォルダ内の...
-
vbs ブック共有を解除
-
動かなくなってしまった古いVBA...
-
vbaサブフォルダーをワイルドカ...
-
「エクセルファイルが開いてい...
-
ffftpでファイル取得が0バイト...
-
Accessのウインドウサイズの固定
-
FileDialog オブジェクトでファ...
-
VB6でUTF-8ファイルの読取りを
-
VBからExcelファイルを開くとき...
-
VBAでフォルダ内のhtmlファイル...
-
excel マクロ PDF化の際のエラ...
-
Wordのプロパティ・総ページ数...
-
フォルダ階層・ファイル名・ペ...
-
コモンダイアログでフォルダを...
-
VB.net XMLの作成方法 Iniの代替
-
vbsでのアスタリスクとファイル...
-
エクセルのVBAで開いている...
-
ファイルを開く時間測定のスク...
-
AccessからOLEオブジェクト型の...
おすすめ情報