Microsoft'un geliştiricilere her türlü sorunu çözmek için tek bir platform sağlama hedefi .NET tarafından yerine getirildi. .NET platformu, birkaç on yıldır hem başlangıç hem de kurumsal sahnelerde web, masaüstü ve mobil uygulamaları güçlendiriyor.
Şüphesiz .NET, yazılım geliştirme endüstrisinde merkezi bir rol oynamaktadır. Geliştirici topluluğunda .NET popülerliği bir gerçektir. Bunu dünya çapındaki açık kaynak projelerinin sayısı ve en popüler 10 programlama dili arasında C#' ın varlığı ile ölçebilirsiniz . Popülerliği, özellikle evrensel yazılım geliştirme kavramına öncülük ederek endüstride devrim yaratan en son sürümden (.NET 5) sonra daha da artacaktır.
.NET'in gücünü anlamak için, onun bazı teknik temellerini inceleyelim.
.NET, birçok uygulama türü oluşturmaya yönelik açık kaynaklı ve platformlar arası bir geliştirme platformudur. Microsoft tarafından tasarlanan platform, web, mobil, masaüstü, IoT uygulamaları ve daha fazlasını oluşturmak için birden çok programlama dilini ve kitaplığı destekler.
C#, .NET için ana programlama dili olarak kabul edilse bile, tercih ettiğiniz birçok farklı dili kullanabilirsiniz. Microsoft tarafından doğrudan desteklenen diller şunlardır:
C dil ailesine ait modern bir nesne yönelimli programlama dili. Sözdizimi C, C++, Java ve JavaScript geliştiricilerine tanıdık gelebilir.
F# Microsoft Research tarafından geliştirilen ve .NET Framework üzerinde çalışan fonksiyonel programlama dilidir.
Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır. Çok kısa sürede değerleri 100'lerce doları aşabilen programlar oluşturabilirsiniz.
Doğrudan Microsoft tarafından desteklenen yukarıda belirtilen dillerin yanı sıra, diğer birçok programlama dili .NET CIL'e derlenebilir. Örneğin, ClojureCLR, Eiffel, IronPython, PowerBuilder ve diğerleri.
.NET, komut satırından masaüstü uygulamalarına, web'den mobil uygulamalara, oyunlardan IoT uygulamalarına kadar farklı uygulama türleri oluşturmanıza olanak tanır.Bu, modüler ve optimize edilmiş mimarisi sayesinde mümkündür.
.NET mimarisi iki ana bileşene dayanmaktadır:
CoreCLR: Bu, .NET çalışma zamanıdır . CLI programlarının yürütülmesinden sorumludur ve tam zamanında bir derleyici içerir.
CoreFX: CLI Standart Kitaplıklarını uygulayan platformun API'si, yani dosya sistemi yönetimi, istisna işleme, ağ iletişimi, iş parçacığı oluşturma, yansıtma vb. gibi en yaygın işlevleri sağlayan kitaplıklar kümesi. CoreFX bileşeni bazen Birleşik Temel Sınıf Kitaplığı olarak adlandırılır.
Çekirdek bileşenlerin üzerinde, farklı uygulama modeli çerçevelerine , yani farklı türde uygulamalar geliştirmek için destek sunan kitaplıklara sahipsiniz . Örneğin;
Web uygulamaları ve web servisleri oluşturmanıza izin veren sistem.
Windows masaüstü uygulamaları için bir grafik kullanıcı arabirimi .
Platformlar arası mobil, TV ve masaüstü uygulamaları oluşturmaya yönelik sistem.
C# kullanarak istemci web uygulamaları oluşturmaya yönelik çerçeve. Ayrıca WebAssembly kodunda istemci web uygulamaları oluşturmanıza da olanak tanır .
Makine öğrenimi modellerinin .NET uygulamanıza entegrasyonunu basitleştiren makine öğrenimi sistemi.
.NET, uygulama modeli çerçevelerine ek olarak, dosya yönetiminden ağ iletişimine, güvenlikten veritabanı erişimine kadar ortak programlama görevlerinin çoğu için size destek sunar. Örneğin ağ tarafında, soket programlamayı, HTTP iletişimini ve gRPC'yi destekler . Bu, ihtiyaçlarınıza daha iyi uyan protokolle mikro hizmetler oluşturmanıza olanak tanır .
Çerçevede yerleşik olmayan diğer ihtiyaçlar için, halka açık NuGet deposunda çok sayıda özel kitaplık bulabilirsiniz . Aslında NuGet , .NET için paket yöneticisidir. Hemen hemen her amaç için birçok .NET kitaplığı oluşturmanıza, paylaşmanıza ve kullanmanıza olanak tanır.
Microsoft, 2002 yılında .NET projesini başlattı. Başından beri .NET hedefi, herhangi bir dille programlama için evrensel bir platform oluşturmaktı. Elbette ilk adım olarak Windows ana .NET hedefiydi.
Ancak Microsoft, standartlaştırma için .NET çalışma zamanı altyapısının ve C# programlama dilinin özelliklerini ECMA'ya gönderdi . Bu, diğer platformlarda birkaç taşıma projesinin doğmasına yol açtı: Linux, gömülü sistemler, mobil cihazlar, tarayıcılar vb.
Birkaç ortak kavram arasındaki farkları açıklığa kavuşturmaya çalışalım.
Microsoft, 2002 yılında .NET projesini başlattı. Başından beri .NET hedefi, herhangi bir dille programlama için evrensel bir platform oluşturmaktı. Elbette ilk adım olarak Windows ana .NET hedefiydi.
Ancak Microsoft, standartlaştırma için .NET çalışma zamanı altyapısının ve C# programlama dilinin özelliklerini ECMA'ya gönderdi . Bu, diğer platformlarda birkaç taşıma projesinin doğmasına yol açtı: Linux, gömülü sistemler, mobil cihazlar, tarayıcılar vb.
Mono projesi .NET'i Linux makinelerine getiriyor. .NET standart spesifikasyonlarına dayanan en iyi bilinen taşıma projesidir. Mono'nun amacı .NET Framework için oluşturulmuş Linux uygulamaları üzerinde çalışmak ve bunun tersi olsa bile, uyumluluk her zaman garanti edilmez. Bunun birkaç nedeni vardır: bazı .NET Framework özellikleri Windows işletim sisteminde çok bağlıdır ve Mono uygulaması genellikle en yeni .NET Framework özelliklerinin gerisinde kalır.
.Net Core , platformlar arası hedef göz önünde bulundurularak .net framework'ün eksiksiz bir yeniden yazılmasıdır. yeniden tasarlanan mimarisi, windows, linux ve mac işletim sistemi için ortak çekirdek olarak minimal bir özellik kümesi tanımlar. özelliklerin geri kalanı kitaplık paketleri olarak indirilebilir.
.NET Standard, başka bir .NET uygulaması değildir. Platformlar arası kitaplıklar oluşturmaya yardımcı olan .NET API'lerinin resmi bir özelliğidir. Bir platform belirli bir .NET Standard sürümünü destekliyorsa, aygıt türü ve çerçeve uygulamasından (.NET Framework, Mono, .NET Core) bağımsız olarak aynı sürümü destekleyen bir kitaplık bu platformda çalışır.
Başından beri .NET terimi evrensel geliştirme platformunu belirtmek için kullanılmıştır. Ancak, o zamandan beri birçok uygulama ortaya çıktı, bu nedenle .NET adı belirsizlikler yarattı. .NET 5, evrensel bir geliştirme platformunun ilk vizyonunu somutlaştırmayı amaçlar. Mevcut mevcut uygulamaların yerini alır: .NET Framework, .NET Core ve hatta Mono. Yani, .NET 5'ten itibaren, isim ve platform olarak sadece .NET var olacaktır.