2012-01-19 9 views
18

Roslyn प्रोजेक्ट के संबंध में CaaS (एक सेवा के रूप में कंपाइलर) क्या है?Roslyn - compiler को सेवा के रूप में उपयोग करने के क्या फायदे हैं

रोज़लिन सुविधा का उपयोग करने से वर्तमान सी # 4.0 कंपाइलर पर सी # एप्लिकेशन के प्रदर्शन में सुधार होता है?

Roslyn-CTP में ज्ञात सीमाएं/मुद्दे क्या हैं?

+0

यह वास्तव में क्या आप "संकलन प्रक्रिया" मतलब है मेरे लिए स्पष्ट नहीं है के लिए ged कार्यान्वयन। आप ठीक - ठीक क्या जानना चाहते हैं? – svick

+0

@svick i.e. Roslyn पर लागू कैस और वास्तव में Caas पर कुछ प्रकाश क्या है .. – VS1

+0

इसके लिए मेरा अद्यतन उत्तर देखें। – svick

उत्तर

14

Roslyn के संबंध में एक सेवा (CaaS) के रूप में कंपाइलर वास्तव में क्या मतलब है? आप a video where Anders Hejlsberg explains that देख सकते हैं (Roslyn के बारे में बात 35 मिनट में शुरू होती है)। असल में, पुराना सी # कंपाइलर एक "ब्लैक बॉक्स" है: स्रोत कोड आता है, संकलित असेंबली आती है। Roslyn आपको उस बॉक्स के अंदर पहुंच देता है। इसका मतलब है कि आप कुछ कोड के बारे में वाक्य रचनात्मक और अर्थपूर्ण जानकारी प्राप्त कर सकते हैं, इसे संशोधित कर सकते हैं और इसे संसाधित करने के लिए इसे संकलक को वापस दे सकते हैं। आप कोड विश्लेषण, रिफैक्टरिंग, कोड जनरेशन और बहुत कुछ करने के लिए इसका उपयोग कर सकते हैं।

a long list of features that are not implemented in the current CTP on the Roslyn forum है।

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

+0

बस एक अपडेट: माइक्रोसॉफ्ट प्रदर्शन के अनुसार वास्तव में उन प्रमुख "विशेषताओं" में से एक है जो वे अब Roslyn में चाहते हैं http://blogs.msdn.com/b/csharpfaq/archive/2014/01/15/roslyn-performance-matt -gertz.aspx – skewl84

+0

@ skewl84 रोज़लिन संकलक का प्रदर्शन, हां। लेकिन संकलित कोड का प्रदर्शन नहीं, जो सवाल पूछा गया है। – svick

+2

@svick .. ओह क्षमा करें मुझे "रोज़लिन" की उत्कृष्टता से दूर ले जाया गया .. मेरा बुरा – skewl84

5

रोज़लीन का एक फायदा यह है कि जब आपके एप्लिकेशन को एक स्क्रिप्टिंग इंटरफ़ेस की आवश्यकता होती है। रोज़लिन के साथ, आप स्क्रिप्ट को सी # स्रोत कोड के रूप में सीधे प्रोग्रामिंग संभावनाओं के साथ संकलित कर सकते हैं, जो एप्लिकेशन के स्रोत के रूप में और सीधे इसका उपयोग करते हैं।

+0

क्या आप संकलन के बाद मतलब है, स्क्रिप्ट को सी # स्रोत कोड में परिवर्तित कर दिया गया है? – VS1

+0

हां, उपयोगकर्ता को एक टेक्स्ट बॉक्स दिया जा सकता है जिसमें वह उच्च स्तर की भाषा जैसे वीबी.नेट या सी # में स्क्रिप्ट कर सकता है और कोड सीधे संकलित और एप्लिकेशन द्वारा उपयोग किया जा सकता है ... –

+0

आप रोज़लिन के बिना ऐसा कर सकते हैं । वीएस वर्तमान में रनटाइम पर वर्तमान प्रोजेक्ट में एक स्रोत कोड स्ट्रिंग को संकलित करने का समर्थन करता है। – IamIC

7

Roslyn के संबंध में एक सेवा (CaaS) के रूप में कंपाइलर का मतलब है कि संकलन प्रक्रिया को सार्वजनिक एपीआई के साथ टुकड़ों में तोड़ दिया जाता है जो आपको संकलन के दौरान संकलक द्वारा निर्मित वाक्य रचनात्मक और अर्थपूर्ण मॉडल की जांच करने देता है। Roslyn C# और VB कंपाइलर्स पूरी तरह से मौजूदा कंपाइलर्स को प्रतिस्थापित करते हैं, ताकि आप उन्हें आज भी कंपाइलर्स का उपयोग कर सकें (जैसे अलग निष्पादन योग्य जो पाठ फ़ाइलों को .net असेंबली में परिवर्तित करते हैं।) आप कंपाइलर्स को एक के रूप में भी उपयोग कर सकते हैं एपीआई की लाइब्रेरी जो आपको ऐसे टूल बनाने में मदद करती है जो गहन या विभिन्न प्रकार के कोड विश्लेषण करते हैं।

रोज़लिन आपको मौजूदा कंपाइलरों का उपयोग करने पर विशिष्ट प्रदर्शन लाभ नहीं देता है क्योंकि जब रोज़लिन रिलीज़ होता है तो वे एक और समान होंगे। हालांकि, विशेष स्रोत रिफैक्टरिंग बनाने के लिए रोसलीन का उपयोग करना संभव है जो आपके स्रोत कोड को बेहतर बनाता है।

2

मैं रोज़लिन के बारे में उत्साहित हूं क्योंकि यह पहलू ओरिएंटेड प्रोग्रामिंग को कार्यान्वित करने का एक आसान तरीका प्रदान करेगा। एओपी का उपयोग करके, आप सामान्य "नीतियां" लिख सकते हैं और इसे अपने कोड में फैलाने के बजाय अपने कोड पर लागू कर सकते हैं। Roslyn कंपाइलर का उपयोग करके आप इन नीतियों को संकलित समय पर अपने कोड में बुना सकते हैं, और अपने व्यापार कोड को प्रदूषित करने के लिए क्रॉस-कटिंग चिंताओं को बनाए रख सकते हैं।आप कुछ उपयोग के मामलों चाहते हैं, जो उनके उपयोग के मामलों

http://www.sharpcrafters.com/

  • लॉगिंग नीतियां रूप PostSharp सूचियों
  • अपवाद संचालन नीतियों
  • स्वत: धागा तुल्यकालन (सुनिश्चित करें कि सही चीजें प्राप्त कहा जाता है बनाने की जाँच यूआई थ्रेड पर)
  • फ़ंक्शन कॉल की स्वचालित ऑडिटिंग
  • स्वचालित रूप से INotifyPropertyChan उत्पन्न करें स्वत: गुण
  • और अधिक
+0

लेकिन एएसटी अपरिवर्तनीय नहीं है? –

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