2016-09-10 41 views
11

Anladığım kadarıyla, ASP.NET Core, kendi özgün ara katman yazılımına ek olarak OWIN ara katman yazılımını (app.UseOwin() aracılığıyla) destekler.ASP.NET Çekirdek katman yazılımı veya OWIN ara katman yazılımı?

ASP.NET Çekirdek katman yazılımı ve OWIN katman yazılımı arasındaki fark nedir?

Yeni bir ara katman yazılımı tasarlarken, onu ASP.NET Çekirdek katman yazılımı veya bir OWIN ara katman yazılımı olarak mı tasarlamalıyım?

cevap

7

Sorunuz beni meraklandırdı ve şimdiye kadar öğrendiklerimi paylaşmak istiyorum.

Katana, OWIN özelliklerinin uygulanmasıdır. Katana 3.0 sürümünden sonra, bu teknoloji bugün ASP.NET Core olarak bildiğimiz web yığınında tam entegrasyon olmuştur.

Bu geçiş çok fazla OWIN belirtimlerine benzer kalmıştır. Bazı değişiklikler yapılmış olmasına rağmen. ASP.NET Core'daki mevcut OWIN katman yazılımını kullanmak için OWIN'i isteğe bağlı bir özellik ile destekler ("app.UseOwin()").

Ara katman yazılımı ASP.NET uygulamalarınız ve ASP.NET çekirdek uygulamalarınızla hedeflemek istiyorsanız, OWIN katman yazılımını kullanırdım. ASP.NET Core geliştiricilerine birinci sınıf bir vatandaşlık deneyimi vermek istiyorsanız, bir ASP.NET Core ara katman yazılımı daha "uygun" olarak kabul edilecektir.

ASP.NET Çekirdek katman ve Owin katman arasındaki ilişki hakkında bazı bilgiler burada bulunabilir:

0

anladığım için geldim bu şekilde; ASP.NET Çekirdek katman yazılımı, daha düşük bir seviyede olan OWIN ara katman yazılımından daha yüksek bir seviyededir.

ASP.NET Çekirdek katman yazılımı, kullanabileceğiniz HttpContext içinde geçtiğinizde bir ara katman geliştirmenin çok daha kolay olması avantajına sahiptir. Dezavantajı, geliştirdiğiniz ara yazılımın ASP.NET Core'a bağlı olmasıdır. OWIN IDictionary<string, object> olan bir OWIN ortamı alırsınız. Bunun avantajı, ASP.NET'e bağlı olmaması ve dolayısıyla herhangi bir OWIN sunucusunda (Nowin gibi) çalışabilmesidir. Dezavantajı, OWIN ortamından kendi içeriğinizi oluşturmanız veya OWIN ortam sözlüğünü doğrudan kullanmanız ve tüm OWIN keys ve nesnelerini takip etmeniz gerektiğinden kod yazmanın daha fazla çaba gerektirmesidir.

Düzenleme: OWIN anahtarlarını kendiniz izlemeniz gerekmez, güçlü bir ortam oluşturmak için OwinEnvironment sınıfını kullanabilirsiniz.

var environment = new OwinEnvironment(HttpContext); 
var features = new OwinFeatureCollection(environment); 
+1

İşaret. OwinEnvironment, Microsoft.AspNetCore.Owin'den gelen bir kavramdır ve saf bir OWIN şey değildir. OwinMiddleware gibi bir Katana şey ve saf bir OWIN şey değil. –

İlgili konular