İngilizce dilinde oku

Aracılığıyla paylaş


Windows Communication Foundation (WCF) geliştiricileri için gRPC

Not

Bu, bu makalenin en son sürümü değildir. Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.

Uyarı

ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.

Önemli

Bu bilgiler, ticari olarak piyasaya sürülmeden önce önemli ölçüde değiştirilebilen bir yayın öncesi ürünle ilgilidir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.

Geçerli sürüm için bu makalenin .NET 9 sürümüne bakın.

Bu makalede, ASP.NET Core gRPC'nin modern mimarilere ve platformlara geçiş yapmak isteyen Windows Communication Foundation (WCF) geliştiricileri için neden uygun olduğu özetlenmektedir.

WCF ile karşılaştırma

Uygulama ve yaklaşım gRPC için farklı olsa da, gRPC ile hizmet geliştirme ve kullanma deneyimi WCF geliştiricileri için sezgisel olmalıdır. WCF ve gRPC, aynı hedeflere sahip RPC (uzaktan yordam çağrısı) çerçeveleridir:

  • İstemci ve sunucu aynı platformdaymiş gibi kod yapmayı mümkün hale getirin.
  • Basitleştirilmiş bir taşınabilir ağ API'sini sağlayın.

Her iki platform da bir arabirim bildirme ve uygulama gereksinimini paylaşır, ancak arabirimi bildirme işlemi farklıdır. gRPC'nin desteklediği birçok RPC çağrısı türü WCF hizmetleri için kullanılabilir bağlamalarla iyi eşler. Daha fazla bilgi ve örnek için bkz . WCF çözümünü gRPC'ye geçirme.

gRPC'nin avantajları

gRPC aşağıdaki nedenlerle diğer yaklaşımlardan daha iyi bir çerçeve sağlar.

Performans

gRPC HTTP/2 kullanır. HTTP/1.1, HTTP/2'nin aksine:

  • Daha küçük ve daha hızlı bir ikili protokoldür.
  • Bilgisayarların ayrıştırma için daha verimlidir.
  • Tek bir bağlantı üzerinden isteklerin çoğullamasını destekler. Çoğullama, birbirini engelleyen istekler olmadan birden çok isteğin bir bağlantı üzerinden gönderilmesini sağlar. HTTP/1.1'de, engelleme "satır başı (HOL) engelleme" olarak bilinir.

gRPC, iletileri serileştirmek için verimli bir ikili biçim olan Protobuf kullanır. Protobuf iletileri şunlardır:

  • Seri hale getirmek ve seri durumdan çıkarmak için hızlı.
  • Metin tabanlı biçimlerden daha az bant genişliği kullanın.

gRPC, bant genişliği kısıtlamaları olan mobil cihazlar ve ağlar için iyi bir çözümdür.

Birlikte çalışabilirlik

.NET, Java, Python, Go, C++, Node.js, Swift, Dart, Ruby ve PHP gibi tüm büyük programlama dilleri ve platformları için gRPC araçları ve kitaplıkları vardır. Protobuf ikili tel biçimi ve her platform için verimli kod oluşturma sayesinde geliştiriciler platformlar arası, performanslı uygulamalar oluşturabilir.

Kullanılabilirlik ve üretkenlik

gRPC kapsamlı bir RPC çözümüdür. Birden çok dil ve platformda tutarlı bir şekilde çalışır. Ayrıca, ortak kodun büyük bölümü otomatik olarak oluşturulan mükemmel araçlar sağlar. WCF gibi gRPC de iletileri ve kesin olarak yazılan bir istemciyi otomatik olarak oluşturur. İş mantığına odaklanmak için geliştirici süresi serbesttir.

Akışlar

gRPC, WCF'nin tam çift yönlü hizmetlerine benzer işlevler sağlayan tam çift yönlü akışa sahiptir. gRPC akışı normal İnternet bağlantıları, yük dengeleyiciler ve hizmet ağları üzerinden çalışabilir.

Son tarihler, zaman aşımları ve iptal etme

gRPC, istemcilerin RPC'nin bitmesi için en uzun süreyi belirtmesine olanak tanır. Belirtilen son tarih aşılırsa, sunucu işlemi istemciden bağımsız olarak iptal edebilir. Son tarihler ve iptaller, kaynak kullanım sınırlarının uygulanmasına yardımcı olmak için sonraki gRPC çağrıları aracılığıyla yayılabilir. İstemciler, son tarih aşıldığında veya gerekirse daha erken olduğunda işlemleri durdurabilir. Örneğin, istemciler bir kullanıcı etkileşimi nedeniyle işlemleri durdurabilir.

Güvenlik

gRPC, istemci ile sunucu arasında uçtan uca şifreli bir bağlantı sağlamak için TLS ve HTTP/2 kullanabilir. İstemci sertifikası kimlik doğrulaması desteği, istemci ve sunucu arasındaki güvenliği ve güveni daha da artırır.

WCF için .NET Core ve .NET 5'e geçiş yolu olarak gRPC

.NET Core ve .NET 5, Microsoft'un çeşitli platformlarda hizmet sunmak isteyen geliştiricilere uzaktan iletişim çözümleri sunma biçiminde bir değişime işaret eder. .NET Core ve .NET 5, WCF hizmetlerini çağırmayı destekler, ancak WCF barındırma için sunucu tarafı desteği sunmaz.

WCF uygulamalarını modernleştirmek için önerilen iki yol vardır:

  • gRPC modern teknolojiler üzerine kurulmuştur ve RPC uygulamaları için geliştirici topluluğunun en popüler tercihi olarak ortaya çıkmıştır. .NET Core 3.0'dan başlayarak, modern .NET platformları gRPC için mükemmel desteğe sahiptir. WCF hizmetlerini gRPC kullanacak şekilde geçirmek, modern uygulamalarda gereken RPC özelliklerini, performansını ve birlikte çalışabilirliği sağlamaya yardımcı olur.

  • CoreWCF , .NET Core ve .NET 5'e WCF hizmetlerini barındırma desteği sunmak için bir topluluk çalışmasıdır. Bir önizleme sürümü mevcuttur ve proje üretime hazır hale gelmek için çalışmaktadır. CoreWCF yalnızca WCF özelliklerinin bir alt kümesini destekler ve bunu kullanmak için geçirilen .NET Framework uygulamalarının başarılı olması için kod değişiklikleri ve test gerekir. Bir uygulamanın WCF hizmetlerini çağıran mevcut istemcilerle uyumluluğu koruması gerekiyorsa CoreWCF iyi bir seçimdir.

Kullanmaya başlayın

WCF geliştiricileri için ASP.NET Core'da gRPC hizmetleri oluşturma hakkında ayrıntılı yönergeler için bkz . WCF Geliştiricileri için Core gRPC ASP.NET