Aracılığıyla paylaş


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

Sunucu tarafı uygulamaları oluşturmak için desteklenen iki .NET uygulaması vardır: .NET ve .NET Framework. En son .NET sürümü (şu anda .NET 8), sunucu geliştirme için kullanılacak tercih edilen .NET sürümüdür. .NET Framework kullanmaya devam etme nedenleri belirli ve sınırlıdır.

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

.NET'i seçin

.NET, sunucu uygulamaları için aşağıdaki avantajlara sahiptir:

  • Platformlar arası çalışır.

    .NET, web veya hizmet uygulamanızın Windows, Linux ve macOS gibi birden çok platformda çalışmasını sağlar. Bu işletim sistemlerinden herhangi birini geliştirme iş istasyonunuz olarak da kullanabilirsiniz. Windows üzerinde Visual Studio tümleşik geliştirme ortamını (IDE) veya macOS, Linux veya Windows üzerinde Visual Studio Code'ı kullanın. Visual Studio Code, IntelliSense ve hata ayıklamayı destekler. Sublime, Emacs ve VI gibi çoğu üçüncü taraf düzenleyici .NET ile çalışır. Bu üçüncü taraf düzenleyiciler Omnisharp kullanarak düzenleyici IntelliSense'i alır. Ayrıca kod düzenleyicisini atlayabilir ve .NET CLI'yı doğrudan kullanabilirsiniz.

  • Mikro hizmetleri hedeflemenizi sağlar.

    Mikro hizmetler mimarisi, bir hizmet sınırında teknolojilerin bir karışımını sağlar. Bu teknoloji karışımı, diğer mikro hizmetler veya hizmetlerle çalışan yeni mikro hizmetler için .NET'in aşamalı olarak benimsenmesini sağlar. Örneğin, .NET Framework, Java, Ruby veya diğer monolitik teknolojilerle geliştirilen mikro hizmetleri veya hizmetleri 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 Uygulaması Hizmeti, durum bilgisi olmayan mikro hizmetler için iyi bir seçimdir. Docker'ı temel alan mikro hizmetler alternatifleri, sonraki bölümde açıklandığı gibi herhangi bir mikro hizmet yaklaşımına uygundur (Docker kapsayıcılarını destekler). Tüm bu platformlar .NET'i destekler ve mikro hizmetlerinizi barındırmak için ideal hale getirir.

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

  • Docker kapsayıcılarını destekler.

    Kapsayıcılar genellikle bir mikro hizmet mimarisiyle kullanılır. Kapsayıcılar, herhangi bir mimari desene uyan web uygulamalarını veya hizmetlerini kapsayıcıya almak için de kullanılabilir. .NET Framework, Windows kapsayıcılarında kullanılabilse de, .NET'in modülerliği ve hafif yapısı kapsayıcılar için daha iyi bir seçimdir. Kapsayıcı oluştururken ve dağıtırken görüntüsünün boyutu .NET Framework'e kıyasla .NET ile çok daha küçüktür. Platformlar arası olduğundan, sunucu uygulamalarını Linux Docker kapsayıcılarına dağıtabilirsiniz.

    Docker kapsayıcılarını kendi Linux veya Windows altyapınızda veya Azure Kubernetes Service gibi bir bulut hizmetinde barındırabilirsiniz. Azure Kubernetes Service, buluttaki kapsayıcı tabanlı uygulamaları yönetebilir, düzenleyebilir ve ölçeklendirebilir.

  • Yüksek performanslı ve ölçeklenebilir.

    Sisteminiz mümkün olan en iyi performansa ve ölçeklenebilirliğe ihtiyaç duyduğunda, .NET ve ASP.NET Core en iyi seçeneklerinizdir. Windows Server ve Linux için yüksek performanslı sunucu çalışma zamanı, ASP.NET Core'un TechEmpower karşılaştırmalarında en iyi performansa sahip bir web çerçevesi olmasını sağlar.

    Performans ve ölçeklenebilirlik özellikle yüzlerce mikro hizmetin çalışıyor olabileceği mikro hizmet mimarileri için geçerlidir. ASP.NET Core ile sistemler çok daha az sayıda sunucu veya sanal makineyle (VM) çalışır ve bu da altyapı ve barındırma maliyetlerinden tasarruf sağlar.

  • Uygulama başına yan yana .NET sürümlerini destekler.

    .NET uygulaması, .NET çalışma zamanının farklı sürümlerinin aynı makinede yan yana yüklenmesini destekler. Bu özellik, aynı sunucuda her biri kendi .NET sürümünde birden çok hizmete izin verir. Ayrıca uygulama yükseltmeleri ve BT işlemlerinde riskleri düşürür ve tasarruf sağlar.

    .NET Framework ile yan yana yükleme mümkün değildir. Bu bir Windows bileşenidir ve bir makinede aynı anda yalnızca bir sürüm bulunabilir: .NET Framework'ün her sürümü önceki sürümün yerini alır. .NET Framework'ün daha sonraki bir sürümünü hedefleyen yeni bir uygulama yüklerseniz, önceki sürüm değiştirildiği için makinede çalışan mevcut uygulamaları bozabilirsiniz.

  • Daha güvenlidir.

.NET Framework ne zaman seçilir?

Daha önce belirtildiği gibi.NET uygulaması yeni uygulamalar ve uygulama desenleri için önemli avantajlar sunar. Ancak bazı belirli senaryolarda sunucu uygulamalarınız için .NET Framework kullanmanız gerekebilir ve .NET Framework desteklenmeye devam eder. Aşağıdaki durumlarda sunucu uygulamanız için .NET Framework kullanın:

  • Uygulamanız şu anda .NET Framework kullanıyor.

    Çoğu durumda, mevcut uygulamalarınızı .NET'e geçirmeniz gerekmez. Bunun yerine, ASP.NET Core'da yeni bir web hizmeti yazma gibi mevcut bir uygulamayı genişletirken .NET kullanmanızı öneririz.

  • Uygulamanız. .NET için mevcut olmayan üçüncü taraf kitaplıkları veya NuGet paketlerini kullanıyor.

    .NET Standard, .NET 6+ dahil olmak üzere tüm .NET uygulamalarında kod paylaşımını sağlar. .NET Standard 2.0 ile, uyumluluk modu .NET Standard ve .NET projelerinin .NET Framework kitaplıklarına başvurmasını sağlar. Daha fazla bilgi için bkz . .NET Framework kitaplıkları desteği.

    .NET Framework'leri yalnızca kitaplıklar veya NuGet paketleri .NET Standard veya .NET'te bulunmayan teknolojileri kullandığında kullanmalısınız.

  • Uygulamanız .NET için kullanılamaan .NET Framework teknolojilerini kullanıyor.

    Bazı .NET Framework teknolojileri .NET'te kullanılamaz. Aşağıdaki listede .NET'te bulunmayan en yaygın teknolojiler gösterilmektedir:

    • Web Forms uygulamalarını ASP.NET: ASP.NET Web Forms yalnızca .NET Framework'te kullanılabilir. ASP.NET Core, ASP.NET Web Forms için kullanılamaz.
    • ASP.NET Web Sayfaları uygulamaları: ASP.NET Web Sayfaları ASP.NET Core'a dahil değildir.
    • İş akışıyla ilgili hizmetler: Windows Workflow Foundation (WF), Workflow Services (tek bir hizmette WCF + WF) ve WCF Veri Hizmetleri (eski adıyla "ADO.NET Veri Hizmetleri") yalnızca .NET Framework'te kullanılabilir.
    • Dil desteği: Visual Basic ve F# .NET'te desteklenir, ancak tüm proje türleri için desteklenmez. Desteklenen proje şablonlarının listesi için bkz . Dotnet new için şablon seçenekleri.

    Daha fazla bilgi için bkz . .NET'te kullanılamayan .NET Framework teknolojileri.

  • Uygulamanız .NET'i desteklemeyen bir platform kullanıyor.

    Bazı Microsoft veya üçüncü taraf platformları .NET'i desteklemez. Bazı Azure hizmetleri .NET'te henüz kullanıma sunulmayan bir SDK sağlar. Böyle durumlarda istemci SDK'sı yerine eşdeğer REST API'yi kullanabilirsiniz.

Ayrıca bkz.