আমাদের অ্যাপ্লিকেশনটিতে আমরা একটি বৈশিষ্ট্যযুক্ত এক্সএমএল ফাইল তৈরি করছি যার একটি গাইড মান রয়েছে। এই মানটি ফাইল আপগ্রেডের মধ্যে সামঞ্জস্য হওয়া দরকার। সুতরাং ফাইলের অন্য সব কিছু পরিবর্তিত হলেও, গুণাবলীর জন্য গাইডের মানটি একই থাকবে।
একটি সুস্পষ্ট সমাধান হ'ল ফাইল নাম এবং তাদের জন্য ব্যবহৃত নির্দেশিকাগুলি সহ একটি স্থিতিশীল অভিধান তৈরি করা। তারপরে আমরা যখনই ফাইলটি উত্পন্ন করি তখন আমরা ফাইলের নামের জন্য অভিধানটি সন্ধান করি এবং সংশ্লিষ্ট গাইড ব্যবহার করি। তবে এটি সম্ভবপর নয় কারণ আমরা ১০০ এর ফাইল স্কেল করতে পারি এবং গাইডের বড় তালিকা বজায় রাখতে চাই না।
সুতরাং অন্য পদ্ধতির ছিল ফাইলের পথের উপর ভিত্তি করে গাইডকে একই করা। যেহেতু আমাদের ফাইল পাথ এবং অ্যাপ্লিকেশন ডিরেক্টরি কাঠামোটি অনন্য, সেই পথটির জন্য গাইডটি অনন্য হওয়া উচিত। সুতরাং প্রতিবার আমরা একটি আপগ্রেড চালানোর সময় ফাইলটি তার পথের ভিত্তিতে একই নির্দেশিকা পায়। আমি এই জাতীয় ' নির্ধারক গাইড ' উত্পন্ন করার একটি দুর্দান্ত উপায় পেয়েছি (ধন্যবাদ এল্টন স্টোনম্যান)। এটি মূলত এটি করে:
private Guid GetDeterministicGuid(string input)
{
//use MD5 hash to get a 16-byte hash of the string:
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
byte[] inputBytes = Encoding.Default.GetBytes(input);
byte[] hashBytes = provider.ComputeHash(inputBytes);
//generate a guid from the hash:
Guid hashGuid = new Guid(hashBytes);
return hashGuid;
}
সুতরাং একটি স্ট্রিং দেওয়া হয়েছে, গাইড সর্বদা একই থাকবেন।
এটি করার জন্য অন্য কোনও পন্থা বা প্রস্তাবিত উপায় আছে? এই পদ্ধতির উপকারিতা বা বিপরীত কী কী?