Merhaba C# 9, Hoş geldin .NET 5

Bu bölümümüzde aşağıda ki konuları kapsamlı bir şekilde işleyeceğiz. Amacımız .NET 5 teknolojisini ve geliştirme ortamını tanımak.

  1. Geliştirme Ormanını Tanıma
  2. .NET’i anlama
  3. Visual Studio Code Kullanarak Konsol Uygulaması Geliştirme
  4. Çözüm kodlarımızın GitHub üzerinden paylaşımı

Geliştirme Ortamını Tanıma

Programlamaya başlamandan önce C# için bir editöre (Kod Düzenleyici) ihtiyacımız olacak. Microsoft’un sahip olduğu kod editörlerinin ve IDE’lerin (Entegre Geliştirme Ortamları) listesi aşağıda verilmiştir. .NET ile uygulama geliştirmek için bu yapılara sahip olmamız gerekmektedir.

  • Visual Studio Code 
  • GitHub Codespaces 
  • Visual Studio 2019 
  • Visual Studio 2019 for Mac

Cross-Platform Uygulamarı için Visual Studio Code Kullanımı

Microsoft Visual Studio Code, cross platformlar için .NET uygulaması geliştirebilmemiz için seçebileceğimiz en modern kod düzenleyicisidir.

Visual Studio Code, modern cross platform uygulama geliştirmeleri için en iyi seçimdir. Çünkü kapsamlı ve devamlı olarak gelişen bir dil olan C#’ın ötesinde birçok dil desteği ve uzantılar sunar. Ayrıca lightweight (düşük boyutlu kurulum) olması nedeniyle tüm platformlara yüklenebilir. Tüm platformlarda oldukça hızlı çalışır ve basit hata düzeltmeleri sunar.

Overflow 2019 anketi sonuçlarına da bakacak olursak. Visual Studio kod açık ara en popüler geliştirme ortamıdır.

Bakınız: https://insights.stackoverflow.com/survey/2019#development-environments-and-tools

Geliştirme için GitHub Kod Alanlarını (Cloud-Bulut Sistemi) Kullanma

GitHub Codespaces, web tarayıcısı üzerinden erişilebilen ve bulut sistemi içerisinde Visual Studio Code tabanlı komut satırlarını ve uzantılarını barındırabilen tamamen yapılandırılmış bir geliştirme ortamıdır. GitHup Codespaces üzerinden komutlarınızı herhangi bir cihazdan düzenleyebilir, çalıştırabilir ve test edebilirsiniz.

Bakınız: https://insights.stackoverflow.com/survey/2019#development-environments-and-tools

Windows Uygulaması Geliştirmek için Visual Studio 2019’u Kullanma

Windows Platformu Uygulamaları (UWP) geliştirmek için bir Windows sistemi üzerinde geliştirme yapmanız gerekmektedir. Bu nedenle, Microsoft Visual Studio 2019 yalnızca Windows sürümlerinde çalışır. Windows uygulaması geliştirmek için kullanılır.

Mac ve Mobil Geliştirmek için Visual Studio Kullanma

İOS işletim sisteminde uygulama geliştirmek için Xcode’a, uygulamayı derlemek için ise iphone gibi araçlara ihtiyacınız vardır. Ve bu araçlar yalnızca macOS işletim sisteminde çalışır. Buna rağmen Visual Studio 2019 üzerinden Xamarin ile platformlar arası uygulama geliştirebilirsiniz. Ama yine de kapsamlı bir uygulamayı tamamlamak için macOS ve Xcode ihtiyacınız vardır.

.NET 5 Desteklediği Paltformlar

.NET 5 aşağıda bulunan platformları destekler.

  • Windows: Windows 7 SP1, or later. Windows 10 version 1607, or later. Windows Server 2012 R2 SP1, or later. Nano Server version 1809, or later. 
  • Mac: macOS High Sierra (version 10.13), or later.  
  • Linux: Alpine Linux 3.11, or later. CentOS 7, or later. Debian 9, or later. Fedora 30, or later. Linux Mint 18, or later. openSUSE 15, or later. Red Hat Enterprise Linux (RHEL) 7, or later. SUSE Enterprise Linux 12 SP2, or later. Ubuntu 18.04, 19.10, 20.04, or later.

Visual Studio Code İndirme ve Kurulumu

  1. Aşağıdaki bağlantı üzerinden Visual Studio Code, Stable veya Insider yapılarını indirin. https://code.visualstudio.com/
  2. Aşağıdaki bağlantıdan .NET 5 SDK’yı indirip yükleyin: https://dotnet.microsoft.com/download
  3. C # uzantısını yüklemek için önce Visual Studio Code uygulamasını başlatınız.
  4. Visual Studio Code’da, Uzantılar simgesine tıklayın veya View | Extensions.
  5. C #, mevcut en popüler uzantılardan biridir, dolayısıyla bunu listenin başında görmelisiniz veya arama kutusunu C # girebilirsiniz aşağıdaki ekran görüntüsünde gösterildiği gibi. pastedGraphic.png
  6. Yükleye tıklayın ve destek paketlerinin indirilip yüklenmesini bekleyiniz.

.NET’i Anlama

.NET 5, .NET Framework, .NET Core ve Xamarin; geliştiriciler için uygulama ve hizmetler oluşturmak için kullanılan platformlardır. Bu bölümde, size bu .NET kavramlarının her birini tanıtacağım.

.NET Framework 

.NET Frameowork uygulamaların oluşturulabileceği zengin bir sınıf kitaplığı sağlayan, kodun yürütülmesini yöneten bir Ortak Dil Çalışma Zamanı (CLR) ve bir Temel Sınıf Kitaplığı (BCL) içeren bir geliştirme platformdur. Microsoft, başlangıçta .NET Framework’ü platformlar arası olma olasılığına sahip olacak şekilde tasarladı, ancak Microsoft tüm enerjisini Windows ile en iyi şekilde çalışmasına harcadı. Ve .NET Framework 4.5.2’den beri Windows işletim sisteminin resmi bir bileşeni oldu.

Mono ve Xamarin

Üçüncü taraflar, Mono projesi adlı bir .NET Framework uygulaması geliştirdiler. Mono, çapraz platformdur, ancak .NET Framework’ün resmi uygulamasının oldukça gerisinde kalmıştır. Mono, Xamarin mobil platformunun yanı sıra Unity gibi çapraz platform oyun geliştirme platformlarının temeli olarak yerini buldu. 

Microsoft, 2016 yılında Xamarin’i satın aldı ve şimdi Visual Studio 2019 ile Xamarin uzantısını ücretsiz olarak veriyor. Ayrıca Microsoft, yalnızca mobil uygulamalar oluşturabilen Xamarin Studio geliştirme aracını Mac için Visual Studio olarak yeniden adlandırdı ve konsol uygulamaları ve web hizmetleri gibi diğer proje türlerini oluşturma olanağı verdi.

.NET Core

Bugün, modern mobil ve bulut geliştirmenin bir işletim sistemi olarak Windows’u çok daha az önemli hale getirdiği, gerçek anlamda platformlar arası bir dünyada yaşıyoruz. Bu nedenle Microsoft, .NET’i Windows ile olan yakın bağlarından ayırma çabası üzerinde çalışıyor. .NET Framework’ü gerçek anlamda platformlar arası olacak şekilde yeniden yazarken, artık çekirdek olarak kabul edilmeyen ana parçaları yeniden düzenleme ve kaldırma fırsatını yakaladılar.

Bu yeni ürün, .NET Core markalıdır ve CoreCLR olarak bilinen CLR’nin çapraz platform uygulamasını ve CoreFX olarak bilinen basitleştirilmiş bir sınıf kitaplığını içerir.

.NET Core ve .NET 5’in Farkı Nedir?

Modern .NET, eski ve platformlar arası olmayan teknolojilerin kaldırılmış olması nedeniyle .NET Framework’ün mevcut sürümünden daha küçüktür. Örneğin, Windows Forms ve Windows Presentation Foundation (WPF), grafik kullanıcı arabirimi (GUI) uygulamaları oluşturmak için kullanılabilir, ancak bunlar Windows ekosistemine sıkı sıkıya bağlıdır, bu nedenle macOS ve Linux’ta .NET’ten kaldırılmışlardır.

.NET 5’in özelliklerinden biri, .NET 5’in Windows sürümüne dahil olan Windows Masaüstü Paketini kullanarak eski Windows Forms ve WPF uygulamalarını çalıştırma desteğidir, bu nedenle macOS ve Linux için SDK’lardan daha büyüktür. Gerekirse eski Windows uygulamanızda bazı küçük değişiklikler yapabilir ve ardından yeni özelliklerden ve performans iyileştirmelerinden yararlanmak için .NET 5 için yeniden oluşturabilirsiniz.

ASP.NET Web Forms ve Windows Communication Foundation (WCF), günümüzde daha az geliştiricinin yeni geliştirme projeleri için kullanmayı seçtiği eski web uygulaması ve hizmet teknolojileridir, bu nedenle bunlar .NET 5’ten de kaldırılmıştır. Bunun yerine, geliştiriciler ASP kullanmayı tercih etmektedir. .NET MVC ve ASP.NET Web API. Bu iki teknoloji yeniden düzenlenmiş ve ASP.NET Core adlı .NET 5 üzerinde çalışan bir platformda birleştirilmiştir.

Entity Framework (EF) 6, Oracle ve Microsoft SQL Server gibi ilişkisel veritabanlarında depolanan verilerle çalışmak üzere tasarlanmış bir nesne ilişkisel haritalama teknolojisidir. Yıllar içinde hacim kazandı, bu nedenle platformlar arası API zayıflatıldı, Microsoft Azure Cosmos DB gibi ilişkisel olmayan veritabanları için destek sağlandı ve Entity Framework Core olarak yeniden adlandırıldı.

Microsoft, .NET Core yapmak için .NET Framework’ten büyük parçaları kaldırmanın yanı sıra, .NET’i NuGet paketlerine dönüştürmüştür; bunlar, bağımsız olarak dağıtılabilen küçük işlevsellik yığınlarıdır.

Microsoft’un birincil amacı, .NET’i .NET Framework’ten daha küçük yapmak değildir. Amaç, modern teknolojileri desteklemek ve daha az bağımlılığa sahip olmak için .NET’i bileşenlendirmektir, böylece dağıtım yalnızca uygulamanızın ihtiyaç duyduğu paketleri gerektirir.

.NET Teknolojilerinin Karşılaştırılması

2020’de .NET teknolojilerini şu şekilde özetleyebilir ve karşılaştırabiliriz.

TeknolojiTanımAna İşletim Sistemi
 .NET 5 Modern özellik seti, tam C # 9 desteği, mevcut bağlantı noktası ve yeni Windows ve Web uygulamaları ve hizmetleri oluşturun. Windows, macOS, Linux
 .NET Framework   Eski özellik seti, sınırlı C# 8 desteği, C# 9 desteği yok, mevcut uygulamaları koruyun. Windows
 Xamarin Yalnızca mobil ve masaüstü uygulamaları. Android, iOS, macOS

Visual Studio Code Kullanarak Konsol Uygulaması (Console App) Geliştirme

Bu bölümün amacı Visual Studio Code kullanarak bir konsol uygulumasının nasıl oluşturulacağını göstermektir. Bu bölümdeki talimatlar macOS içindir. Ancak aynı eylemler Windows ve Linux içinde geçerlidir.

Visual Studio ile Kod Yazma

  1. Visual Studio’yu başlatın.
  2. macOS üzerinde ki gezinme çubuğundan File | Open sekmesini takip edin.
    pastedGraphic.png
  3. Açılan pencerede New Folder butonuna tıklayın ve dosya isminizi verin. Dosya ismi: “Code”
  4. Oluşturduğumuz dosyanın içerisine bir dosya daha oluşturalım. Dosya ismi: “Chapter01” aç butonuna tıklayalım.
  5. Dosyamızın içerisine tekrardan “HelloCS” adında bir dosya oluşturalım.
  6. HelloCS dosyamızı seçelim.
  7. Gezinti çubuğu üzerinden View | Terminal adımlarını takip edelim.
  8. Açılan Terminal alanına aşağıdaki kodu girelim.
    “dotnet new console”
  9. Bu komuttan sonra Console uygulamasının proje dosyasını yüklendiğini göreceksiniz. İki adete dosya yüklenmiş olacak. “HelloCS.proj” ve “Program.cs”
    pastedGraphic_1.png
  10. Program.cs dosyasını çit tıklayarak açalım. Bu işlemi ilk kez yaptığınızda, Visual Studio Kodun aşağıdaki gibi C # bağımlılıklarını indirmesi ve yüklemesi gerekebilir. OmniSharp, Razor Dil Sunucusu ve .NET Core hata ayıklayıcı gibi. Eğer yüklediğinizde bunu yapmadıysa, Gerekli varlıkların eksik olduğunu belirten bir uyarı görürsünüz. O zaman, aşağıdaki ekran görüntüsünde gösterildiği gibi Evet’i tıklayın.
    pastedGraphic_2.png
  11. Şimdi, Program.cs’deki 9. Satırda ki Console.WriteLine komutunu içersindeki metini “Merhaba, C#!”olarak değiştirelim.
  12. Şimdi Terminale “dotnet run” komutunu yazalım. Böylece yazdığımız komut derlenerek bize sonuç döndürecektir.
    pastedGraphic_3.png

GitHub Nedir?

Git, yaygın olarak kullanılan bir kaynak kodu yönetim sistemidir. GitHub ise Git sistemini daha kolay bir şekilde yönetmenizi sağlayan, masaüstü ve web uygulaması olan şirketin adıdır. Veya bir başka deyişle GitHub, kontrol sistemi olarak Git kullanan yazılım geliştirme projeleri için web tabanlı bir depolama servisidir. Microsoft, GitHub’ı 2018 yılında satın alarak, Microsoft araçlarıyla daha yakın entegrasyon sağlamaya başladı. Ve böylece yazılım geliştiricilerin olmazsa olmazı haline dönüştü.

Visual Studio Code ile Git Üzerinden Kod Klonlama 

Visual Studio Code, Git desteğine sahiptir. Visual Studio Code bu desteği işletim sisteminizde kurulu olan Git üzerinden kullanır, bu nedenle kullanıma başlamadan önce bu özellikten faydalanmak için Git’in en son sürümünü aşağıdaki linkten yüklemenizi tavsiye ederim. https://git-scm.com/download

1 Git üzerinde ki çözümlerinizi depolayacağınız bir klasörü sisteminiz üzerinde oluşturun. Benim klasör adım: “Repos”

2 Visual Studio Code’da oluşturduğunuz klasörü açın.

3 Gezinme çubuğu üzerinden View | Terminal adımlarını takip edin ve aşağıda ki kodu çalıştırın.

“git clone https://github.com/alkanfatih/alkanfatih.com”

4 Aşağıdaki ekran görüntüsünde görüldüğü gibi GitHub üzerinde yüklü olan tüm çözülmeler bir kaç dakika içerisinde yüklenmiş olacaktır.