.NET সমাবেশগুলি কী কী?


193

.NET সমাবেশগুলি কী কী? আমি নেট উপর ব্রাউজ এবং আমি সংজ্ঞা বুঝতে সক্ষম নই।


11
একটি পড়া আছে CLR মাধ্যমে সি # । আপনি এ সম্পর্কে সব শেষে জানতে হবে। আমি এই বই এর জন্য জোর পরামর্শ দিচ্ছি।
ডেভিড নিলে

উত্তর:


169

আরও সরল পদে: .NET রানটাইম এনভায়রনমেন্ট দ্বারা কার্যকর করা যেতে পারে এমন একটি কোড (প্রাকম্পম্পাইল) কোড। একটি। নেট প্রোগ্রাম এক বা একাধিক অ্যাসেমব্লি নিয়ে গঠিত।


30
@ কিমজংওয়ু - না, একটি জার ফাইল হ'ল একটি জিপ ফাইল যা বাইকোড ফাইলগুলি সংকলিত। অ্যাসেম্বলি হ'ল পিই (পোর্টেবল এক্সিকিউটেবল ফর্ম্যাট) ফাইল (অর্থাত্ একটি ডিএলএল বা এক্সইই), তবে ধারণাগতভাবে তারা অনুরূপ উদ্দেশ্যে পরিবেশন করে।
এরিক ফানকেনবাশ

তাহলে এটি .classজাভা-বিশ্বের কোনও ফাইলের মতো ?
mljrg

245

.NET অ্যাপ্লিকেশন মোতায়েনের সর্বনিম্ন একক হ'ল সমাবেশ। এটা একটা হতে পারে Dll অথবা একটি EXE
এটিতে মূলত দুটি প্রকার রয়েছে:

  1. প্রাইভেট অ্যাসেম্বলি: ডেল বা এক্সী যা কেবলমাত্র একটি আবেদনের একমাত্র সম্পত্তি। এটি সাধারণত অ্যাপ্লিকেশন রুট ফোল্ডারে সংরক্ষণ করা হয়

  2. সর্বজনীন / অংশীদারি সমাবেশ: এটি একটি dll যা একসাথে একাধিক অ্যাপ্লিকেশন ব্যবহার করতে পারে। একটি ভাগ করা সমাবেশ জিএসি অর্থাৎ গ্লোবাল অ্যাসেম্বলি ক্যাশে সংরক্ষণ করা হয় ।

কঠিন শব্দ? না ....
জিএসি হ'ল সি: \ উইন্ডোজ \ অ্যাসেম্বলি ফোল্ডার যেখানে আপনি আপনার পিসিতে ইনস্টল করা সমস্ত সফটওয়্যারগুলির পাবলিক অ্যাসেম্বলি / ডেলগুলি দেখতে পাবেন।

এখানে তৃতীয় এবং সর্বাধিক পরিচিত প্রকারের একটি সমাবেশও রয়েছে: স্যাটেলাইট অ্যাসেম্বলি
একটি স্যাটেলাইট অ্যাসেমব্লিতে কেবলমাত্র স্ট্যাটিক অবজেক্ট যেমন চিত্র এবং অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় অন্যান্য অ-এক্সিকিউটেবল ফাইল থাকে।

আশা করি এটি পাঠকদের সহায়তা করবে!


3
মনে রাখবেন অবস্থান .NET 4.0 আলাদা: stackoverflow.com/questions/2660355/net-4-0-has-a-new-gac-why
TrueWill

যে ধীর পেতে পারে। এর মধ্যে একটি ফোল্ডার হাজার পাওয়ার পরে, উইন্ডোজ ডিরেক্টরি ট্রিটিতে হাঁটতে বা কেবল ডিরেক্টরি পড়ার চেষ্টা করে ধীর হয়ে যায়।
জিম মাইকেলস

@ মঙ্গেশখট - কোনও অ্যাপ্লিকেশনটির dll অনুলিপি করে অন্যের মূল-ডিরেক্টরিতে রেখে দেওয়া কি আমি 1 ম এর কার্যকারিতাটি ব্যবহার করতে সক্ষম হব?
শিবাম 657

57

অ্যাসেম্বলিজ

আপনি যখন কোনও অ্যাপ্লিকেশন সংকলন করেন তখন তৈরি করা এমএসআইএল কোড একটি অ্যাসেমব্লিতে সংরক্ষণ করা হয়। অ্যাসেমব্লিতে উভয় এক্সিকিউটেবল অ্যাপ্লিকেশন ফাইল অন্তর্ভুক্ত থাকে যা আপনি অন্য কোনও প্রোগ্রামের প্রয়োজন ছাড়াই উইন্ডোজ থেকে সরাসরি চালাতে পারবেন (এগুলির একটি .exe ফাইল এক্সটেনশন রয়েছে), এবং অন্যান্য অ্যাপ্লিকেশনগুলির দ্বারা ব্যবহারের জন্য লাইব্রেরি (যার একটি .dll এক্সটেনশন রয়েছে)।

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

এর অর্থ এই যে অ্যাপ্লিকেশন মোতায়েন করা প্রায়শই সরল কম্পিউটারের কোনও ডিরেক্টরিতে ফাইলগুলি অনুলিপি করার মতো is টার্গেট সিস্টেমে কোনও অতিরিক্ত তথ্যের প্রয়োজন নেই বলে আপনি কেবল এই ডিরেক্টরি থেকে একটি এক্সিকিউটেবল ফাইল চালাতে পারেন এবং (। নেট সিএলআর ইনস্টল করা ধরে নিচ্ছেন) আপনার যেতে ভাল লাগবে।

অবশ্যই, আপনি অবশ্যই অ্যাপ্লিকেশন চালানোর জন্য প্রয়োজনীয় সমস্ত কিছু এক জায়গায় অন্তর্ভুক্ত করতে চান না। আপনি এমন কিছু কোড লিখতে পারেন যা একাধিক অ্যাপ্লিকেশন দ্বারা প্রয়োজনীয় কাজ সম্পাদন করে। এর মতো পরিস্থিতিতে, পুনরায় ব্যবহারযোগ্য কোডটি সমস্ত অ্যাপ্লিকেশনগুলিতে অ্যাক্সেসযোগ্য জায়গায় রাখাই প্রায়শই কার্যকর। .NET ফ্রেমওয়ার্কে এটি হ'ল গ্লোবাল অ্যাসেম্বলি ক্যাশে (জিএসি)। জিএসি তে কোড স্থাপনের কোডটি সহজ - আপনি কেবল এই ক্যাশেযুক্ত ডিরেক্টরিতে কোড সম্বলিত সমাবেশটি রাখুন।


আরও স্পষ্টতার জন্য "আপনি যখন একটি অ্যাপ্লিকেশন সংকলন করেন, তখন তৈরি করা এমএসআইএল কোড একটি অ্যাসেমব্লিতে সংরক্ষণ করা হয়"। কোনও সমাবেশের বিষয়বস্তু দেখার জন্য যোগ করতে আপনি ILSPY ব্যবহার করতে পারেন।
সন্দীপ

33

একটি অ্যাসেমব্লি হল আপনার হার্ড ড্রাইভের আসল .dll ফাইল যেখানে .NET ফ্রেমওয়ার্কের ক্লাসগুলি সংরক্ষিত থাকে। উদাহরণস্বরূপ, ASP.NET ফ্রেমওয়ার্কে থাকা সমস্ত ক্লাসগুলি System.Web.dll নামে একটি অ্যাসেমব্লিতে অবস্থিত।

আরও সঠিকভাবে, একটি এসেম্বলি হ'ল। নেট ফ্রেমওয়ার্কে স্থাপনা, সুরক্ষা এবং সংস্করণ নিয়ন্ত্রণের প্রাথমিক একক। যেহেতু একটি সমাবেশ একাধিক ফাইল বিস্তৃত করতে পারে, একটি সমাবেশকে প্রায়শই "যৌক্তিক" dll হিসাবে উল্লেখ করা হয়।

বিঃদ্রঃ

.NET ফ্রেমওয়ার্ক (সংস্করণ 2.0) এর মধ্যে 51 টি সমাবেশ রয়েছে lies

দুটি ধরণের অ্যাসেমব্লি রয়েছে: ব্যক্তিগত এবং ভাগ করা। একটি ব্যক্তিগত সভা কেবলমাত্র একটি একক অ্যাপ্লিকেশন দ্বারা ব্যবহার করা যেতে পারে। অন্যদিকে, একটি ভাগ করা সমাবেশ একই সার্ভারে অবস্থিত সমস্ত অ্যাপ্লিকেশন ব্যবহার করতে পারে।

ভাগ করা সমাবেশগুলি গ্লোবাল অ্যাসেম্বলি ক্যাশে (জিএসি) এ অবস্থিত। উদাহরণস্বরূপ, System.Web.dll সমাবেশ এবং .NET ফ্রেমওয়ার্কের সাথে অন্তর্ভুক্ত অন্যান্য সমস্ত সমাবেশগুলি গ্লোবাল অ্যাসেম্বলি ক্যাশে অবস্থিত।

বিঃদ্রঃ

গ্লোবাল অ্যাসেম্বলি ক্যাশে আপনার কম্পিউটারের \ উইন্ডোজ \ অ্যাসেম্বলি ফোল্ডারে শারীরিকভাবে অবস্থিত। আপনার \ উইন্ডোজ \ মাইক্রোসফট. নেট \ ফ্রেমওয়ার্ক \ v2.0.50727 ফোল্ডারে প্রতিটি সমাবেশের আলাদা কপি রয়েছে। সমাবেশগুলির প্রথম সেটটি রানটাইম এবং দ্বিতীয় সেটটি সংকলনের সময় ব্যবহৃত হয়।

আপনার আবেদনে কোনও সমাবেশে থাকা ক্লাসটি ব্যবহার করার আগে আপনাকে অবশ্যই সমাবেশে একটি রেফারেন্স যুক্ত করতে হবে। ডিফল্টরূপে, একটি এএসপি.এনইটি অ্যাপ্লিকেশন গ্লোবাল অ্যাসেম্বলি ক্যাশে থাকা সর্বাধিক সাধারণ সমাবেশগুলির উল্লেখ করে:

mscorlib.dll

System.dll

System.Configuration.dll

System.Web.dll

System.Data.dll

System.Web.Services.dll

System.Xml.dll

System.Drawing.dll

System.EnterpriseServices.dll

System.Web.Mobile.dll

.NET ফ্রেমওয়ার্কে কোনও নির্দিষ্ট শ্রেণি ব্যবহার করতে, আপনাকে অবশ্যই দুটি জিনিস করতে হবে। প্রথমত, আপনার আবেদনের অবশ্যই অ্যাসেমবিলিটি উল্লেখ করা উচিত যাতে ক্লাস রয়েছে contains দ্বিতীয়ত, আপনার অ্যাপ্লিকেশনটিকে অবশ্যই শ্রেণীর সাথে সম্পর্কিত নেমস্পেসটি আমদানি করতে হবে।

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

.NET ফ্রেমওয়ার্ক এসডিকে ডকুমেন্টেশনের প্রতিটি ক্লাসের প্রবেশিকা ক্লাসের সাথে সম্পর্কিত সমাবেশ এবং নামস্থান তালিকাভুক্ত করে। উদাহরণস্বরূপ, আপনি যদি ডকুমেন্টেশনে মেসেজকিউ ক্লাসটি সন্ধান করেন তবে আপনি আবিষ্কার করতে পারবেন যে এই শ্রেণিটি সিস্টেমের মধ্যে রয়েছে M মেসেজিং নেমস্পেসিটি সিস্টেমের মধ্যে অবস্থিত ess

আপনি যদি ভিজুয়াল ওয়েব বিকাশকারী ব্যবহার করছেন, আপনি মেনু বিকল্প ওয়েবসাইট, রেফারেন্স যুক্ত করুন এবং আপনার যে সমাবেশটি উল্লেখ করতে হবে তার নামটি নির্বাচন করে স্পষ্টভাবে কোনও অ্যাসেমব্লিতে একটি উল্লেখ যুক্ত করতে পারেন। উদাহরণস্বরূপ, সিস্টেমে একটি রেফারেন্স যুক্ত করা।

যেমন। Web.Config

enter code here

আপনি যদি ভিজুয়াল ওয়েব ডেভলপার ব্যবহার না করা পছন্দ করেন তবে উপরের উদাহরণটিতে হাত দ্বারা ফাইলটি তৈরি করে আপনি সিস্টেমটি-ম্যাসেজিং.ডেল সমাবেশে রেফারেন্স যুক্ত করতে পারেন add


1
আরও অনেক প্রযুক্তিগত যে গৃহীত উত্তর, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
স্পার্কি শর্টস 6'15

8

উইকিপিডিয়ায় বলতে হবে:

মাইক্রোসফ্ট .NET ফ্রেমওয়ার্কে একটি অ্যাসেমব্লি মোতায়েন, সংস্করণ এবং সুরক্ষার জন্য আংশিকভাবে সংকলিত কোড লাইব্রেরি। দুটি ধরণের রয়েছে: প্রক্রিয়া সমাবেশগুলি (EXE) এবং গ্রন্থাগার সমাবেশগুলি (ডিএলএল)। একটি প্রক্রিয়া সমাবেশ একটি প্রক্রিয়া প্রতিনিধিত্ব করে যা গ্রন্থাগার সমাবেশগুলিতে সংজ্ঞায়িত ক্লাস ব্যবহার করবে। .NET অ্যাসেমব্লিগুলিতে সিআইএল-তে কোড থাকে যা সাধারণত একটি সিএলআই ভাষা থেকে উত্পন্ন হয় এবং তারপরে সিএলআর-র ইন-টাইম সংকলক দ্বারা রানটাইম মেশিনের ভাষায় সংকলিত হয়। একটি সমাবেশে এক বা একাধিক ফাইল থাকতে পারে। কোড ফাইলগুলিকে মডিউল বলা হয়। একটি সমাবেশে একাধিক কোড মডিউল থাকতে পারে এবং যেহেতু কোড মডিউল তৈরি করতে বিভিন্ন ভাষাগুলি ব্যবহার করা সম্ভব হয় তেমনি প্রযুক্তিগতভাবে একটি সমাবেশ তৈরির জন্য বিভিন্ন ভাষাগুলি ব্যবহার করা সম্ভব।

আপনি যদি সত্যিই ব্রাউজ করেন তবে এটি যা আপনাকে বোঝে না সেগুলি পরিষ্কার করে দিলে সহায়তা করবে


7

দেখুন এই :

মাইক্রোসফ্ট .NET ফ্রেমওয়ার্কে একটি অ্যাসেমব্লি মোতায়েন, সংস্করণ এবং সুরক্ষার জন্য আংশিকভাবে সংকলিত কোড লাইব্রেরি


7

ক্লাস, ইন্টারফেস, এনাম ইত্যাদির শারীরিক সংগ্রহ যা আইএল কোডে রয়েছে। যা .EXE বা .DLL ফাইল হতে পারে .EXE এক্সিকিউটেবল ফাইল এবং .DLL কার্যকরভাবে কোনও। নেট সমর্থিত ভাষায় ব্যবহার করতে পারে।


6

একটি সমাবেশ একটি রানটাইম ইউনিট যা বিভিন্ন ধরণের এবং অন্যান্য সংস্থান নিয়ে গঠিত। কোনও সমাবেশে সমস্ত ধরণের একই সংস্করণ নম্বর থাকে।

প্রায়শই, একটি সমাবেশে কেবল একটি নাম স্থান থাকে এবং এটি একটি প্রোগ্রাম দ্বারা ব্যবহৃত হয়। তবে এটি বেশ কয়েকটি নেমস্পেসে ছড়িয়ে যেতে পারে। এছাড়াও, একটি নামস্থান বিভিন্ন সমাবেশে ছড়িয়ে যেতে পারে। বড় ডিজাইনে, কোনও সমাবেশে একাধিক ফাইল থাকতে পারে যা ম্যানিফেস্টের (অর্থাৎ সামগ্রীর টেবিল) দ্বারা একসাথে রাখা থাকে।

সি # তে একটি সংসদীয়। নেট অ্যাপ্লিকেশনটির সর্বনিম্ন স্থাপনা হয় t এটি একটি ডেল বা একটি এক্সিল হতে পারে tএর ​​দুটি প্রকার রয়েছে: ১. বেসরকারী সমাবেশ Public. জনসাধারণ / অংশীদারি সমাবেশ


6

গৃহীত উত্তর ছাড়াও, আমি আপনাকে একটি উদাহরণ দিতে চাই !

উদাহরণস্বরূপ, আমরা সবাই ব্যবহার করি

System.Console.WriteLine()

কিন্তু System.Console.WriteLine এর জন্য কোডটি কোথায় !?
কোনটি কোডটি আসলে কনসোলটিতে পাঠ্য রাখে?

আপনি যদি কনসোল শ্রেণীর জন্য ডকুমেন্টেশনের প্রথম পৃষ্ঠার দিকে নজর রাখেন তবে নীচের দিকে আপনি নীচের অংশটি দেখতে পাবেন: সমাবেশ: mscorlib (mscorlib.dll এ) এটি নির্দেশ করে যে কনসোল শ্রেণির জন্য কোড একটি এসেমল-ব্লিতে অবস্থিত নাম দেওয়া হয়েছে mscorlib। একটি সমাবেশে একাধিক ফাইল থাকতে পারে তবে এক্ষেত্রে এটি কেবল একটি ফাইল যা ডায়নামিক লিঙ্ক লাইব্রেরি mscorlib.dll।

.NET- এ mscorlib.dll ফাইলটি অত্যন্ত গুরুত্বপূর্ণ, এটি .NET- এ শ্রেণিবদ্ধ গ্রন্থাগারগুলির জন্য প্রধান ডিএলএল, এবং এতে সমস্ত বুনিয়াদি .NET ক্লাস এবং কাঠামো রয়েছে।

আপনি যদি সি বা সি ++ জানেন তবে সাধারণত আপনার শীর্ষে একটি # অন্তর্ভুক্ত নির্দেশিকা দরকার যা একটি শিরোনাম ফাইলের উল্লেখ করে। অন্তর্ভুক্ত ফাইলটি সংকলকটিতে ফাংশন প্রোটোটাইপ সরবরাহ করে। বিপরীতে সি # সংকলকটির শিরোনাম ফাইলের প্রয়োজন নেই। সংকলনের সময়, সি # সংকলকটি mscorlib.dll ফাইলটি সরাসরি অ্যাক্সেস করে এবং সেগুলিতে সংজ্ঞায়িত সমস্ত শ্রেণি এবং অন্যান্য ধরণের সম্পর্কিত ফাইলটিতে মেটাডেটা থেকে তথ্য গ্রহণ করে।

সি # সংকলকটি mscorlib.dll প্রকৃতপক্ষে কনসোল নামক একটি শ্রেণীর সাথে সিস্টেম নামে একটি নামফলক রাইটিংলাইন নামের একটি পদ্ধতি সহ টাইপ স্ট্রিংয়ের একক যুক্তিকে স্বীকার করে এমন একটি সিস্টেম থাকতে পারে establish

সি # সংকলক নির্ধারণ করতে পারে যে রাইটলাইন কলটি বৈধ, এবং সংকলক সম্পাদনযোগ্যতে এমস্করলিব সমাবেশে একটি রেফারেন্স স্থাপন করে।

ডিফল্টরূপে সি # সংকলকটি mscorlib.dll অ্যাক্সেস করবে, তবে অন্যান্য ডিএলএলগুলির জন্য, আপনাকে সংকলকটি যে সমাবেশে ক্লাসগুলি রয়েছে তা বলতে হবে। এগুলি রেফারেন্স হিসাবে পরিচিত

আমি আশা করি এটি এখন পরিষ্কার!

ডটনেটবুকজিরো চার্লস পিটজোল্ড থেকে


5

এমএসডিএন এর একটি ভাল ব্যাখ্যা রয়েছে :

সমাবেশগুলি হ'ল নেট ফ্রেমওয়ার্ক অ্যাপ্লিকেশনগুলির বিল্ডিং ব্লক; তারা মোতায়েন, সংস্করণ নিয়ন্ত্রণ, পুনরায় ব্যবহার, অ্যাক্টিভেশন স্কোপিং এবং সুরক্ষা অনুমতিগুলির মৌলিক ইউনিট গঠন করে। একটি সমাবেশ হ'ল প্রকার এবং সংস্থানগুলির সংকলন যা একসাথে কাজ করার জন্য এবং কার্যকারিতার লজিক্যাল ইউনিট গঠনের জন্য তৈরি। টাইপ বাস্তবায়ন সম্পর্কে সচেতন হওয়ার জন্য প্রয়োজনীয় তথ্য সহ একটি অ্যাসেমব্লি সাধারণ ভাষা রানটাইম সরবরাহ করে। রানটাইম পর্যন্ত, কোনও প্রকারের সমাবেশের প্রেক্ষাপটের বাইরে উপস্থিত নেই।


4

একটি সমাবেশ হ'ল প্রকার এবং সংস্থার সংকলন যা কার্যকারিতার লজিক্যাল ইউনিট গঠন করে। .NET ফ্রেমওয়ার্কের সমস্ত প্রকারের সমাবেশগুলিতে অবশ্যই উপস্থিত থাকতে হবে; সাধারণ ভাষা রানটাইম সমাবেশগুলির বাইরে ধরণের সমর্থন করে না। প্রতিবার আপনি যখন মাইক্রোসফ্ট উইন্ডোজ ® অ্যাপ্লিকেশন, উইন্ডোজ পরিষেবা, ক্লাস লাইব্রেরি বা ভিজ্যুয়াল বেসিক। নেট সঙ্গে অন্য অ্যাপ্লিকেশন তৈরি করেন, আপনি একটি একক সমাবেশ গঠন করছেন। প্রতিটি সমাবেশ একটি .exe বা .dll ফাইল হিসাবে সংরক্ষণ করা হয়।

সূত্র: https://msdn.microsoft.com/en-us/library/ms973231.aspx#assenamesp_topic4

আমার মতো জাভা ব্যাকগ্রাউন্ড সহ তাদের জন্য আশা করি নিম্নলিখিত চিত্রটি ধারণাগুলি স্পষ্ট করে -

সমাবেশগুলি হ'ল জার ফাইলগুলির মতো (একাধিক .class ফাইলযুক্ত)। আপনার কোডটি একটি বিদ্যমান অ্যাসেমব্লিকে রেফারেন্স করতে পারে বা আপনার কোডটি নিজেই অন্য কোডের রেফারেন্স এবং ব্যবহারের জন্য এসেম্বলি হিসাবে প্রকাশিত হতে পারে (আপনি এটি নিজের জাভাতে জার ফাইল হিসাবে ভাবতে পারেন যা আপনি আপনার প্রকল্পের নির্ভরতার সাথে যুক্ত করতে পারেন)।

দিনের শেষে একটি অ্যাসেমব্লিলিই একটি সংকলিত কোড যা সিএলআর ইনস্টল থাকা যে কোনও অপারেটিং সিস্টেমে চালানো যেতে পারে। এটি বলার মতোই .class ফাইল বা বান্ডিলযুক্ত জারটি JVM ইনস্টল থাকা যে কোনও মেশিনে চলতে পারে।

এখানে চিত্র বর্ণনা লিখুন


2

নেট মধ্যে, একটি সমাবেশ হতে পারে:

বিভিন্ন একটা সংকলন সামলানো অংশের ধারণকারী Types (or Classes), Resources (Bitmaps/Images/Strings/Files), Namespaces, Config Filesকম্পাইল Privatelyবা Publicly; একটি localবা Shared (GAC)ফোল্ডারে স্থাপন করা ; discover-ableঅন্য দ্বারা programs/assembliesএবং; সংস্করণ-এড হতে পারে।


2

যেহেতু মাইক্রোসফ্ট.নেটে সংস্করণ সুরক্ষা, স্থাপনা এবং কোডের পুনঃব্যবহারযোগ্যতার একক ক্ষুদ্র একক হিসাবে সমাবেশ।

এতে রয়েছে:

- Assembly Identity
- Manifest
- Metadata
- MSIL Code
- Security Information
- Assembly Header

1

.NET ফ্রেমওয়ার্ক সহ প্রোগ্রামিংয়ের মৌলিক অংশ হ'ল সমাবেশ Assembly এটিতে এমন কোড রয়েছে যা সিএলআর একটি পোর্টেবল এক্সিকিউটেবল ফাইলে এমএসআইএল (মাইক্রোসফ্ট ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ) কোড এক্সিকিউট করে যদি এতে কোনও অ্যাসেম্বলি ম্যানিফেস্ট না থাকে তবে তা কার্যকর করা হবে না।


1

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


1

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



1

এক বা একাধিক প্রকল্প নিয়ে ভিজ্যুয়াল স্টুডিও সমাধানগুলি রয়েছে। উদাহরণস্বরূপ: কনসোল প্রকল্পগুলি একটি সমাবেশ তৈরি করতে পারে । একটি অ্যাসেম্বলিটি যৌক্তিকভাবে এমন কোডের অংশ যা গ্রাহকদের কাছে প্রেরণ করা যায় এবং শারীরিকভাবে একটি .EXE (এক্সিকিউটেবল প্রোগ্রাম) বা .DLL (অন্যান্য প্রোগ্রাম দ্বারা পুনরায় ব্যবহারযোগ্য)।


0

সম্মেলনগুলিতে সামগ্রী, সংস্করণ এবং নির্ভরতা সম্পর্কে তথ্য থাকে, অ্যাপ্লিকেশনগুলি যেগুলি ব্যবহার করে তা সঠিকভাবে কাজ করার জন্য উইন্ডোজ সিস্টেমে রেজিস্ট্রি হিসাবে বাহ্যিক উত্সগুলিতে নির্ভর করা উচিত নয়। সমাবেশগুলি .dll বিরোধগুলি হ্রাস করে এবং আপনার অ্যাপ্লিকেশনগুলিকে আরও নির্ভরযোগ্য এবং মোতায়েন করা সহজ করে তোলে।

এটি এক প্রকারের সংস্থান এবং সংস্থান যা একসাথে কাজ করার জন্য এবং কার্যকারিতার যৌক্তিক ইউনিট গঠনে নির্মিত। সমাবেশগুলি এক্সিকিউটেবল (.exe) বা ডায়নামিক লিঙ্ক লাইব্রেরি (.dll) ফাইলগুলির আকার নেয় এবং এটি নেট অ্যাপ্লিকেশনগুলির বিল্ডিং ব্লক। তারা টাইপ বাস্তবায়ন সম্পর্কে সচেতন হওয়ার জন্য প্রয়োজনীয় তথ্যের সাথে সাধারণ ভাষার রানটাইম সরবরাহ করে।

প্রতিটি অ্যাসেমব্লির একটি সমাবেশ ম্যানিফেস্ট ফাইল থাকে। সমাবেশের ম্যানিফেস্টে থাকা সামগ্রীর একটি সারণির অনুরূপ:

  • সমাবেশের পরিচয় (এর নাম এবং সংস্করণ)।
  • অ্যাসেম্বলিকে তৈরি করা সমস্ত ফাইল যেমন আপনার .exe বা .dll ফাইলটি বিটম্যাপ ফাইল বা রেডমে ফাইলগুলিতে নির্ভর করে এমন অন্যান্য অ্যাসেমব্লির মতো একটি ফাইল সারণী বর্ণনা করে।
  • একটি সমাবেশ রেফারেন্স তালিকা, যা সমস্ত বাহ্যিক নির্ভরতার তালিকা, যেমন .dlls বা অন্যান্য ফাইলগুলির মতো sembly .NET ফ্রেমওয়ার্কে, বিশ্বব্যাপী অবজেক্টগুলি গ্লোবাল অ্যাসেম্বলি ক্যাশে (জিএসি) তে থাকে। System.IO.dll জিএসি-র একটি অ্যাসেমব্লির উদাহরণ। আপনার অ্যাপ্লিকেশন ইনস্টল হওয়া ডিরেক্টরিতে বা তার নীচে ব্যক্তিগত অবজেক্টগুলি অবশ্যই ডিরেক্টরি স্তরে থাকতে হবে।

কোনও অ্যাপ্লিকেশনটিতে অ্যাসেম্বলি ব্যবহার করতে, আপনাকে অবশ্যই এটিতে একটি উল্লেখ যুক্ত করতে হবে। একবার অ্যাসেম্বলি রেফারেন্স হয়ে গেলে, সমস্ত অ্যাক্সেসযোগ্য প্রকার, বৈশিষ্ট্য, পদ্ধতি এবং এর নেমস্পেসের অন্যান্য সদস্যগুলি আপনার অ্যাপ্লিকেশনটিতে এমনভাবে উপলব্ধ হয় যেন তাদের কোডটি আপনার উত্স ফাইলের অংশ ছিল were

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

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