Sunucu uygulamaları için .NET .NET Framework karşılaştırması

Sunucu tarafı uygulamaları için desteklenen iki .NET uygulaması vardır.

Uygulama Dahil edilen sürümler
.NET .NET Core 1.0 - 3.1, .NET 5 ve sonraki .NET sürümleri.
.NET Framework .NET Framework 1.0 - 4.8

Her ikisi de aynı bileşenlerin çoğunu paylaşır ve ikisi arasında kod paylaşabilirsiniz. Ancak ikisi arasında temel farklılıklar vardır ve seçiminiz neyi başarmak istediğinize bağlıdır. Bu makalede, her biri ne zaman kullanmaya yönelik rehberlik sağlar.

Aşağıdakiler olduğunda sunucu uygulamanız için .NET kullanın:

  • Platformlar arası ihtiyaçlara sahipsiniz.
  • Mikro hizmetleri hedefleyesiniz.
  • Docker kapsayıcılarını kullanıyorsanız.
  • Yüksek performanslı ve ölçeklenebilir sistemlere ihtiyacınız vardır.
  • Uygulama başına yan yana .NET sürümlerine ihtiyacınız vardır.

Sunucu .NET Framework için aşağıdaki gibi bir uygulama kullanın:

  • Uygulamanız şu anda .NET Framework (uygulamanın genişletici yerine genişletebilirsiniz) kullanıyor.
  • Uygulamanız üçüncü taraf kitaplıkları veya .NET NuGet olmayan başka paketler kullanıyor.
  • Uygulamanız .NET .NET Framework olmayan farklı teknolojiler kullanıyor.
  • Uygulamanız .NET'i desteklemez bir platform kullanır.

.NET ne zaman seçli

Aşağıdaki bölümlerde, daha önce belirtilen .NET'i uygulama üzerinden seçme nedenlerinin daha ayrıntılı bir açıklaması .NET Framework.

Platformlar arası ihtiyaçlar

Web veya hizmet uygulamanın Windows, Linux ve macOS gibi birden çok platformda çalışması gerekirse .NET kullanın.

.NET, geliştirme iş istasyonu olarak daha önce bahsedilen işletim sistemlerini destekler. Visual Studio ve macOS için Tümleşik Geliştirme Ortamı (IDE) Windows sağlar. MacOS, Linux ve Visual Studio Code çalışan Visual Studio Code'leri de Windows. Visual Studio Code IntelliSense ve hata ayıklama dahil olmak üzere .NET'i destekler. Sublime, Emacs ve VI gibi üçüncü taraf düzenleyicilerin çoğu .NET ile çalışır. Bu üçüncü taraf düzenleyiciler Omnisharp kullanarak IntelliSense düzenleyicisine sahip olur. Ayrıca, herhangi bir kod düzenleyicisini önler ve desteklenen tüm platformlar için kullanılabilen .NETCLI'sini doğrudan kullanabilirsiniz.

Mikro hizmetler mimarisi

Mikro hizmet mimarisi, hizmet sınırları genelinde teknolojilerin bir karışımına olanak sağlar. Bu teknoloji karışımı, diğer mikro hizmetler veya hizmetlerle birlikte çalışmakta olan yeni mikro hizmetler için .NET'i kademeli olarak benimsemeye olanak sağlar. Örneğin, mikro hizmetleri veya geliştirilen hizmetleri .NET Framework, Java, Ruby veya diğer monolitik teknolojilerle karıştırabilirsiniz.

Kullanılabilir birçok altyapı platformu vardır. Azure Service Fabric, büyük ve karmaşık mikro hizmet sistemleri için tasarlanmıştır. Azure App Service olmayan mikro hizmetler için iyi bir seçenektir. Docker'ı temel alan mikro hizmetler alternatifleri, Kapsayıcılar bölümünde açıklanan her türlü mikro hizmet yaklaşımına uyar. Tüm bu platformlar .NET'i destekler ve mikro hizmetlerinizi barındırmak için ideal hale gelir.

Mikro hizmetler mimarisi hakkında daha fazla bilgi için bkz. .NET Mikro Hizmetleri. Kapsayıcılı .NET Uygulamaları mimarisi.

Kapsayıcılar

Kapsayıcılar genellikle mikro hizmet mimarisiyle birlikte kullanılır. Kapsayıcılar, herhangi bir mimari desene uygun web uygulamalarını veya hizmetlerini kapsayıcılı hale etmek için de kullanılabilir. .NET Framework kapsayıcılarda Windows, ancak .NET'in modülerliği ve hafif doğası, kapsayıcılar için daha iyi bir seçenektir. Kapsayıcı oluştururken ve dağıtırken, .NET ile görüntüsünün boyutu, kapsayıcının boyutuna göre .NET Framework. Platformlar arası olduğundan sunucu uygulamalarını Linux Docker kapsayıcılara dağıtabilirsiniz.

Docker kapsayıcıları kendi Linux veya Windows altyapınız veya Azure Kubernetes Service gibi bir bulut Azure Kubernetes Service. Azure Kubernetes Service bulutta kapsayıcı tabanlı uygulamaları yönetebilir, yönetebilir ve ölçeklendirin.

Yüksek performanslı ve ölçeklenebilir sistemler

Sisteminiz mümkün olan en iyi performansa ve ölçeklenebilirlik seçeneklerine ihtiyaç ASP.NET Core .NET ve ASP.NET Core seçeneklerinizdir. Windows Server ve Linux için yüksek performanslı sunucu çalışma zamanı, ASP.NET Core TechEmpower karşılaştırmalı testlerde en yüksek performanslı web çerçevesini sunar.

Performans ve ölçeklenebilirlik özellikle yüzlerce mikro hizmetin çalışıyor olduğu mikro hizmet mimarileri için kullanılabilir. Sistem ASP.NET Core, çok daha az sayıda sunucu/Sanal Makine (VM) ile çalışır. Azaltılmış sunucular/VM'ler altyapı ve barındırma maliyetlerinden tasarruf sağlar.

Uygulama düzeyi başına yan yana .NET sürümleri

Bağımlılıkları olan uygulamaları .NET'in farklı sürümlerine yüklemek için .NET'i öneririz. Bu uygulama, aynı makinede .NET çalışma zamanının farklı sürümlerinin yan yana yüklemesini destekler. Bu yan yana yükleme, aynı sunucuda her biri kendi .NET sürümünde olan birden çok hizmet sağlar. Ayrıca riskleri de düşürebilir ve uygulama yükseltmeleri ve IT operasyonlarında tasarruf sağlar.

Tek tek yükleme ile yan yana yükleme .NET Framework. Bu bir Windows bileşenidir ve bir makinede aynı anda yalnızca bir sürüm olabilir. Her bir .NET Framework önceki sürümün yerini almaktadır. .NET Framework'nin sonraki bir sürümünü hedef alan yeni bir uygulama yüklürsanız, önceki sürüm değiştirili olduğu için makinede çalıştıran mevcut uygulamaları bozabilirsiniz.

Seçim ne zaman .NET Framework

.NET, yeni uygulamalar ve uygulama desenleri için önemli avantajlar sunar. Ancak .NET Framework senaryolar için doğal seçenek olarak devam eder ve bu nedenle .NET Framework tüm sunucu uygulamaları için .NET ile yer değiştirmez.

Geçerli .NET Framework uygulamaları

Çoğu durumda, mevcut uygulamalarınızı .NET'e geçirmeniz gerek yoktur. Bunun yerine önerilen yaklaşım, mevcut bir uygulamayı genişleten .NET kullanmaktır. Örneğin, uygulamanın içinde yeni bir web hizmeti ASP.NET Core.

Üçüncü taraf kitaplıkları veya NuGet paketleri .NET için kullanılamaz

.NET Standard .NET Core/5+ dahil olmak üzere tüm .NET uygulamaları arasında kod paylaşımını sağlar. .NET Standard 2.0 ile uyumluluk modu, .NET Standard ve .NET projelerinin .NET Framework izin verir. Daha fazla bilgi için bkz. .NET Framework desteği.

Yalnızca kitaplıkların NuGet .NET'te mevcut olmayan teknolojileri .NET Framework durumlarda .NET Standard gerekir.

.NET Framework .NET için kullanılabilir değil

Bazı .NET Framework teknolojileri .NET'te kullanılamaz. Aşağıdaki listede .NET'te buluna en yaygın teknolojiler listelemektedir:

  • ASP.NET Web Forms uygulamalar: ASP.NET Web Forms yalnızca .NET Framework. ASP.NET Core için ASP.NET Web Forms.

  • ASP.NET Web Sayfaları uygulamaları: ASP.NET Web Sayfaları, web sayfalarına ASP.NET Core.

  • WCF hizmetleri uygulaması. .NET'te WCF hizmetlerini tüketen bir WCF istemci kitaplığı olsa bile, WCF sunucu uygulaması şu anda yalnızca .NET Framework.

  • İş akışıyla ilgili hizmetler: Windows Workflow Foundation (WF), İş Akışı Hizmetleri (tek bir hizmette WCF + WF) ve WCF Veri Hizmetleri (eski adıyla "ADO.NET Veri Hizmetleri") yalnızca .NET Framework.

  • Dil desteği: Visual Basic ve F# şu anda .NET'te de desteklene, ancak tüm proje türleri için destek değildir. Desteklenen proje şablonlarının listesi için bkz. Dotnet yeni için şablon seçenekleri.

Daha fazla bilgi için bkz. .NET'.NET Framework kullanılamayan teknolojilerle ilgili bilgi.

Platform .NET'i desteklemez

Bazı Microsoft veya üçüncü taraf platformları .NET'i desteklemez. Bazı Azure hizmetleri henüz .NET üzerinde kullanım için sağlanmadı bir SDK sağlar. Bu gibi durumlarda, istemci SDK'sı REST API eşdeğer kimlikleri kullanabilirsiniz.

Ayrıca bkz.