अस्वीकरण : मैं रोजलिन टीम पर Microsoft के लिए काम करता हूं।
कोडडॉम रोजलिन के लिए एक अग्रदूत है, लेकिन केवल मामूली रूप से संबंधित है। अनिवार्य रूप से, कोडडोम एक सरल और (कुछ हद तक) भाषा को कोड उत्पन्न करने के लिए अज्ञेयवादी तरीका है जो डिजाइनरों को समर्थन करने के लिए .NET 1.0 में जोड़ा गया था (एक ला WinForms)। क्योंकि कोडडॉम एक एकीकृत मॉडल प्रदान करने का एक प्रयास था जो सी #, वीबी और अन्य भाषाओं में कोड उत्पन्न कर सकता है, इसमें किसी भी भाषा के साथ उच्च निष्ठा का अभाव होता है जो इसका समर्थन करता है (इसीलिए आप कोडडॉम के साथ स्विच स्टेटमेंट नहीं बना सकते हैं)। CSharpCodeProvider.CompileAssemblyFromSource, csc.exe निष्पादित करने के लिए एक आवरण है।
रोजलिन एक पूरी तरह से अलग जानवर है। यह प्रबंधित कोड - C # में C # और VB में VB (csc.exe और vbc.exe के संस्करण जो आज मूल कोड में लिखे गए हैं) का उपयोग करके जमीन से C # और VB दोनों कंपाइलरों का पुनर्लेखन है। प्रबंधित कोड में उनके निर्माण का लाभ यह है कि उपयोगकर्ता वास्तविक संकलक को .NET अनुप्रयोगों से पुस्तकालयों के रूप में संदर्भित कर सकते हैं (कोई आवरण आवश्यक नहीं)।
कंपाइलर पाइपलाइन के प्रत्येक घटक का निर्माण करते समय, हमने सार्वजनिक एपीआई को शीर्ष पर उजागर किया है:
- पार्सर -> सिंटेक्स ट्री एपीआई
- प्रतीक तालिका / मेटाडेटा आयात -> प्रतीक एपीआई
- बाइंडर -> बाइंडिंग और फ्लो एनालिसिस एपीआई
- आईएल एमिटर -> ईएमटी एपीआई
रोसलिन का उपयोग परिष्कृत सी # और वीबी स्रोत कोड जनरेटर के रूप में किया जा सकता है, लेकिन जहां कोडडॉम की समानता समाप्त होती है। रोसलिन कंपाइलर एपीआई का उपयोग कोड को पार्स करने, सिमेंटिक विश्लेषण करने, कोड को गतिशील रूप से संकलित करने और मूल्यांकन करने आदि के लिए किया जा सकता है।
संकलक के अलावा, रोसलिन टीम सार्वजनिक संकलक एपीआई के शीर्ष पर विजुअल स्टूडियो सी # और वीबी आईडीई सुविधाओं का भी पुनर्निर्माण कर रही है । इसलिए, कंपाइलर एपीआई विजुअल स्टूडियो डिज़ाइन-टाइम टूल बनाने के लिए पर्याप्त समृद्ध हैं, जैसे कि इंटेलीसिएंस और एक्स्ट्रेक्ट मेथड रीफैक्टरिंग। इसके अलावा, संकलक के ऊपर की परतों पर, रोसेलिन उच्च-स्तरीय विश्लेषण या डेटा परिवर्तन के लिए सेवाएं प्रदान करता है। उदाहरण के लिए, C # और VB प्रारूपण नियमों का उपयोग करके कोड को प्रारूपित करने या समाधान के भीतर किसी विशेष प्रतीक के सभी संदर्भ खोजने के लिए सेवाएँ हैं।
वास्तव में, कोडडॉम पर रोज़लिन का केवल एक विशेष लाभ नहीं है । जहां कोडडॉम ने एक बहुत ही विशिष्ट कोड पीढ़ी की जरूरत को पूरा किया, रोसलिन ने आपको प्रदान करने के लिए किसी भी प्रकार के सी # या वीबी भाषा उपकरण के बारे में अनुमति देने के लिए एक ढांचा प्रदान करके संपूर्ण भाषा टूलिंग स्पेस से निपटना है।