.NET’e giriş
.NET, birçok tür uygulama oluşturmaya yönelik ücretsiz, platformlar arası, açık kaynak bir geliştirici platformudur. En popüler olan C# ile birden çok dilde yazılmış programları çalıştırabilir. Birçok yüksek ölçekli uygulama tarafından üretimde kullanılan yüksek performanslı bir çalışma zamanı kullanır.
.NET'i indirmeyi ve ilk uygulamanızı yazmaya başlamayı öğrenmek için bkz. Başlarken.
.NET platformu üretkenlik, performans, güvenlik ve güvenilirlik sağlamak için tasarlanmıştır. Çöp toplayıcı (GC) aracılığıyla otomatik bellek yönetimi sağlar. GC ve katı dil derleyicileri kullanılması nedeniyle tür ve bellek açısından güvenlidir. ve Task
temelleri aracılığıyla/async
await
eşzamanlılık sunar. Geniş işlevlere sahip olan ve birden çok işletim sistemi ve yonga mimarisinde performans için iyileştirilmiş büyük bir kitaplık kümesi içerir.
.NET aşağıdaki tasarım noktalarına sahiptir:
- Üretkenlik, geliştirici kullanıcı deneyimine katkıda bulunan çalışma zamanı, kitaplıklar, dil ve araçlarla tam yığındır .
- Kasa kod birincil işlem modelidir, ancak güvenli olmayan kod ek el ile iyileştirmeler sağlar.
- Statik ve dinamik kodun her ikisi de desteklenir ve çok sayıda farklı senaryoya olanak tanır.
- Yerel kod birlikte çalışma ve donanım iç özellikleri düşük maliyetlidir ve yüksek güvenilirliktir (ham API ve yönerge erişimi).
- Kod platformlar arasında taşınabilir (işletim sistemi ve yonga mimarisi), platform hedefleme ise özelleştirme ve iyileştirme sağlar.
- Programlama etki alanları (bulut, istemci, oyun) genelinde uyarlanabilirlik, genel amaçlı programlama modelinin özelleştirilmiş uygulamalarıyla etkinleştirilir.
- OpenTelemetry ve gRPC gibi endüstri standartları , önemli çözümlere göre tercih edilir.
.NET, Microsoft ve topluluk tarafından korunur. Kullanıcıların üretime güvenli ve güvenilir uygulamalar dağıtmasını sağlamak için düzenli olarak güncelleştirilir.
Bileşenler
.NET aşağıdaki bileşenleri içerir:
- Çalışma zamanı -- uygulama kodunu yürütür.
- Kitaplıklar -- JSON ayrıştırma gibi yardımcı program işlevleri sağlar.
- Derleyici -- C# (ve diğer diller) kaynak kodunu (çalışma zamanı) yürütülebilir koduna derler.
- SDK ve diğer araçlar -- modern iş akışlarıyla uygulama oluşturmayı ve izlemeyi sağlar.
- Uygulama yazma olanağı sağlayan ASP.NET Core ve Windows Forms gibi uygulama yığınları.
Çalışma zamanı, kitaplıklar ve diller .NET yığınının sütunlarıdır. .NET araçları ve ASP.NET Core gibi uygulama yığınları gibi üst düzey bileşenler bu sütunların üzerine inşa eder. C#, .NET için birincil programlama dilidir ve .NET'in çoğu C# dilinde yazılır.
C# nesne odaklıdır ve çalışma zamanı nesne yönlendirmesini destekler. C# çöp toplama gerektirir ve çalışma zamanı bir izleme çöp toplayıcısı sağlar. Kitaplıklar (ve uygulama yığınları), bu özellikleri geliştiricilerin sezgisel iş akışlarında verimli bir şekilde algoritmalar yazmasına olanak tanıyan kavramlar ve nesne modelleri şeklinde şekillendirir.
Çekirdek kitaplıklar, birçoğu C# diliyle tümleşen ve destekleyen binlerce türü kullanıma sunar. Örneğin, C# foreach
deyimi rastgele koleksiyonları listelemenizi sağlar. Desen tabanlı iyileştirmeler, gibi List<T>
koleksiyonların basit ve verimli bir şekilde işlenmesini sağlar. Kaynak yönetimini çöp toplamaya bırakabilirsiniz, ancak deyiminde using
doğrudan dil desteği ve aracılığıyla IDisposable
istem temizlemesi yapılabilir.
Birden çok işlemi aynı anda gerçekleştirme desteği, neredeyse tüm iş yükleri için temeldir. Bu, kullanıcı arabirimini duyarlı tutarken arka plan işleme yapan istemci uygulamaları, binlerce eşzamanlı isteği işleyen hizmetler, çok sayıda eşzamanlı uyarana yanıt veren cihazlar veya işlem yoğunluklu işlemlerin işlenmesini paralelleştiren yüksek güçlü makineler olabilir. Zaman uyumsuz programlama desteği, C# programlama dilinin birinci sınıf bir özelliğidir. Bu özellik, dilin sunduğu tüm denetim akışı yapılarının tüm avantajlarından yararlanırken zaman uyumsuz işlemleri yazmayı ve oluşturmayı kolaylaştıran ve await
anahtar sözcükleri sağlarasync
.
Tür sistemi , güvenlik, açıklayıcılık, dinamizm ve yerel birlikte çalışma ile eşit düzeyde içerik sunan önemli bir genişlik sunar. Her şeyden önce, tür sistemi nesne odaklı bir programlama modelini etkinleştirir. Nesne yönlendirmesinin izin verdiği tüm tür katmanlamaları için mantıklı bir davranış sağlamak üzere türler, (tek temel sınıf) devralma, arabirimler (varsayılan yöntem uygulamaları dahil) ve sanal yöntem gönderimi içerir. Genel türler , sınıfları bir veya daha fazla türde özelleştirmenize olanak sağlayan, kapsamlı bir özelliktir.
.NET çalışma zamanı, çöp toplayıcı aracılığıyla otomatik bellek yönetimi sağlar. Herhangi bir dil için bellek yönetim modeli büyük olasılıkla en belirleyici özelliğidir. Bu, .NET dilleri için geçerlidir. .NET'in gc'yi takip eden bir kendi kendine ayarlaması vardır. Daha aşırı iş yükleri için yapılandırma seçenekleri sunarken genel durumda "eller serbest" işlemi sunmayı amaçlar. Mevcut GC, uzun yıllar boyunca yapılan yatırımların ve çok sayıda iş yükünden elde edilen öğrenmelerin sonucudur.
Değer türleri ve yığına ayrılmış bellek blokları, veri ve yerel platform birlikte çalışma üzerinde daha doğrudan, düşük düzeyli denetim sunar. Bunun aksine. NET'in GC ile yönetilen türleri. .NET'teki tamsayı türleri gibi temel türlerin çoğu değer türleridir ve kullanıcılar benzer semantiklerle kendi türlerini tanımlayabilir. Değer türleri aracılığıyla tam olarak desteklenir. NET'in genel sistem, gibi List<T>
genel türlerin değer türü koleksiyonlarının düz, ek yükü olmayan bellek gösterimleri sağlayabildiği anlamına gelir.
Düşünceler ion, bir programın bir bölümünün derlemeler, türler ve üyeler açısından dinamik olarak başka bir bölümü sorgulamasına ve çağırmasına olanak sağlayan bir "veri olarak programlar" paradigmasıdır. Özellikle geç bağlanan programlama modelleri ve araçları için kullanışlıdır.
Özel durumlar .NET'teki birincil hata işleme modelidir. Özel durumlar, hata bilgilerinin yöntem imzalarında temsil edilmesi veya her yöntem tarafından işlenmesi gerekmemesi avantajına sahiptir. Uygun özel durum işleme, uygulama güvenilirliği için gereklidir. Uygulamanızın kilitlenmesini önlemek için, kodunuzda beklenen özel durumları kasıtlı olarak işleyebilirsiniz. Kilitlenen bir uygulama, tanımsız davranışa sahip bir uygulamadan daha güvenilir ve tanınabilir.
ASP.NET Core ve Windows Forms gibi uygulama yığınları, alt düzey kitaplıkları, dili ve çalışma zamanını temel alır ve bu kitaplıklardan yararlanir. Uygulama yığınları, uygulamaların nasıl kurulduğunu ve bunların yürütme yaşam döngüsünü tanımlar.
SDK ve diğer araçlar, hem geliştirici masaüstünde hem de sürekli tümleştirme (CI) için modern bir geliştirici deneyimi sağlar. Modern geliştirici deneyimi kod derlemeyi, analiz edebilmeyi ve test edebilmeyi içerir. .NET projeleri genellikle NuGet paketlerini geri yüklemeyi ve bağımlılıkları derlemeyi düzenleyen tek dotnet build
bir komutla oluşturulabilir.
NuGet, .NET için paket yöneticisidir. Birçok senaryo için işlevsellik uygulayan yüz binlerce paket içerir. Uygulamaların çoğu bazı işlevler için NuGet paketlerine güvenir. NuGet Galerisi Microsoft tarafından korunur.
Ücretsiz ve açık kaynak
.NET ücretsiz, açık kaynak ve bir .NET Foundation projesidir. .NET, Microsoft ve GitHub'daki topluluk tarafından çeşitli depolarda tutulur.
.NET kaynağı ve ikili dosyaları MIT lisansıyla lisanslandırılır. Windows'ta ek lisanslar geçerlidir.
Destek
.NET, .NET'in birden çok işletim sisteminde çalıştırılabilmesini ve güncel tutulmasını sağlamak için çalışan birden çok kuruluş tarafından desteklenir. Arm64, x64 ve x86 mimarilerinde kullanılabilir.
.NET'in yeni sürümleri, yayınlarımız ve destek ilkelerimize göre her yıl Kasım ayında yayımlanıyor. Genellikle Pasifik saatiyle 10:00'da Düzeltme Eki Salı günü (ikinci Salı) aylık olarak güncelleştirilir.
.NET ekosistemi
Her biri farklı bir uygulama türünü destekleyen birden çok .NET değişkeni vardır. Birden çok çeşidin nedeni kısmen geçmiş, kısmen tekniktir.
.NET uygulamaları:
- .NET Framework -- Özgün .NET. Windows ve Windows Server'ın geniş özelliklerine erişim sağlar. Bakımda etkin olarak desteklenir.
- Mono -- Özgün topluluk ve açık kaynak .NET. .NET Framework'ün platformlar arası uygulaması. Android, iOS ve WebAssembly için etkin olarak desteklenir.
- .NET (Core) -- Modern .NET. .NET Framework ile önemli ölçüde uyumlu kalırken bulut çağı için yeniden aranan platformlar arası ve açık kaynak uygulaması. Linux, macOS ve Windows için etkin olarak desteklenir.