उपरोक्त टिप्पणी के संबंध में, 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 की घोषणा