Wann sollte ich OWIN Katana?
Ich bin neu in OWIN und Katana. Ich weiß wirklich nicht, warum ich verwenden soll OWIN, während ich verwenden kann IIS
. Zur Vereinfachung, meine Frage ist: Was verliere ich, wenn ich direkt lernen OWIN und verwenden Sie IIS für meine Webseiten?
Ich mal gegoogelt aber es ist nicht eine einfache Erklärung. Es gibt einige Informationen,hieraber Sie benutzen einige jargon Ausdrücke, so kann ich nicht verstehen.
InformationsquelleAutor der Frage Seyed Morteza Mousavi | 2014-01-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
In asp.net WebApi v2, der OWIN-pipeline wird zum Standard. Es wird irgendwann der standard sein-pipeline unter allen asp.net Projekt.
Kann ich nicht besser als das, was hier geschrieben wird : http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
Abschnitt "Open Web Interface for .NET (OWIN)" erklärt perfekt die Ziele von OWIN.
Ohne OWIN, die asp.net bits sind gekoppelt an die Art und Weise IIS kommuniziert mit der Anwendung. OWIN abstracts-web-Server und framework-Komponenten. Das bedeutet, dass Ihre Anwendung code wird jetzt bewusst sein, der OWIN-Schnittstelle, aber nicht der webserver, welcher die Anfrage.
Im Gegenzug können die Anwendungen leichter portiert zwischen hosts und potenziell gesamten Plattformen/Betriebssysteme. Zum Beispiel die Möglichkeit, als host für eine Anwendung in einer Konsole oder einem beliebigen Prozess ermöglicht eine Mono-zu-host ohne Anstrengungen... (Raspberry Pi jedermann)
Der zweite Aspekt ist, dass es funktioniert wie eine pipeline.
Können Sie stecken alle middlewares (und so viele wie Sie möchten), die zwischen dem webserver und Ihrer Anwendung.
Dies ermöglicht weitere modulare Lösungen. Sie entwickeln redistributable-middlewares, die einen Einfluss auf die request/response zu/von Ihrer Anwendung, aber halten Sie diese Module getrennt von den Anwendungs-code.
Überzeugen Sie sich selbst von den Vorteilen dieses modularen Ansatz, werfen Sie einen Blick auf die nuget-Pakete für OWIN : http://www.nuget.org/packages?q=owin
Viele dieser Pakete wurden zuvor Kern asp.net Funktionalität und extrahiert wurden als middleware.
Zum Beispiel, hinzufügen der Unterstützung, um eine Anmeldung mit verschiedenen OAuth-Provider wird eine Infrastruktur betreffen (eine middleware) und müssen nicht Teil Ihrer Anwendung code mehr :
...
Oder wenn Sie wollen, um automatisch ersetzen Sie alle Bilder von Ihrer website durch die süße Katze Bilder, können Sie tun, transparent :
https://github.com/serbrech/Owin.Catify
EDIT : Es ist nun ein nuget-Paket : Owin.Catify!
InformationsquelleAutor der Antwort Stéphane
Ja, das ist richtig. OWIN ist ein Schnittstelle und Katana ist ein Umsetzung der OWIN-Schnittstelle Microsoft. Deshalb hören wir diese 2 Worte (OWIN /KATANA) zusammen und manytimes wir verwirrt, zwischen den Unterschied zwischen diesen 2 Begriffen. Ja, Katana ist Microsofts OWIN-Schnittstelle. Sagen, es ist eine andere Firma namens BIG-BOSS, der wollte, zu erstellen Sie Ihre eigene Implementierung von OWIN, die Sie tun können, und deren Umsetzung als 'BATANA' und werben Sätze wie OWIN /BATANA.
So, warum OWIN !!!
Denken über ein Land, wo das einzige Fahrzeug verfügbar für Bewegung ist ein LKW. Sonst nichts. Wenn Sie wollen ein Fahrzeug kaufen, würden Sie kaufen, LKW. Naja, das dienen gut, aber die Menschen begannen zu realisieren, dass Sie nicht brauchen LKW die ganze Zeit, vor allem, wenn Sie gehen wollen, einen Film zu sehen oder kaufen Sie die Milch, das fahren eines schweren LKW, die nicht nur die Kosten der hohen Kraftstoffpreise, aber auch stress auf der Fahrt. Aber ja, wenn Sie wollen, zu tragen, viel schweres Zeug, LKW dient dem Zweck sehr gut.
Dann, die Regierung des Landes, kam mit einer Spezifikation für die Automobilhersteller. Die Spezifikation ist wie folgt:
Also, basierend auf diese Vorgaben, kann jeder machen, Fahrzeug entsprechend der unterschiedlichen Bedürfnisse und Sie können den Namen für Ihr Fahrzeug entsprechend. Daher, Limousine, Pickup, SUV, VAN, ..etc.. alle Art von Fahrzeug zeigte sich in den Markt. Wenn jemand nicht brauchen, um schwere Zeug tragen alle die Zeit, sondern benötigt ein Fahrzeug nur für die Fahrt zum Arbeitsplatz, kann er/Sie den Kauf einer kleinen Limousine. Kann jemand kaufen, SUV, wenn er braucht etwas mehr Kraft.
Basierend auf dem obigen Beispiel, können wir sagen, dass unser ASP.NET Web-Anwendung verwendet die System.Web Montage, die stark belastet sind (wie ein LKW) und wenn wir wollen, um eine kleine Web-Anwendung, wo unser Zweck ist nur, zu dienen einige Dateien basierend auf einer kleinen Reihe von Anforderungen, die wir gebunden sind, zu verwenden, dass schwere System.Web-Montage (LKW). Nun, OWIN zeigt. OWIN ist ein Satz von Spezifikationen (wir können es nennen-Schnittstelle) definiert einen Server. Basierend auf dieser Spezifikation, jemand (wie ein Fahrzeug maker) machen kann, verschiedene Arten von Servern auf spezifische problem-Domänen /Anwendung benötigt. Microsoft erstellt Ihre eigene Implementierung für OWIN namens Katana in der gleichen Weise, die dazu dienen können Web-API. Als WebAPI ist eine leichtgewichtige Technologie, die nicht brauchen die volle geblasen System.Web-Dingen, die ein geringes Gewicht-Server-Implementierung (wie Katana), steigern die performance stark, wenn Sie Web-Api gehostet Katana.
Nun, wenn Sie Fragen, " brauche ich es' ? Die Antwort ist, "Es hängt von Ihrem Bedürfnis nach der Leistung'. Wenn Sie nichts dagegen haben, fahren Sie Ihren LKW sogar für einen Film zu sehen, dann vielleicht brauchen Sie nicht OWIN. Aber wenn Sie glauben, dass, Sie ein geringes Gewicht Limousine ist alles, was Sie brauchen, zu fahren, in eine Stadt, in kleiner Entfernung beobachten Film..etc.. ja, können Sie überprüfen, was Implementierungen von OWIN auf dem Markt verfügbar. Katana ist eine der Implementierungen von OWIN, daher können Sie überprüfen, welche Katana bietet. Nicht nur, Katana, wenn andere Unternehmen implementiert OWIN nach bestimmten Domäne (zum Beispiel ein server für Medizinische Geräte, die download der aktuellen Medizin-Informationen), und wenn Sie ein Arzt, vielleicht können Sie überprüfen, dass die Umsetzung von OWIN. Darüber hinaus können Sie selbst erstellen Sie Ihre eigene Implementierung von OWIN Ausrichtung auf eine bestimmte Nische.
In Bezug auf web-Anwendungen, wenn Sie eine einfache Web-developer, Entwicklung von benutzerdefinierten Websites für Ihre Kunden, vielleicht, Sie müssen nicht sorgen zu machen über die benutzerdefinierte Implementierung OWINs, da IIS dienen Sie in einer ausgewogenen Weise. Wenn Sie bauen eine Web-API-Projekt, erhalten Sie Katana-basierte Vorlage bereit, die aus Visual Studio -> Neues Projekt, so dass Sie nicht haben, um sorgen über etwas anderes als zu lernen, Katana-spezifischen Techniken. In diesem moment, Katana ist noch nicht ausgereift genug, um vollständig ersetzen die Notwendigkeit für IIS ASP.NET MVC, aber vielleicht in der Zukunft es wird.
Dann, Wenn ich vielleicht schreiben müssen, meine eigenen OWIN-Implementierung ?
Antwort: Na ja, sagen wir beispielsweise, Sie haben eine Windows-Anwendung, die ausgeführt werden soll als server im hintergrund und hören Sie eine port-Nummer ist XXXX. Ihr server antwortet nur auf einige Satz-Anfragen wie diese:
Das ist alles. Und sonst nichts. Also, warum würden Sie brauchen eine vollständige IIS-web-server für diese kleine Aufgabe? Sie können erstellen Sie Ihre eigenen OWIN-Implementierung in diesem Fall. (Vielleicht verwenden Sie Katana)
Ok, ich habe verstanden, dass, wenn ich das machen will ein ASP.NET MVC-website, ich habe nicht die option zu ersetzen, IIS, warum sollte ich dann wissen müssen über Katana in diesem moment ?
Antwort: obwohl Katana ist nicht reif genug, um zu ersetzen die Notwendigkeit des IIS, so dass Sie können Ihre ASP.NET MVC-website direkt auf Katana, aber Katana implementiert, viele Coole Schnittstellen von OWIN, so dass Sie können nehmen Sie den Vorteil der Verwendung dieser Funktionen nebeneinander. Zum Beispiel, so dass Ihre Benutzer login mit Facebook, Google, Twitter etc war nicht sehr einfach vor. Katana bietet Ihnen viele Haken (middle-ware), so dass Sie können lassen Sie Katana kümmern externen Social-Media-basierte Authentifizierung leicht ohne schreiben von Sanitär-code. Es gibt viele andere Vorteile der Verwendung Katana, dass Sie möglicherweise finden Sie heraus, wenn Sie beginnen, diese Technologie zu nutzen.
InformationsquelleAutor der Antwort Emran Hussain
Einer einfacheren version, die Antwort ist, dass das Katana ist gong vollständig ersetzen System.Web-Montage und die alten ASP.NET pipeline, die Ihnen sowohl eine bessere Flexibilität (Einsatz in mehr Szenarien und verwenden Sie nur die Teile, die Sie mögen) und Leistung.
Also sollte jeder zusehen, seine evolution jetzt und bereit sein, zu wechseln, wenn es endlich fertig ist.
Unten ist ein Diagramm, das ich machte, um füllen Sie die details der Microsoft schlägt in dieser Artikel.
OWIN ist ein solcher standard, die es ermöglichen, application frameworks laufen auf und vergessen Sie alles, was unter ihm. Auf der anderen Seite, OWIN selbst nutzt verschiedene host-Adapter, um sicherzustellen, dass Sie sprechen können, um die zugrunde liegenden web-Server (IIS und viele andere).
Ich arbeite jetzt mit der Jexus web-server Autor zu untersuchen, wie wir schreiben, ein host-adapter zu überbrücken OWIN/Katana und Jexus. Wir sind wirklich froh zu erfahren, dass OWIN ist flexibel und leicht anpassbar.
Referenz:
http://blog.lextudio.com/2014/06/why-owin-matters-a-lot-for-asp-net-developers/
InformationsquelleAutor der Antwort Lex Li
OWIN dient zur Entkopplung von web-Servern aus dem frameworks-Sie arbeiten unter. Es kann machen die Anwendungen leicht und tragbar für die Misch-frameworks und Server.
Und Katana ist Microsofts OWIN-Komponenten.
Seit letzten Jahren macht Microsoft web tools agiler und reaktionsfähiger als Ihr plan ist es, immer voran. Für ein Beispiel, die Entwicklung von ASP.Net MVC und ASP.Net Web-API. Sie sind nicht abhängig von System.Web-dll, das ist eine große Belastung, Sie fühlen sich jetzt, denke ich. Vorteil ist, beide Entwicklungen-fixes bereitgestellt werden können, die auf eine fristgerechte Art und Weise und der Zyklus ist schneller als je zuvor. Auch jetzt können Entwickler die Bereitstellung dieser Anwendungen, die auf benutzerdefinierten OWIN-hosts oder Katana, die eine Referenz der OWIN-Implementierung.
Was ist der Punkt?
Microsoft hat ein Projekt, das eine leichte OWIN basiert web-host auf der Oberseite der IIS, genannt `Helios. Das Ziel ist, zu vermeiden ASP.NET/IIS Beziehung durch die Bereitstellung von einigen kleinen, unabhängigen Komponenten, die verwendet werden können, zu installieren und zu verwalten, die unabhängig voneinander laufen auf einem web-host, die die OWIN-Spezifikationen.
Einer der zentralen Gründe ist die performance-Faktor. Helios wird in der Lage sein zu erreichen, 2x-3x mehr Durchsatz als standard ASP.Net -Anwendung. In Bezug auf Speicherverbrauch, Helios ist viel besser als System.Web-dll. In einem genommen benchmark Helios-Architektur erlaubt eine Beispiel-Anwendung zu erreichen, 50000 gleichzeitige Anfragen, mit ungefähr 1 GB weniger Aufwand zu vergleichen, um ein standard ASP.Net -Anwendung.
InformationsquelleAutor der Antwort nznoor
OWIN ist eine Abstraktion zwischen der Webanwendung und der hosting-Plattform. Wenn Sie schreiben Ihre web-Anwendung mit OWIN sind Sie nicht gebunden, die IIS verwenden, können Sie einen anderen host, wenn Sie mögen.
Sie gefragt, warum OWIN eher als der IIS, aber diese sind keine alternativen zueinander. OWIN sitzt zwischen IIS und Ihrer Anwendung, so dass Sie wechseln IIS ohne umschreiben Ihre Anwendung.
Vielleicht möchten Sie auch zu prüfen, diese Seite https://github.com/Bikeman868/OwinFramework/wiki/OWIN
InformationsquelleAutor der Antwort bikeman868