
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Visual StudioでDjangoのプロジェクト配下のappを作成する方法 1 2022/05/01 03:47
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Excel(エクセル) エクセルでキーリストからデータを取り出して1枚1枚印刷するには? 11 2022/06/27 09:52
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- YouTube ユーチューブへの動画投稿にサムネイルを付ける方法は? 1 2022/07/21 23:45
- OCNモバイルONE 格安SIMの契約について質問失礼しますm(_ _)m 2 2022/05/28 15:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの初心者でやりたいことがあ...
-
動かなくなってしまった古いVBA...
-
VBAでフォルダ内のhtmlファイル...
-
「エクセルファイルが開いてい...
-
VBAでCSVファイルを読み込もう...
-
【ACCESS VBA】アクセスからデ...
-
ファイルを複数選択した時のフ...
-
更新日が指定日以降のファイル取得
-
Accessのウインドウサイズの固定
-
フォルダ階層・ファイル名・ペ...
-
c# で作成したアプリをある拡張...
-
vbaサブフォルダーをワイルドカ...
-
Wordのプロパティ・総ページ数...
-
VB.net XMLの作成方法 Iniの代替
-
VB.Netソリューションでフォー...
-
エクセルのプロパティーでセキ...
-
カンマ区切りのCSVファイルから...
-
エクセルで複数のコメントのサ...
-
エクセルvbaでdocuworksprinter...
-
Wordで差込印刷した後に別々の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動かなくなってしまった古いVBA...
-
「エクセルファイルが開いてい...
-
FileDialog オブジェクトでファ...
-
vbaサブフォルダーをワイルドカ...
-
VBAでフォルダ内のhtmlファイル...
-
エクセルのVBAで開いている...
-
VB6でUTF-8ファイルの読取りを
-
excel マクロ PDF化の際のエラ...
-
Accessのウインドウサイズの固定
-
タイムスタンプの更新の方法2
-
vbs ブック共有を解除
-
ffftpでファイル取得が0バイト...
-
EXCEL VBAを使ったファイル解析...
-
サブフォルダ含むフォルダ内の...
-
ExcelVBA 文字コード変換
-
VBAでのファイル名と更新日(作...
-
AccessからOLEオブジェクト型の...
-
「AccessViolationException」...
-
フォルダ階層・ファイル名・ペ...
-
Filesearchオブジェクトを使用...
おすすめ情報