c# - নেট এসেম্বলি কি?




.net (12)

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


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

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

আমার মত জাভা পটভূমি দিয়ে যারা আশা করি নিম্নলিখিত চিত্রটি ধারণাগুলি ব্যাখ্যা করে -

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

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


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



আরও সহজ শর্তে: একটি চুক (প্রাক্কলিত) কোড যা .NET রানটাইম পরিবেশ দ্বারা কার্যকর করা যেতে পারে। একটি .নেট প্রোগ্রাম এক বা একাধিক সমাহার গঠিত।


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

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

বিঃদ্রঃ

.NET Framework (সংস্করণ 2.0) 51 টি অ্যাসেম্বলি রয়েছে।

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

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

বিঃদ্রঃ

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

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

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 ফ্রেমওয়ার্কের যে কোনও নির্দিষ্ট বর্গ ব্যবহার করতে আপনাকে অবশ্যই দুটি জিনিস করতে হবে। প্রথমত, আপনার অ্যাপ্লিকেশনটি অবশ্যই ক্লাসে থাকা সমাবেশটি উল্লেখ করবে। দ্বিতীয়ত, আপনার অ্যাপ্লিকেশন অবশ্যই ক্লাসের সাথে সংশ্লিষ্ট নামস্থান আমদানি করতে হবে।

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

.NET ফ্রেমওয়ার্ক এসডিকে ডকুমেন্টেশনের প্রতিটি ক্লাস এন্ট্রি ক্লাসের সাথে যুক্ত সমাবেশ এবং নামস্থান তালিকাবদ্ধ করে। উদাহরণস্বরূপ, যদি আপনি ডকুমেন্টেশনে MessageQueue ক্লাসটি সন্ধান করেন, তবে আপনি এটি দেখতে পাবেন যে এই ক্লাসটি সিস্টেমে অবস্থিত। System.Messaging.dll সমাবেশে অবস্থিত মেসেজিং নামস্থান।

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

যেমন। Web.Config

enter code here

আপনি যদি ভিজ্যুয়াল ওয়েব বিকাশকারী ব্যবহার করতে না চান তবে আপনি উপরের উদাহরণে ফাইল তৈরি করে System.Messaging.dll সমাবেশে রেফারেন্স যুক্ত করতে পারেন।


একটি সমাবেশ একটি রানটাইম ইউনিট ধরনের এবং অন্যান্য সম্পদ গঠিত। একটি সমাবেশে সব ধরনের একই সংস্করণ নম্বর আছে।

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

সি #তে, একটি সমাবেশটি ন্যেট অ্যাপ্লিকেশনটির সর্বনিম্ন স্থাপনা। এটি একটি ডিল বা EXE হতে পারে। এটির দুটি প্রকার রয়েছে: 1. ব্যক্তিগত পরিষদ 2. জন / ভাগ করা সমাবেশ


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


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

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

System.Console.WriteLine()

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

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

.NET তে mscorlib.dll ফাইলটি খুবই গুরুত্বপূর্ণ, এটি .NET- র ক্লাস লাইব্রেরির প্রধান DLL এবং এতে সমস্ত প্রাথমিক .NET ক্লাস এবং স্ট্রাকচার রয়েছে।

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

সি # কম্পাইলারটি প্রতিষ্ঠা করতে সক্ষম হয়েছে যে mscorlib.dll প্রকৃতপক্ষে একটি নামস্থান নামক একটি কনসোল নামক ক্লাসে রয়েছে যা লিনাক্স নামের একটি পদ্ধতির সাথে টাইপ স্ট্রিংয়ের একক আর্গুমেন্ট গ্রহণ করে।

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

ডিফল্টরূপে সি # কম্পাইলার mscorlib.dll অ্যাক্সেস করবে, তবে অন্যান্য DLL- র জন্য, আপনাকে সংবিধান সংকলন বলতে হবে যেখানে ক্লাস অবস্থিত। এই রেফারেন্স হিসাবে পরিচিত হয়

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

DotNetBookZero চার্লস pitzold থেকে


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


সমাবেশটি নেট ফ্রেমওয়ার্কের সাথে প্রোগ্রামিং এর মৌলিক অংশ। এটি এমন কোড ধারণ করে যা CLR নির্বাহ করে একটি পোর্টেবল এক্সিকিউটেবল ফাইলের মধ্যে MSIL (মাইক্রোসফ্ট ইন্টারমিডিয়েট ল্যাঙ্গুয়েজ) কোডটি কার্যকর করা হবে না যদি এটি একটি সংযুক্ত সমাবেশ ম্যানিফেস্ট না থাকে।


this দেখুন:

মাইক্রোসফ্ট। নেট ফ্রেমওয়ার্কে, একটি সমাবেশ আংশিকভাবে সংকলিত কোড লাইব্রেরি স্থাপনের জন্য, সংস্করণ এবং নিরাপত্তা ব্যবহারের জন্য


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

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

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

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

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







.net