कटाना और ओविन को सरल शब्दों और उपयोगों में कैसे समझा जाए?


337

मैंने OWIN और कटाना परियोजनाओं के बारे में कई लेख पढ़े हैं, लेकिन मुझे इसकी पूरी तस्वीर नहीं मिली।

एक सामान्य वेब डेवलपर के लिए जो ASP.NET का उपयोग करता है:

  1. वास्तव में ओविन क्या है और यह किन समस्याओं को हल करता है (सरल शब्दों में)। इसका IIS से क्या संबंध है?
  2. क्या OWIN IIS की जगह लेता है? यदि नहीं, तो किन परिस्थितियों में ओविन सबसे उपयुक्त है?
  3. OWIN मेरी दैनिक कार्य परियोजनाओं में मेरी मदद कैसे कर सकता है?
  4. स्व-सुधार परियोजनाओं में ओविन कैसे मेरी मदद कर सकता है?

आप कुछ बुलेटपॉइंट्स को देखते हुए स्वीकार किए गए उत्तर को बदलने पर विचार कर सकते हैं जो वास्तव में सही नहीं हैं - भ्रामक हैं।
एडमिर तुज़ोविक

3
ASP.net पर मेरी पुस्तक OWIN के माध्यम से आइडेंटिटी और उपयोगकर्ता प्रबंधक वर्ग को लागू करने का सुझाव देती है और मुझे वास्तव में यह बात दिखाई नहीं देती है। यह मुझे पूरी तरह से उलझन में छोड़ गया है ...
ल्यूक

जवाबों:


409

उपरोक्त टिप्पणी के संबंध में, OWIN एक रूपरेखा नहीं है। OWIN वेब सर्वर और वेब एप्लिकेशन का निर्माण कैसे किया जाना चाहिए, इसके लिए एक विनिर्देश है, ताकि उन्हें डिकम्पोज करने के लिए और ASP.NET अनुप्रयोगों के उन वातावरणों की आवाजाही की अनुमति दी जा सके जो पहले समर्थित नहीं थे।

OWIN से पहले, ASP.NET एप्लिकेशन का निर्माण करते समय, आप System.Webअसेंबली पर भारी निर्भरता के कारण स्वाभाविक रूप से IIS के लिए बाध्य थे ।

System.Web कुछ ऐसा है जो एएसपी (नॉन .NET संस्करण) के बाद से अस्तित्व में है और आंतरिक रूप से कई चीजें हैं जिनकी आपको आवश्यकता भी नहीं हो सकती है (जैसे कि वेब फ़ॉर्म या URL प्राधिकरण), जो डिफ़ॉल्ट रूप से सभी हर अनुरोध पर चलते हैं, इस प्रकार संसाधनों का उपभोग करते हैं और एएसपी बनाते हैं। उदाहरण के लिए Node.js जैसे अपने समकक्षों की तुलना में सामान्य रूप से धीमी गति में .NET अनुप्रयोग।

OWIN में खुद कोई टूल, लाइब्रेरी या कुछ और नहीं है। यह सिर्फ एक विनिर्देश है।

दूसरी ओर कटाना, एक पूरी तरह से विकसित ढांचा है जो वर्तमान ASP.NET चौखटे और OWIN विनिर्देश के बीच एक पुल बनाने के लिए बनाया गया है। फिलहाल, कटाना ने निम्नलिखित ASP.NET फ्रेमवर्क को OWIN में सफलतापूर्वक अनुकूलित किया है:

  • वेब एपीआई
  • सिग्नल आर

ASP.NET MVC और वेब फॉर्म अभी भी System.Web के माध्यम से विशेष रूप से चल रहे हैं, और लंबे समय में उन लोगों को भी डिकॉय करने की योजना है।

दूसरी ओर, IIS वेब सर्वर के लिए एक अच्छा, संसाधनपूर्ण मेजबान है। IIS का उपयोग करके संपूर्ण ASP.NET प्रदर्शन समस्याएँ System.Webकेवल गहरी जड़ें हैं । हाल के समय तक, जब आप यह तय करेंगे कि आप अपने वेब सर्वर की मेजबानी कैसे करेंगे, तो आपके पास दो विकल्प थे:

  • आईआईएस
  • स्व होस्ट

इसलिए यदि आप एक प्रदर्शन चाहते हैं, तो आप एक स्व-होस्ट विकल्प के लिए जाएंगे। यदि आप IIS द्वारा प्रदान की जाने वाली कई आउट-ऑफ-द-बॉक्स सुविधाएँ चाहते हैं, तो आप IIS के लिए जाएंगे, लेकिन आप प्रदर्शन पर हार जाएंगे।

अब, एक 3 विकल्प है, एक Microsoft पुस्तकालय जिसका नाम Helios (वर्तमान कोडनेम) है जो System.Webरास्ते से हटाने का इरादा रखता है , और आपको बिना किसी अनावश्यक पुस्तकालयों या मॉड्यूल के बिना अधिक "क्लीनर" तरीके से IIS का उपयोग करने की अनुमति देता है। Helios अब पूर्व-रिलीज़ संस्करण में है, और इसे Microsoft उत्पाद को पूरी तरह से समर्थित बनाने के लिए अधिक सामुदायिक फ़ीडबैक की प्रतीक्षा कर रहा है।

आशा है कि यह स्पष्टीकरण आपके लिए बेहतर चीजों को स्पष्ट करता है।

EDIT (सितम्बर 2014):

ASP.NET vNext विकास में होने के साथ, कटाना धीरे-धीरे सेवानिवृत्त हो रहा है। संस्करण 3.0 सबसे अधिक संभावना है कि स्टैंडअलोन ढांचे के रूप में कटाना की आखिरी बड़ी रिलीज होगी।

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

vNext कटाना का उत्तराधिकारी है (यही वजह है कि वे इतने मिलते-जुलते दिखते हैं)। सिस्टम स्टैब से और वेब स्टैक के लिए अधिक मॉड्यूलर घटकों के लिए कटाना ब्रेक की शुरुआत थी। आप vNext को उस काम की निरंतरता के रूप में देख सकते हैं लेकिन बहुत आगे जा रहे हैं (नया CLR, नया प्रोजेक्ट सिस्टम, नया http अमूर्त)।

कटाना में आज जो कुछ भी मौजूद है, वह इसे vNext में बदल देगा।

EDIT (फरवरी 2015):

ASP.NET vNext को अब ASP.NET 5 के रूप में जाना जाता है और इसे .NET Core 5. के शीर्ष पर बनाया जाएगा। .NET Core 5, .NET फ्रेमवर्क का हल्का फैक्टरेड संस्करण है, जिसे ASP.NET 5 और .NET नेटिव के लक्ष्यों को समर्थन देने के लिए डिज़ाइन किया गया है। । हालाँकि, ASP.NET 5 को .NET फ्रेमवर्क 4.6 द्वारा समर्थित किया जाएगा, जो .NET .NET 5 के साथ एक साथ उपलब्ध होना चाहिए। ASP.NET 5 और .NET कोर 5 दोनों को MIT के तहत लाइसेंस प्राप्त होगा और सामुदायिक योगदान को स्वीकार करेगा।

EDIT (मई 2015):

इसके अतिरिक्त, ASP.NET वेब एपीआई ब्रांड को बंद कर दिया जाएगा, हालांकि यह प्रौद्योगिकी नए ASP.NET MVC 6. के लिए आधार होगा। पिछले ASP.NET MVC संस्करणों को IHttpHandler, एक इंटरफ़ेस में लागू करके बनाया गया था System.Web। ASP.NET MVC 6 उस निर्भरता को हटाता है, जो विभिन्न प्लेटफार्मों और वेब सर्वरों को पोर्टेबल बनाता है।

EDIT (मई 2016):

ASP.NET 5 का आधिकारिक तौर पर नाम बदलकर ASP.NET कोर शुरू कर दिया जाएगा जो रिलीज़ कैंडिडेट 2 से शुरू होगा जो जल्द ही रिलीज़ होने वाला है। सेम एंटिटी फ्रेमवर्क 7 के लिए आवेदन करेगा, जिसका नाम बदलकर एंटिटी फ्रेमवर्क कोर किया जाएगा। आधिकारिक घोषणा और इसके पीछे के कारणों के बारे में अधिक जानकारी स्कॉट हैंसेलमैन के ब्लॉग पोस्ट पर पाई जा सकती है: ASP.NET 5 मृत है - ASP.NET Core 1.0 और .NET Core 1.0 का परिचय

EDIT (मई 2016):

रिलीज़ कैंडिडेट 2 के रिलीज के साथ, ASP.NET Core को संशोधित किया गया है, ताकि भविष्य के वेब ऐप वास्तव में HTTP अनुरोधों को संसाधित करने के लिए .NET .NET कंसोल ऐप्स सेटअप हों । यह अवधारणा ASP.NET Core को और अधिक संरेखित करती है, जिसे Microsoft ने माइक्रोसॉफ़्ट आर्किटेक्चर समर्थन और Azure सेवा फैब्रिक के माध्यम से इसके कार्यान्वयन के साथ संरेखित किया है। आधिकारिक ब्लॉग पोस्ट पर अधिक जानकारी प्राप्त की जा सकती है: ASP.NET Core RC2 की घोषणा


2
@ebramtharwat अब एक साल बाद, यह हेलिओस की तरह नहीं दिखता है
एंड्रयू सविनाख

1
आपने उल्लेख किया है कि कटाना v3 सबसे प्रमुख रूप से अंतिम रिलीज़ होगी, इसलिए आगे बढ़ते हुए, कटाना को बदलने के लिए किस रूपरेखा का उपयोग किया जाएगा?
विंसेंट

2
कटाना की विशेषताएं ASP.NET में एकीकृत की गई हैं। कटान पिछड़े संगतता के लिए मौजूद रहेगा।
एडमिर तुज़ोविक

2
@ AdmirTuzović: शानदार जवाब। मई 2016 से जोड़ने के लिए कोई और अपडेट?
इग्बी लार्जमैन

2
बाद के संपादन के साथ प्रारंभिक उत्तर संक्रमण को बहुत अच्छी तरह से समझाता है। प्रयास करने के लिए धन्यवाद।
सांग सूतक

71

अगर मुझे अपने लिए OWIN को परिभाषित करना है, तो यह होगा: ".NET पर आने वाले रूबी और Node.js वेब देव समुदायों से सर्वश्रेष्ठ विचार।"

लेकिन यह किसी भी ASP.NET डेवलपर की मदद नहीं करेगा। मेरी अपनी परिभाषा कुछ इस तरह होगी:

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

  1. OWIN एक इंटरफ़ेस विनिर्देश है। यह IIS से एक वेब एप्लिकेशन को डिकॉय करता है।

  2. यदि आप तैयार घटकों (जो कि कटाना है) का उपयोग कर रहे हैं, तो पुराने ASP.NET की तुलना में एप्लिकेशन कार्यक्षमता के कुछ हिस्सों को लागू करना बहुत आसान है। तृतीय-पक्ष पहचान प्रदाताओं (फेसबुक, ट्विटर) के साथ प्रमाणीकरण इसका एक उदाहरण है।

  3. ओविन अनिवार्य रूप से सर्वोत्तम प्रथाओं का एक संग्रह है, जो वेब विकास समुदायों में सिद्ध हुए हैं। यह वेब ऐप्स को लागू करने का एक तरीका दिखाता है जो कि एक्स्टेंसिबिलिटी के लिए बहुत खुला है। जैसा कि प्रत्येक वेब डेवलपर को लगातार नई तकनीकों के अत्याधुनिक पर होना चाहिए, यह संपूर्ण वेब विकास समुदाय के साथ अद्यतित रहने का एक तरीका है, न कि केवल .NET। यदि आप OWIN सीखते हैं, तो एक्सप्रेस के लिए नोड की तरह अन्य वेब डेवलपमेंट फ्रेमवर्क सीखना आसान होगा। रुबी के लिए नोड्स या रैक, क्योंकि वे जो अभ्यास करते हैं, वे समान हैं।

1
यह लेख OWIN / katana: asp.net/aspnet/overview/owin-and-katana/… द्वारा हल की गई ऐतिहासिक समस्याओं का पता लगाने में मदद कर सकता है । कहा कि केवल OWIN होस्ट: owin.org/#projects पर अभी इन रूपरेखाओं का समर्थन किया जाता है । यदि आपका ऐप इनमें से किसी एप्लिकेशन फ्रेमवर्क का उपयोग करता है तो इसे OWIN पर होस्ट किया जा सकता है।
प्रभुराज

क्या आप ब्राउज़र से आने वाले अनुरोधों के क्रम को प्रतिक्रिया के बिंदु पर पोस्ट कर सकते हैं जब मैं उल्लूहोस्टे। Exe का उपयोग करते समय ब्राउज़र को वापस करता हूं। मुझे इस विषय में कोई दस्तावेज़ नहीं मिला।
सरवनन

2
अंक 1 और 2 भ्रामक हैं, OWIN अपने आप में कुछ भी प्रतिस्थापित नहीं कर सकता है। बिंदु 4 की तरह, यह सिर्फ एक विनिर्देश है जिसे किसी भी तरह कार्यान्वयन की आवश्यकता है, माइक्रोसॉफ्ट द्वारा अब तक कटाना और हेलियोस द्वारा संदर्भ कार्यान्वयन।
मणि गंधम

Ruby और Node.js के वेब देव समुदायों से सर्वश्रेष्ठ विचार, .NET पर आ रहे हैं .... u pls कुछ उन लोगों की सूची बना सकते हैं
Lakshay

1
मध्यस्थ। होस्टिंग वातावरण से एप्लिकेशन को डिक्गोप्लेबल बनाते हुए उन्हें प्लग इन किया जा सकता है।
स्लावो

59

मैं इसे व्यावहारिक दृष्टिकोण से कवर करने का प्रयास करूंगा।

कटाना Microsoft में OWIN को लागू करने का प्रोजेक्ट नाम है

वास्तव में ओविन क्या है और यह किन समस्याओं को हल करता है (सरल शब्दों में)। इसका IIS से क्या संबंध है? OWIN ( ओपन वेब इंटरफ़ेस .NET के लिए ) एक मानक ( OWIN स्पेसिफिकेशन ) है और कटाना .NET लाइब्रेरी है, आप यहाँ से nuget प्राप्त कर सकते हैं । OWIN और कटाना वेब पर कुछ हद तक पर्याय बन गए।
OWIN से पहले आपका एकमात्र विकल्प IISOWIN के साथ था आप वेब सर्वर के रूप में किसी भी अन्य एप्लिकेशन (जिसमें प्रवेश बिंदु है) का उपयोग कर सकते हैं।

क्या OWIN IIS की जगह लेता है? यदि नहीं, तो किन परिस्थितियों में ओविन सबसे उपयुक्त है?
कोई यह आईआईएस को प्रतिस्थापित नहीं करता है, तो आप Owin का उपयोग करें और IIS सकता है Microsoft.Owin.Host.SystemWebकि के लिए nuget । यदि आप IIS में संभाले हुए तरीके को अनुकूलित करना / बदलना चाहते हैं, या आप अपना कस्टम वेब सर्वर बनाना चाहते हैं, तो आइए विंडोज फॉर्म्स एप्लिकेशन कहते हैं।

OWIN मेरी दैनिक कार्य परियोजनाओं में मेरी मदद कैसे कर सकता है?
चूंकि आपके वेब सर्वर को अब IIS (विंडोज) पर चलने की आवश्यकता नहीं है, इसलिए यह आपके सर्वर की लागत को कम कर सकता है (विंडोज सर्वर यूनिक्स आधारित लोगों की तुलना में अधिक महंगे हैं, और आप इसे लिनक्स में मोनो के तहत कंसोल एप्लीकेशन पर चला सकते हैं)।

स्व-सुधार परियोजनाओं में ओविन कैसे मेरी मदद कर सकता है?
लर्निंग Microsoft.Owin(और अन्य संबंधित OWIN लाइब्रेरी) क्लाइंट और वेब सर्वर के बीच HTTP संचार कैसे काम करता है, इस बारे में आपके ज्ञान में सुधार करेगा।

अच्छा पढ़ें अगर आप और अधिक समझना चाहते हैं कि कटाना और ओविन क्या है।


6
अच्छी तरह से किया है और स्पर्शरेखा लेन नीचे उतरने के बजाय सीधे पोस्ट किए गए सवालों का जवाब देने के लिए धन्यवाद।
Dav

यदि हम हमेशा होस्टिंग के लिए Microsoft IIS सक्षम सर्वर का उपयोग करते हैं तो क्या होगा? ऐसा प्रतीत होता है कि नए WebApi2 टेम्प्लेट में OWIN डिफ़ॉल्ट है। क्या मुझे इसे केवल संदर्भ में होस्ट करने की योजना के रूप में एक संदर्भ के रूप में हटा देना चाहिए?
टेक टर्टल

@TechTurtle Hi Tech, मैं इसे एक अलग प्रश्न के रूप में पोस्ट करने की सलाह दूंगा।
माटस वैटकेविसियस

बहुत स्पष्ट व्याख्या। उपयोगी जानकारी के लिए धन्यवाद
उत्तम

9

OWIN क्या है?

OWIN .NET के लिए ओपन वेब इंटरफेस के लिए खड़ा है। OWIN एक विनिर्देश है जो बताता है कि कैसे वेब विकास फ्रेमवर्क जैसे ASP.NET MVC को वेब सर्वर के साथ बातचीत करनी चाहिए। OWIN का लक्ष्य एक अमूर्त परत को शुरू करके वेब सर्वर से वेब अनुप्रयोगों को डिकूप करना है। इस तरह का अमूर्त आपको उन सभी वेब सर्वरों पर समान एप्लिकेशन चलाने में सक्षम बनाता है जो OWIN का समर्थन करते हैं। इसके अतिरिक्त, यह समग्र प्रणाली को सरल बनाता है क्योंकि अमूर्त परत अनुप्रयोगों को होस्ट करने के लिए एक हल्का बुनियादी ढांचा प्रदान कर सकती है। IIS वेब अनुप्रयोगों के लिए सुविधाओं का एक समृद्ध सेट प्रदान करता है। हालाँकि, वेब एप्लिकेशन को इन सभी विशेषताओं की आवश्यकता नहीं हो सकती है। यह उनके लिए न्यूनतम HTTP प्रसंस्करण क्षमता रखने के लिए पर्याप्त हो सकता है। OWIN संगत होस्ट इन अनुप्रयोगों के लिए इस तरह के एक होस्टिंग वातावरण प्रदान कर सकता है। इसके अलावा, आप अनुरोध प्रसंस्करण के दौरान उपयोग किए जाने वाले मॉड्यूल की एक पाइपलाइन को परिभाषित कर सकते हैं। एक OWIN पाइपलाइन OWIN संगत घटकों की एक श्रृंखला है जिसके माध्यम से एक अनुरोध गुजरता है।

कटाना क्या है?

कटाना Microsoft द्वारा OWIN विनिर्देशों का उपयोग करके निर्मित घटकों का एक समूह है। इनमें से कुछ घटकों में वेब एपीआई, एएसपी.नेट आइडेंटिटी और सिग्नलआर शामिल हैं।

ऊपर कोडगुरु लेख से निकाला गया है: http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.