আইএনআই ফাইল না রেজিস্ট্রি বা ব্যক্তিগত ফাইল?


19

আমি আমার প্রকল্পের কনফিগারেশনটি সংরক্ষণ করতে চাই যার মধ্যে রয়েছে

  1. পর্দার আকার
  2. স্ক্রীন অবস্থান
  3. ফোল্ডার পাথ
  4. ব্যবহারকারীর সেটিংস এবং অন্যান্য।

আপনি যে মানক স্থানগুলি সংরক্ষণ করতে পারেন সেগুলি হ'ল কনফিগারেশন মানগুলি:

  1. রেজিস্ট্রি
  2. আইএনআই ফাইল
  3. ব্যক্তিগত ফাইল (যেমন * .cfg)

আপনি এই জায়গাগুলির মধ্যে কীভাবে নির্বাচন করবেন? এছাড়াও, সেগুলির কোনও ব্যবহারের কোনও উপকারিতা এবং বিধানগুলি রয়েছে?


2
আপনি কি সরঞ্জাম ব্যবহার করছেন? কিছু প্রযুক্তি কনফিগারেশন পরিচালনার সরঞ্জামগুলিতে বেশ সুন্দর বিল্ড নিয়ে আসে।

@ পিয়েরে 303 বর্তমানে ভিসি ++ এর জন্য ভিএস 2008 ব্যবহার করছেন
শিরিশ 11

ব্যবহারকারীদের কি পরিবর্তন করা দরকার?
JeffO

1
আপনি কি ওয়ামএএমএলকে বিবেচনা করেছেন, আপনি উভয়ই, আইএনএল এবং এক্সএমএল এন.ইউইকিপিডিয়া.org
জেএফ ডায়ন

উত্তর:


20

এছাড়াও সেগুলির কোনও ব্যবহারের কোনও উপকারিতা এবং কনস রয়েছে?

রেজিস্ট্রি:

  • + উইন্ডোজ পরিবেশে তুলনামূলকভাবে স্ট্যান্ডার্ড।
  • + সাধারণত ইনস্টলার ইত্যাদির কাছ থেকে ভাল সমর্থন etc.
  • - আপনি যদি কখনও নিজের অ্যাপ্লিকেশনটি পোর্ট করতে চান তবে প্ল্যাটফর্ম নির্দিষ্ট API।
  • - বিশেষত মানব পাঠযোগ্য নয়।

আইএনআই ফাইল:

  • + সাধারণ বিন্যাস।
  • + সুবহ.
  • + মানব পাঠযোগ্য.
  • - আরও জটিল তথ্য সংরক্ষণ করা কঠিন হতে পারে (উদাহরণস্বরূপ, দু'টি স্তরের চেয়েও গভীর কিছু নেস্টেড)।
  • ?আপনার নিজের পার্সার লিখতে হবে (যদিও তা কঠিন না) অথবা সিম্পলইনির মতো একটি বাহ্যিক গ্রন্থাগার ব্যবহার করতে পারেন (মন্তব্যের জন্য জোনাথন মেরলেটকে ধন্যবাদ)।

এক্সএমএল ফাইল (আমি অনুমান করছি এটি .cfg বিকল্প):

  • + একটি স্ট্যান্ডার্ড ফর্ম্যাট।
  • + সুবহ.
  • + গভীরভাবে নেস্টেড কাঠামো সমর্থন করে।
  • - বিশেষত মানব পাঠযোগ্য নয়।

ব্যক্তিগতভাবে, উইন্ডোজ অ্যাপ্লিকেশনগুলির জন্য আমি সি # ব্যবহার করার প্রবণতা রাখি এবং এক্সএমএল হিসাবে সঞ্চিত ব্যবহারকারীর জন্য একটি ব্যক্তিগত ফাইল নিয়ে যাই। আমি সাধারণত এটি করি কারণ আমি যে ধরণের অ্যাপ্লিকেশন লিখি সেগুলির মধ্যে মানব পাঠযোগ্যতা সাধারণত অগ্রাধিকার পায় না (এবং অ্যাপ্লিকেশনটির কোনও ক্ষেত্রে কোনও কনফিগারেশন সম্পাদক থাকা উচিত) এবং নেট পরিবেশে এক্সএমএল এর সাথে কাজ করা খুব সহজ with আমি প্রায়শই একটি ইউজার কনফিগারেশন অবজেক্টের সাথে শেষ করি যা কোনও কনফিগারেশন ফাইলের মধ্যে এবং কেবল সিরিয়ালাইজড হয়ে যায় - প্রায় কোনও বিকাশ জড়িত না (পার্সিং, চারপাশে কাস্টিং স্টাফ), এবং আপনার দৃ configuration়ভাবে টাইপ করা পরিবেশে ব্যবহারের জন্য আপনার কনফিগারেশন প্রস্তুত রয়েছে।


আমি কিছুক্ষণ আগে আইএনআই ফাইলগুলি পার্স করার জন্য সিম্পলনি ব্যবহার করেছি এবং এটি দুর্দান্তভাবে কাজ করছে।
জোনাথন মেরলেট

@ জোনাথনমেরলেট ধন্যবাদ, আমি পোস্টে সিম্পলইনি যুক্ত করেছি।
ড্যানিয়েল বি

15

আমি আইএনআই ফাইলগুলির সাথে যাব, সেগুলি হ'ল আরও বেশি মানুষের বন্ধুত্বপূর্ণ বিকল্প:

[window]
width       = 600
height      = 350
position.x  = 400
position.y  = 200

[paths]
path1       = "/some/random/path/"
path2       = "/some/other/random/path/"

[user]
name        = "Yannis"
preference  = "INI"

এক্সএমএল একটি ভাল বিকল্প হতে পারে তবে এটি আইএনআইয়ের সরলতা এবং কমনীয়তাটিকে পরাভূত করতে পারে না:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <window>
        <width>600</width>
        <height>350</height>
        <position>
            <x>400</x>
            <y>200</y>
        </position>
    </window>
    <paths>
        <path1>/some/random/path/</path1>
        <path2>/some/other/random/path/</path1>
    </paths>
    <user>
        <name>Robert</name>
        <preference>XML</preference>
    </user>
</configuration>

আইএনআইগুলিও খুব ভাল বোঝা যায় এবং প্ল্যাটফর্ম স্বতন্ত্র। এক্সএমএল ফাইলগুলির জন্য তাদের পক্ষে সম্ভবত এতগুলি সরঞ্জাম উপলব্ধ নেই, কারণ, ভাল, আইএনআই ফাইলটি পড়তে এবং সম্পাদনার জন্য কার বিশেষায়িত সরঞ্জামের প্রয়োজন?


2
মজার, তবে আমি এক্সএমএলটি দেখতে সুন্দর এবং পড়া সহজ find যাঁরা ভার্বোসটি পছন্দ করেন না তাদের জন্য জেএসএন উপযুক্ত বিকল্প।
রবার্ট হার্ভে

3
@ রবার্তাহারভে জেএসন আমার পছন্দ হয়েছে (এবং আরও গভীর বাসা বাঁধার দরকার হলে আমি ব্যবহার করতাম), তবে এক্সএমএল আসলে আমার চায়ের কাপ নয় ...
ইয়ানিস

2
এক্সএমএলকে গুণকে মানগুলিতে ঘুরিয়ে দিয়ে আরও সুন্দর করা যায়। উদাহরণস্বরূপ,<window width="600" height="350" />
রবার্ট হার্ভে

আমি আসলেই অবাক হয়েছি এখনও কেউ ওয়াইএএমএল উল্লেখ করেনি। আমি মনে করি এটি JSON এর চেয়ে বেশি মানব বান্ধব, তবে ক্ষমতা এবং বাক্য গঠনের ক্ষেত্রে এটি বেশ অনুরূপ। Yaml.org ওয়েবসাইট সম্ভবত এর সাথে পরিচিত না এমন কাউকে ভয় দেখাবে।
ড্যানিয়েল বি

@ ড্যানিয়েলবি কেউ ওয়াইএএমএল উল্লেখ করেছেন ;)
ইয়ানিস

6

আমার পছন্দটি এক্সএমএল ফাইল। এগুলি শ্রেণিবদ্ধ, আপনি এগুলি প্রায়শই কল্পনাযোগ্যভাবে আপনার ইচ্ছায় বাঁকতে পারেন, এগুলি ভাল বোঝা যায়, প্ল্যাটফর্মটি স্বতন্ত্র এবং এগুলি পড়ার এবং লেখার জন্য একটি বিস্তৃত সফ্টওয়্যার উপলব্ধ রয়েছে।


6
তবে ভয়াবহভাবে ভার্বোজ এবং এগুলি মানব-পঠনযোগ্য না হয়ে মোটেও প্রবণতা থাকে (নেমস্পেসে ঘোষণাপত্র এবং অন্যান্য বিএস সহ সর্বাধিকের কাছে অভিযুক্ত বা স্ফীত হয়ে ভাবেন না)।
মাঞ্জাবেজ

1
@ মঞ্জাবেস: বৈশিষ্ট্য যা কনফিগারেশন ফাইলগুলির জন্য উল্লেখযোগ্য হওয়ার সম্ভাবনা নেই।
রবার্ট হার্ভে

@ রবার্ট হারভে: আমি যেখানে থাকি খুব তাৎপর্যপূর্ণ। আপনি গুই ব্যবহার করেন সেটিংসের সাথে বুনিয়াদি হস্তক্ষেপের জন্য, উন্নত সেটিংসের জন্য আপনি আইআইটি সম্পাদনা করতে পারেন।
পিটার বি

6

জেএফএল- এর জেফ ডি এর পরামর্শ বাড়ানোর জন্য , এখানে একটি সংক্ষিপ্ত পরিচিতি দেওয়া হয়েছে।

YAML JSON এর অনুরূপ (বাস্তবে, JSON YAML স্ট্যান্ডার্ডের 1.2 সংস্করণ থেকে YAML এর একটি উপসেট, এবং এইভাবে বৈধ JSON YAML পার্সার দ্বারা পার্স করা যায়)। প্রথম নজরে, প্রধান পার্থক্যটি হ'ল YAML (ডিফল্টরূপে) শ্রেণিবিন্যাস দেখানোর জন্য ব্র্যাকটিংয়ের পরিবর্তে ইনডেন্টেশন ব্যবহার করে। স্ট্রিংগুলির জন্য উদ্ধৃতিগুলির একটি উল্লেখযোগ্য অভাবও রয়েছে। উপরে থেকে একটি দ্রুত উদাহরণ:

configuration:
  window: 
    width:       600
    height:      350
    position:
      x:         400
      y:         200
  paths:
    path1:       some/random/path
    path2:       some/other/random/path
  user:
    name:        Joe Soap
    preference:  YAML

আরও ভাল উদাহরণের জন্য উইকিপিডিয়া এর YAML পৃষ্ঠা দেখুন । বেশিরভাগ প্রধান ভাষার জন্য YAML এর জন্য সমর্থন বিদ্যমান ( বিশদর জন্য yaml.org দেখুন)।


3

আপনি একটি বিকল্প ভুলে গেছেন: ডেটাবেস। এটি সাধারণত এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে ব্যবহারকারীরা আপনার অ্যাপ্লিকেশনটিতে লগইন করে থাকে যখন আপনার অ্যাপ্লিকেশন লগ ইন করা উইন্ডোজ ব্যবহারকারীর উপর নির্ভর করতে পারে না। উদাহরণস্বরূপ যখন আপনার অ্যাপটি কিওস্ক মোড উইন্ডোতে চলছে।


ডাটাবেসে সংযোগের বিশদ / স্ট্রিং ধরে রাখতে আপনার আইএনআই ফাইল বা রেজিস্ট্রি কী প্রয়োজন হতে পারে
ক্লাস স্কেলটন

@ ক্যামেলকেস ইনফিলে বা রেজিস্ট্রি কী ইতিমধ্যে প্রশ্নটিতে উল্লেখ করা হয়েছিল, তবে ডেটাবেস নয়। আমি বলতে চাইছিলাম না যে আপনি একই সাথে একাধিক পদ্ধতি ব্যবহার করতে পারবেন না।
পিটার বি

1

আমার ব্যক্তিগত পছন্দটি XML ফাইলগুলি:

বেশিরভাগ ক্ষেত্রে আমি প্রত্যাশা করি না যে ব্যবহারকারীকে তাদের কনফিগারেশন সেটিংস সম্পাদনা করতে হবে যাতে মানব পাঠযোগ্যতা ইস্যু এই ক্ষেত্রে কোনও যুক্তি না হয়।

যদি তাদের এডিট করার দরকার হয় তবে আপনি একটি সম্পাদনা সরঞ্জাম সরবরাহ করতে পারেন - এটি ব্যবহারকারীর ডেটা দিয়ে কিছু করায় বাধা দেয়। যদি তারা ডিফল্ট সেটিংস পুনরুদ্ধার করতে চান তবে আপনি কেবল ফাইল x মুছতে তাদের বলতে পারেন যা বেশিরভাগ ব্যবহারকারীরা করতে স্বাচ্ছন্দ্য বোধ করবেন।

দ্রষ্টব্য যে আপনার এখনও সাবধান হওয়া দরকার যে আপনার কিছু ফাইলের উইন্ডোজ etc. ইত্যাদিতে ডিফল্টরূপে লেখার অ্যাক্সেস না থাকায় আপনার ফাইল সংরক্ষণের অনুমতি রয়েছে etc.


আইএনআই ফাইলগুলি কনফিগারেশন সংরক্ষণের একটি ভাল মানের উপায় এবং এটির চেষ্টা ও পরীক্ষা করা হয় তবে তারা আমার কাছে কিছুটা 'উইন্ডোজ ৩.১' বোধ করে!

সম্ভবত আপনি যদি ব্যবহারকারী তাদের ডেটা দিয়ে টিঙ্কার করতে সক্ষম হন তবে সর্বোত্তম বিকল্প


আমি ব্যক্তিগতভাবে রেজিস্ট্রি থেকে দূরে সরে যেতে হবে। একটি জিনিসের জন্য আপনি গ্যারান্টি দিতে পারবেন না যে যেখানেই আপনি আপনার ডেটা সঞ্চয় করতে চান সেখানে ব্যবহারকারীর কাছে পড়ার / লেখার প্রয়োজনীয় অনুমতি রয়েছে।

আরও সাম্প্রতিক ওএসে যেখানে রেজিস্ট্রি ভার্চুয়ালাইজেশন কার্যকর হয় এটি বড় বিভ্রান্তির কারণ হতে পারে কারণ আপনি ভার্চুয়ালাইজড সেটিংস 'দেখতে' পারবেন না - এটি আমাদের কেন একাধিকবার কামড় দিয়েছে যেখানে কেন কিছু কাজ করছে না তা জানার চেষ্টা করে ঘন্টা ব্যয় করেছে।


3
যদি আপনি রেজিস্ট্রি অবস্থানের অনুমতি সম্পর্কে উদ্বিগ্ন হন তবে আপনি সম্ভবত সেগুলি ভুল জায়গায় রাখার চেষ্টা করছেন। ব্যবহারকারীর HKey_C موجودہ_উইউর মুরগির অনুমতি থাকতে হবে এবং সেখানে প্রতি ব্যবহারকারীর সেটিংস হওয়া উচিত!
নীল হোয়াইট

@ নীলভিট - তাদের অনুমতি থাকা উচিত বলে সম্মত হন তবে একজন অতি উৎসাহী আইটি প্রশাসক এটিকে পরিবর্তন করতে পারেন (বা পড়তে / লিখতে পারেন তবে অনুমতি তৈরি করে না)। এছাড়াও ওপি উল্লেখ করেনি যে এই সেটিংগুলি ব্যবহারকারীর জন্য প্রয়োজনীয় ছিল , তারা মেশিনের জন্য হতে পারে।
ম্যাট উইলকো

এছাড়াও, রেজিস্ট্রি আকার আকার সীমা থাকতে পারে। ফাইল না।
লিকুইজ করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.