電子書籍の厳選無料作品が豊富!

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の代替方法のサイトがありましたらご紹介下さい。
宜しくお願い致します。

A 回答 (2件)

仕様が固まっているときに私が良く使うのは、


クラス丸ごとシリアル化
http://dobon.net/vb/dotnet/file/xmlserializer.html
自分のアプリケーションでしか使わないなら、セクション
やキーすらも面倒。使いたい形のままで保存です。
お手軽だけど、バージョンアップしてドンドン設定が
追加されていく場合は、過去のデータを引き継ぐところ
とかもコーディングが必要になってくるかも。

.configファイルはEXEのあるフォルダに置くと思うので、
読み取り専用の設定で使ってます。UAC対策が必須となって
きていますので。

INIファイルの利点の1つは、ユーザに直接編集して
もらえる可能性が高いという点だと思っています。
XMLでは「ごちゃごちゃタグが付いたら分かり難い」
って言われてINIファイルを採用した.NETのシステム
開発も経験しました。結局お金を出してくれる人が決めた
仕様次第ですし、素人の方にはタグが付いただけで敷居が
高くなるんですよね。。。そういう意味ではINIファイル
の方が優秀かもしれません。
まぁ、設定画面もフォームで作ってアプリケーションから
設定させる想定なのかもしれませんが。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

>INIファイルの利点の1つは、ユーザに直接編集して
もらえる可能性が高いという点だと思っています。

そうなんですよね。ユーザーの人はINIファイルなら編集出来ています。
今更XMLにしますと言ってもタグの中の一部が必要な内容で、現場が混乱するだけ。
何処かのサイトに書いてありましたが、ユーザーに編集させるならエディターも用意して上げなくてはと。
エディターを用意するぐらいならせっかくIniファイルを実装したのだから、VB.netの基本姿勢には背くようですが、Iniファイルを踏襲したほうがエンドユーザーの為に成りますね。
明日の会議ではIniファイル続投で行こうと思います。

お礼日時:2014/01/21 20:57

ちょいと論旨が違うような



> 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がいいですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

VB.netのでの推奨との事でXMLを少しいじってみましたが、XMLはシステム間の移行がし易いとか、項目の追加が簡単とかが書かれていますが、現場の人にとって障害が発生したなどの緊急時のメインテナンスではIniファイルの方が簡単であると感じました。
XML自体はもう少し学習してみますが、今回のシステムではせっかくIniファイルを実装したので、Iniファイルでいこうと思います。
ありがとうございました。

お礼日時:2014/01/21 21:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報