2009-12-11 10 views
5

कोई भी ASP.NET के 'संदर्भ' में असेंबली का उपयोग करने का लाभ बता सकता है।असेंब्ली बनाम कक्षा पुस्तकालय (.NET)

जैसा कि मैं इसे समझता हूं, असेंबली निष्पादन योग्य के रूप में चलती है, एक एकल प्रविष्टि बिंदु है, और एक एप्लिकेशन डोमेन के अंदर चलाया जा सकता है, लेकिन मुझे वेब पर बहुत कम उपयुक्त उदाहरण मिल गए हैं।

उत्तर

8

एक विधानसभा सिर्फ एक निष्पादन योग्य नहीं है ... एक विधानसभा अनिवार्य रूप से एक नेट पुस्तकालय कि मई एक निष्पादन प्रवेश बिंदु है ...

Wikipedia article with description of assemblies पहले पैराग्राफ है:

में माइक्रोसॉफ्ट .NET फ्रेमवर्क, असेंबली एक आंशिक रूप से संकलित कोड लाइब्रेरी, संस्करण और सुरक्षा में उपयोग के लिए लाइब्रेरी है। दो प्रकार हैं: प्रक्रिया असेंबली (EXE) और लाइब्रेरी असेंबली (डीएलएल)। एक प्रक्रिया असेंबली एक प्रक्रिया का प्रतिनिधित्व करती है जो लाइब्रेरी असेंबली में परिभाषित कक्षाओं का उपयोग करेगी। .NET असेंबली में सीआईएल में कोड होता है, जो आमतौर पर .NET भाषाओं से उत्पन्न होता है, और तब सीएलआर द्वारा कंपाइलर द्वारा रनटाइम पर मशीन भाषा में संकलित किया जाता है। एक असेंबली में एक या अधिक फ़ाइलें हो सकती हैं। कोड फाइल मॉड्यूल कहा जाता है। एक विधानसभा एक से अधिक कोड मॉड्यूल और शामिल कर सकते हैं, क्योंकि यह कोड मॉड्यूल यह तकनीकी तौर पर एक विधानसभा बनाने के लिए कई अलग अलग भाषाओं का उपयोग करना संभव है बनाने के लिए अलग अलग भाषाओं का उपयोग करना संभव है। विजुअल स्टूडियो हालांकि एक असेंबली में विभिन्न भाषाओं का उपयोग करने का समर्थन नहीं करता है।

+1

तो लाइब्रेरी एक असेंबली का सबसेट है? – maxp

+0

मैं सबसेट नहीं कहूंगा ... दो परिभाषाओं के बीच ओवरलैप है .. –

3

असेंबली हमेशा निष्पादन योग्य नहीं होते हैं। अधिकांश लोग उन्हें एकल डीएलएल या EXE फ़ाइल के रूप में प्रस्तुत कक्षा मॉड्यूल के संग्रह के रूप में परिभाषित करेंगे। उनके लिए सबसे नज़दीकी चीज जावा जार हैं।

वे मेटाडाटा (http://en.wikipedia.org/wiki/.NET_metadata देखें) जो जानकारी का एक समूह

  • संस्करण
  • तरीके और प्रकार

वे भी एक प्रकट जो इस मेटाडाटा का हिस्सा है है जैसे (शामिल है http://msdn.microsoft.com/en-us/library/1w45z383.aspx देखें)।

आप ग्लोबल असेंबली कैश (जीएसी) में असेंबली पंजीकृत कर सकते हैं (http://en.wikipedia.org/wiki/Global_Assembly_Cache देखें), और आप उन्हें मशीन पर अन्य सभी कार्यक्रमों के लिए उपलब्ध कराएंगे। (जब विजुअल स्टूडियो में, आप "संदर्भ जोड़ें" का उपयोग करते हैं, और .NET टैब ब्राउज़ करते हैं, तो आप जीएसी में असेंबली की एक सूची देख रहे हैं)।

आपको उन्हें जीएसी में जोड़ने की ज़रूरत नहीं है, आप सीधे एक निजी असेंबली का संदर्भ दे सकते हैं, लेकिन उन्हें जीएसी में पंजीकृत करने से उन्हें कंप्यूटर पर विश्व स्तर पर उपलब्ध कराया जा सकता है।

2

यह सवाल भावना का एक बहुत नहीं है:

यह लिंक विधानसभाओं के बारे में समझदार जानकारी शामिल है। असेंबली में कक्षा पुस्तकालय होते हैं, यह किसी भी तरह की चीज नहीं है। भले ही आपके पास केवल एएसपीएक्स फाइलें हों, पहली बार कोई व्यक्ति किसी पृष्ठ तक पहुंचता है, एएसपी.Net इसे कक्षा में संकलित करता है और फिर फ्लाई पर एक असेंबली करता है।

0

@maxp, क्या आप पूछ रहे हैं कि इस परियोजना में एक .cs फ़ाइल के रूप में या संदर्भ में संकलित .dll के रूप में कक्षा को शामिल करना बेहतर है या नहीं?

मैं कक्षा फ़ाइलों (.cs) में सामान्य कार्यों को रखने के लिए उपयोग करता था और बस उन परियोजनाओं में शामिल करता हूं जिन पर मैं काम कर रहा था। कक्षाएं स्रोत नियंत्रण में रहती हैं, इसलिए मैं यह सुनिश्चित कर दूंगा कि जब भी मैंने एक नई परियोजना बनाई तो मुझे नवीनतम संस्करण मिला। हालांकि हाल ही में, मैंने उन्हें संकलित करना शुरू कर दिया है और उन्हें जीएसी में पंजीकृत किया है। यह हर किसी को यह जानने के सिरदर्द को कम करने में मदद करता है कि किसी दिए गए प्रोजेक्ट में कक्षा का कौन सा संस्करण शामिल है। यदि आप कक्षा में बदलाव करते हैं, तो बस इसे जीएसी के साथ पुनः पंजीकृत करें और आपके सभी ऐप्स अपडेट किए गए हैं और उसी संस्करण का उपयोग कर रहे हैं।

मुझे केवल एक ही वास्तविक दोष का सामना करना पड़ा है यदि आप तर्क से गुजरने और कदम उठाने का प्रयास कर रहे हैं। बस सुनिश्चित करें कि आपके कक्षाएं संकलित और जीएसी में जगह लेने से पहले ठोस हैं।

आशा है कि इससे आपके प्रश्न का उत्तर देने में मदद मिलेगी।

+0

वास्तव में नहीं, लेकिन उत्तर के लिए धन्यवाद। 'नवीनतम संस्करण कोड' की आपकी समस्या से निपटने के लिए हमारा समाधान, एक बड़ा समाधान है जिसमें कक्षा पुस्तकालय समेत सभी प्रोजेक्ट शामिल हैं। इसके बाद हम प्रत्येक प्रोजेक्ट के लिए क्लास लाइब्रेरी में संदर्भ जोड़ते हैं, इसलिए प्रत्येक नई संकलन के साथ, सभी परियोजनाओं को नवीनतम लाइब्रेरी के साथ अपडेट किया जाता है। – maxp

संबंधित मुद्दे