2016-08-02 5 views
8

मैंने देखा कि एक पुराने एमवीसी प्रोजेक्ट बनाने के लिए सी # का उपयोग करते समय, ओविन लाइब्रेरी के बहुत सारे संदर्भ हैं। लेकिन जब VS2015 SP3 में .NET कोर वेब अनुप्रयोग बनाते हैं, तो ऐसा लगता है कि इसका कोई संदर्भ नहीं है।क्या एएसपी.नेट कोर अभी भी ओविन का उपयोग करता है?

क्या यह पुस्तकालय अप्रचलित है?

+1

हां, ओविन अभी भी एक प्राथमिक समर्थित मानक है। नेट कोर आपके वेब ऐप को बनाने के लिए जरूरी जरूरी चीजें प्रदान करता है। Nuget से OWIN पैकेज में खींचो। https://docs.asp.net/en/latest/fundamentals/owin.html –

+0

@MurrayFoxcroft: बिल्कुल सही नहीं है। .NET कोर और एएसपी.नेट कोर ** ** ** ओविन पर आधारित नहीं हैं। लेकिन वे ओविन मिडलवेयर में प्लगिंग का समर्थन करते हैं। – Tseng

+0

@Tseng, वास्तव में, यही कारण है कि मैंने समर्थित कहा। –

उत्तर

10

ओविन एक लाइब्रेरी नहीं है, यह specification है। दस्तावेज़ों से,

ओडब्ल्यूआईएन .NET वेब सर्वर और वेब अनुप्रयोगों के बीच एक मानक इंटरफेस को परिभाषित करता है।

ओविन का "बड़ा विचार" यह है कि आप उन सर्वरों से अनुप्रयोगों को रद्द कर सकते हैं, यदि हर कोई उपयोग करने के लिए एक आम इंटरफ़ेस पर सहमत हो सकता है। अभ्यास में, एक ओविन-संगत सर्वर किसी भी ओविन-संगत एप्लिकेशन को चला सकता है। यह अतीत में तंग युग्मन पर एक सुधार है (अनुप्रयोग केवल आईआईएस पर चल सकते हैं, और यह है)।

बहुत सारे ओवेन स्पेक विभिन्न गुणों के नामों का वर्णन करने के लिए समर्पित है। एक ओविन-संगत सर्वर इनकमिंग अनुरोधों को Dictionary<string, object> में बदल देता है जिसमें owin.RequestBody और owin.ResponseBody जैसी चाबियाँ शामिल हैं। यदि आवेदन या मिडलवेयर अनुरोध है कि अनुरोध को पारित किया जाता है, तो उन कुंजी को कैसे पढ़ा जाए, यह अनुरोध को संसाधित कर सकता है। बस!

वहाँ Owin पुस्तकालयों (जैसे OWIN और Microsoft.Owin) है, जो भ्रम का एक आम स्रोत है कर रहे हैं। ये पुस्तकालय ओविन इंटरफ़ेस के केवल प्रकार-सुरक्षित कार्यान्वयन हैं, या हेल्पर्स जो ओविन-संगत वाले घटकों के साथ बातचीत करना आसान बनाता है।

@Murray और @Tseng ने बताया, एएसपी.NET कोर ओविन पर नहीं बनाया गया है, लेकिन यह ओविन-संगत है। या, बल्कि, सर्वर कि ASP.NET कोर चालू (केस्ट्रल, वेबलिस्टर, आईआईएस) ओविन-संगत हैं। एएसपी.नेट कोर निम्न स्तर के अनुरोधों ("ओविन स्तर") पर एक और अमूर्त है और नियंत्रकों और सर्वर-प्रस्तुत पृष्ठों जैसी चीजों को बनाना आसान बनाता है।

चूंकि एएसपी.नेट कोर ओविन-संगत है, किसी भी ओविन-संगत मिडलवेयर में प्लग करना आसान है।

app.UseOwin(pipeline => 
{ 
    pipeline(next => OwinHello); 
    // where OwinHello is a compatible middleware function 
}); 

ASP.NET कोर पाइप लाइन के लिए Owin मिडलवेयर जोड़ने का अधिक उदाहरण के लिए documentation देखें: Microsoft.AspNetCore.Owin पैकेज एक UseOwin विधि उजागर करता है।

+1

क्या एएसपी.NET कोर से ओविन पर्यावरण शब्दकोश का उपयोग करना संभव है? – Fred

+0

@Fred हां, 'HttpContext.Items' संपत्ति के माध्यम से। –

+2

लेकिन 'HttpContext.Items' एक' शब्दकोश <ऑब्जेक्ट, ऑब्जेक्ट> 'है जबकि ओविन पर्यावरण शब्दकोश एक' शब्दकोश <स्ट्रिंग, ऑब्जेक्ट> 'है। इसके अलावा 'HttpContext.Items' खाली है, इसलिए इसका उपयोग मिडलवेयर के बीच डेटा साझा करने के लिए किया जा सकता है, इसमें मूल ओविन पर्यावरण नहीं होता है। – Fred

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