কেন শক্তিশালী নামযুক্ত সমাবেশগুলি ব্যবহার করবেন?


107

শক্তিশালী নামযুক্ত সমাবেশগুলি ব্যবহার করার সুবিধা কী কী?

সাধারণ সমাবেশ দিয়ে কী করা যায় না?

উত্তর:


92

প্রথমে আপনার সমাবেশকে শক্তিশালী নামকরণের সুবিধাগুলি তালিকাভুক্ত করুন:

  1. আপনার সমাবেশকে শক্তিশালী নামকরণ আপনাকে আপনার সমাবেশকে গ্লোবাল অ্যাসেম্বলি ক্যাশে (জিএসি) এ অন্তর্ভুক্ত করতে দেয় । সুতরাং এটি আপনাকে একাধিক অ্যাপ্লিকেশনগুলির মধ্যে ভাগ করতে দেয়।

  2. শক্ত নামকরণ সেই সমাবেশের জন্য একটি অনন্য নামের গ্যারান্টি দেয়। সুতরাং অন্য কেউ একই সমাবেশ নাম ব্যবহার করতে পারবেন না।

  3. শক্ত নাম একটি সমাবেশের সংস্করণ বংশ রক্ষা করে। একটি শক্তিশালী নাম নিশ্চিত করতে পারে যে কেউ আপনার সমাবেশের পরবর্তী সংস্করণ তৈরি করতে সক্ষম নয়। অ্যাপ্লিকেশন ব্যবহারকারীরা নিশ্চিত হয়ে থাকে যে তারা যে সমাবেশটি লোড করছে তার একটি সংস্করণ একই প্রকাশক এসেছিল যা অ্যাপ্লিকেশনটি তৈরি করে তৈরি করা সংস্করণ তৈরি করেছিল।

মাইক্রোসফ্ট থেকে শক্তিশালী নামকরণের বিষয়ে আরও রয়েছে স্ট্রং-নেমড অ্যাসেমব্লিসি ( এমএসডিএন )।


1
আপনি কি আইটেম 4 এ নিশ্চিত? আমি মনে করি সম্ভবত এই বাহাভিয়ারটি সম্প্রতি পরিবর্তিত হয়েছে। আমি দৃ strongly়ভাবে নামযুক্ত অ্যাসেমব্লিকে এটি সংশোধন করে ব্যর্থ হওয়ার চেষ্টা করলাম, তবে এটি কোনও ঘটনা ছাড়াই লোড হয়ে গেছে।
— জেনস 1'10

19
# 4 র শুভেচ্ছার সাথে যা ভুল। এটি টেম্পারিংয়ের বিরুদ্ধে সুরক্ষার জন্য ডিজাইন করা হয়নি। আরও জানতে ব্লগস.এমএসডন.কম / বি / শ্যাশনফা / অর্চিভ / ২০০৫/12/13/… দেখুন।
— কলিন বওয়ার্ন

1
@ রবভি 8আর আমাদের 90% নির্ভরতা ওপেনসোর্স, প্রাইভেট কীগুলি সর্বজনীন গিট রেপোতে রয়েছে (মাইক্রোসফ্টের প্রস্তাবনা অনুযায়ী) এবং যারা চাইবে তাদের জন্য উপলব্ধ।
— ট্রাম্পস্টার

1
@ রবিভি 8 আর আপনি এখানে আপস শব্দটি ব্যবহার করতে পারবেন না, এটি বোঝায় যে এটি প্রথম স্থানে একটি গোপনীয় হওয়ার উদ্দেশ্যে। মাইক্রোসফ্ট নির্দেশিকা হ'ল ব্যক্তিগত কী আপনার জনসাধারণের উত্স ভান্ডারে রাখা উচিত। ব্যক্তিগত কীগুলি আপোষযুক্ত নয় তারা ইচ্ছাকৃতভাবে প্রকাশিত হয়। প্রদত্ত যে প্রাইভেট কীগুলি জানা যায়, এবং অভিভাবক প্রকল্পগুলির ওপেনসোর্স কোডটি সংশোধন করে লোকেরা ব্যবহার করতে চায় (অন্যথায় লাইসেন্সটি বেশিরভাগ ক্ষেত্রে লঙ্ঘন করা হবে) তারপরে লোকেরা এই সংস্করণে আলাদা সংস্করণ নম্বর ছাড়া একই কী ব্যবহার করবে key ক্ষেত্রে একটি বাঁধাই পুনর্নির্দেশের প্রয়োজন হবে।
— 21-28

1
@ রবিভি 8 আর আমি মূলত যা পেয়েছিলাম তা হ'ল অনেক লোক বিশ্বাস করেন যে দৃ strong় নামকরণ গ্যারান্টি দেয় যে আপনার নির্ভরতা কোনও সমাবেশের নির্দিষ্ট সংস্করণে লক হয়ে গেছে, এবং এটি কেবল তেমনটি নয়, একটি সরল বাইন্ডিং পুনঃনির্দেশ আপনি যে সংস্করণটি ব্যবহার করেছেন সেটি পরিবর্তন করতে পারে একই বেসরকারী কীতে স্বাক্ষরিত হয়েছিল। এবং আমি যেমন বলেছি যে ব্যক্তিগত কীগুলি আমাদের বেশিরভাগ নির্ভরতার জন্য ইচ্ছাকৃতভাবে প্রকাশিত হয়।
— ট্রাম্পস্টার

9

সাধারণ সমাবেশ দিয়ে কী করা যায় না?

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

আপনি যদি ভিজ্যুয়ালস্টুডিও দ্বারা সরবরাহিত স্বয়ংক্রিয় অ্যাপ্লিকেশন বা ব্যবহারকারীর স্কোপযুক্ত অ্যাপ্লিকেশন সেটিংস ব্যবহার করেন (উত্তরাধিকারসূত্রে সিস্টেম। কনফিগারেশন.এপ্লিকেশনসেটিংসবেস) তবে একটি শক্তিশালী নামযুক্ত EXE% LOCALAPPDATA% এর ভিতরে ঠিক 1 ডিরেক্টরি তৈরি করবে উদাহরণস্বরূপ "আপনার অ্যাপ্লিকেশন.এক্সটি_স্রটং নাম_কিজেএসডিফিজআইটিজফিজআইডিফিজিআইফিজিআইফিজিআইডিফিজিআইডি অবস্থিত।

তবে দৃ name় নাম ব্যতীত EXE এর অবস্থান (= পথ) একটি হ্যাশ মান তৈরি করতে ব্যবহৃত হবে যা ইতিমধ্যে DEBUG এবং RELEASE বিল্ডের মধ্যে পার্থক্য করে, "আপনার অ্যাপ্লিকেশন.এক্সে_উড়ল_ডেফগ 8778d6fs7g6d7f8g69sdf" এর মতো অনেকগুলি ডিরেক্টরি তৈরি করে। এটি ক্লিকঅনস মোতায়েনের জন্য অকার্যকর করে তোলে যেখানে প্রতিটি আপডেটের সাথে ইনস্টলেশন ডিরেক্টরি পরিবর্তন হয়।


5

আমি যুক্ত করতে চাই যে কোনও শক্ত নাম ছাড়া আপনি কনফিগার ফাইলগুলিতে বাইন্ডিং পুনঃনির্দেশগুলি ব্যবহার করতে পারবেন না।

এটি কাজ করবে না:

  <dependentAssembly>
    <assemblyIdentity name="MyAssembly.MyComponent" publicKeyToken="null" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>

আপনার একটি সার্বজনীন কী টোকেন থাকা দরকার

  <dependentAssembly>
    <assemblyIdentity name="MyAssembly.MyComponent" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>

9
আপনি দৃ strong় নাম না রাখলে বাইন্ডিং পুনঃনির্দেশগুলির প্রয়োজন হয় না।
— ট্রাম্পস্টার

0

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

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