.NET Core’un İnanılmaz Dünyası – .NET Core Nedir?


Selamlar arkadaşlar,

Bu yazıda sizlere, temelleri, bizim bildiğimiz kadarıyla, 2014 ve 2015 Build konferanslarında atılan ve 27 Haziran 2016 itibariyle ise Release edilen .NET Core 1.0 hakkında bilgiler vereceğim. Son bölümde de bir tane örnek paylaşacağım.

.NET Core 1.0 Nedir?

Microsoft’un öncelikle IIS üzerinde PHP dosyalarının çalıştırılabilmesi daha sonra Azure üzerinde Linux ve diğer işletim sistemlerinin kurulabilmesi ve son olarak Xamarin ile yaptığı iş birliği ve kazandığı know-how’u da kullanarak .NET Core ortaya çıktı. .NET Core, modern web uygulamaları, küçük servisler, kütüphaneler ve konsole uygulamaları geliştirmek için açık kaynak, cross-platform ve moduler bir  .NET platformdur.  Bu Release; .NET Core runtime, kütüphaneler, araçlar ve ASP.NET Core kütüphanelerini içermektedir. Release notlarını buradan okuyabilirsiniz.

.NET Core 1.0’in Release olması ile birlikte bu platformu kullanarak uygulama geliştirebilmek için gerekli olan araçlar Visual Studio ve Visual Studio Code için de yayınlamış durumdadır.

.NET Core ile ilgili dökümantasyonlar GitHub üzerinde host edilerek herkes tarafından katkı sağlanabilir duruma getirilmiştir. Böylece gördüğünüz hataları, düzeltmeleri, eklemeleri ve yorumları dilediğiniz gibi yapabilirsiniz.

.NET Core’un belki de en önemli ve ilgi çeken özelliği Cross Platform olmasıdır. Çünkü Microsoft kaynaklarında en basit anlamında .NET Core anlatılmaya çalışıldığında .NET Framework’un cross-platform versiyonu olarak düşünebileceğinden bahsedilmektedir. Yani siz .NET Core platformu kullanarak geliştirdiğiniz uygulamaları sadece Microsoft tabanlı işletim sistemlerinde değil aynı zamanda Docker, Linux, MacOS’da da kullanabilirsiniz. Orjinal sitesine göre, .NET Core’un kullanılabileceği sistemler aşağıdaki görselde gösterilmektedir.

netcore1

.NET Core’un Özellikleri Nelerdir?

.NET Core’un öne çıkan ve başlıca özellikleri şunlardır:

  • Flexible deployment: Esnek geliştirme olanağı, geliştireceğiniz uygulamaya özgü olarak dahil edebilir veya kullanıcı bazlı ya da makine bazlı yükleme yapabilirsiniz.
  • Cross-platform: Yukarıda detayı verildiği gibi Windows, macOS ve Linux üzerinde çalışabilir. Her geçen gün ise desteklenen işletim sayısının artacağı ve gerekli desteklerin Microsoft tarafından verileceği belirtilmektedir.
  • Command-line tools: Yeni bir proje oluşturma, derleme, dağıtma gibi işlemler Command-Line üzerinden yapılabilmektedir. (Örnek yazının sonunda yer almaktadır)
  • Compatible: .NET Core, .NET Framework, Xamarin, Mono ve .NET Standard Library ile uyumlu şekilde çalışabilmektedir.
  • Open source: .NET Core platformu MIT ve Apache 2 lisanslarına sahip, tamamen açık kaynaktır. .NET Core aynı zamanda son dönemde Samsung’unda katıldığı .NET Foundation’ın bir projesidir.
  • Supported by Microsoft: .NET Core’a destek her Release’de veya RC’de belirlenen zaman dilimlerinde Microsoft tarafından verilmektedir.

.NET Core Bileşenleri Nelerdir?

.NET Core’u oluşturan bileşenler şunlardır:

  • .NET Runtime: Temel servisler ile birlikte sistem türlerini, assembly loading, garbage collector, native interop gibi .NET Runtime bileşenlerini içermektedir.
  • .NET Framework Libraries: Birincil/temel data türlerini, uygulama derleme türlerini,  temel bileşenleri içerek bir framework kütüphane seti içermektedir.
  • .NET Core SDK:  Bir takım SDK araçları ile birlikte language compiler‘ı yani şu an kullanılan ismi “Roslyn” olan VB ve C# derleyicisini içeren .NET Core SDK bulunmaktadır.
  • Dotnet App Host:  .NET Core uygulşamalarını ve SDK araçlarını host eden ve çalıştırılmasını sağlayan ‘dotnet’ app host içermektedir.

.NET Core İle Hangi Diller Kullanılabilir?

Şu an için sadece C# dili ile birlikte .NET Core uygulamaları geliştirilebilir. Fakat F# ve VB’ ile de yakın zaman geliştirmeler yapılabilecek. Diğer yandan istediğiniz işletim sisteminde C# kullanarak aşağıdaki favori geliştirme araçlarından birisini Roslyn derleyicisi ile birlikte uygulama geliştirebilirsiniz:

  • Visual Studio
  • Visual Studio Code
  • Sublime Text
  • Vim

.NET Core Nerelerde Kullanılabilir?

netcore2

.NET Core aslında sadece tek bir uygulama geliştirme modeline sahiptir. Bu da araçlar, local servisler, metin-tabanlı oyunlar geliştirilebilecek olan console uygulamalarıdır. Mevcutta ek olarak aşağıda yer alan uygulamalarda da kullanılabilmektedir:

Nasıl .NET Core Uygulamalarını Geliştirilir?

mac OS’da gerekli yüklemeleri yapmak için tıklayınız.

Linux’da ve diğer ortamlarda gerekli yüklemeleri yapmak için tıklayınız.

Windows ortamında yükleme yapmak için:

  1. Öncelikli olarak Visual Studio 2015 Update 3 indirilerek kurulur.
  2. Daha sonra  .NET Core 1.0.0 – VS 2015 Tooling Preview 2 indirilerek kurulur.

Not: Yazının devamındaki 2 örnekte de yukarıdaki 2 yüklemeyi yaptım, bu yüzden sizde eğer örnekleri yapacaksanız yüklemeleri yapmalısınız.

Fakat 2.adımda yer alan .NET Core 1.0 Tool’u kurulurken eğer aşağıdaki hata alınıyorsa devam eden adımları takip ederek yüklemeyi başarabilirsiniz.

netcore3

1) İndirdiğiniz dosya adını ve yolunu düzelterek Run menüsünden aşağıdaki satırı yazıp Enter tuşuna tıklayarak yükleme işleminin başlamasını sağlayabilirsiniz.

C:\DotNetCore.1.0.0-VS2015Tools.Preview2.exe SKIP_VSU_CHECK=1

2) Daha sonra yükleme başarılı şekilde yüklenmeye başlayacak ve tamamlanacaktır.

netcore4netcore5Kullanılabilecek dotnet Komutları Nelerdir?

Bilgisayarınızdan “MSBuild Command Prompt for VS2015” command ekranını açtığınızda kullanabileceğiniz önceden tanımlanmış bazı komutlar bulunmaktadır. Bu komutlar .NET Core’un cross-platform olmasından .NET Core yüklenebilen işletim sistemlerinde de çalışabilmektedir. Komutları inceleyecek olursak;

  • dotnet new – Basit bir Console uygulaması oluşturur. Initializes a sample console C# project.
  • dotnet restore – İlgili projenin bağımlılıkları restore eder(yeniler).
  • dotnet build – .NET Core uygulamasını Build eder.
  • dotnet publish – .NET Core uygulamasını publish eder.
  • dotnet run – İlgili projeyi çalıştırır. Runs the application from source.
  • dotnet test – project.json içerisindeki Test uygulamasını çalıştırır.
  • dotnet pack – Yazmış olduğunuz kodu NuGet paketi haline getirir.

dotnet komutları şimdilik C# ile uyumlu şekilde çalışmaktadır. F# ve VB desteği ise çok yakında gelmesi bekleniyor.

.NET Core Yol Haritası

.NET Core yol haritasına buradan ulaşabilir ve hangi geliştirmelerin yayınlanacağını, neler üzerinde çalışıldığını ve tarihleri görebilirsiniz.

Örnek Uygulama

Visual Studio 2015 Kullanarak Geliştirme Yapmak

1.Adım – Uygulamayı Oluşturmak

Öncelikli olarak Visual Studio 2015 açılarak, File > New  > New Project diyoruz ve Templates > Visual C# > .NET Core dedikten sonra proje türlerinden Console Application (.NET Core) seçimini yaparak yeni bir proje oluşturuyoruz.

netcore6

2.Adım – Mevcut Durumu Anlamak

Solution Explorer’dan baktığımızda Console uygulamamızda project.json bulunmaktadır. Bu dosya projemizin bağımlı olduğu referansları düzenlemekte ve projeye yüklemektedir.

netcore7

3.Adım – Eklemeler Yapmak

Uygulamayı açtığımızda karşımıza Program.cs dosyası çıkmaktadır. İçerisine aşağıdaki gibi ekleme yapıyoruz ve son halini veriyoruz.

 Console.WriteLine(“Dogum yiliniz nedir?”);

 int byear = Console.Read();

 Console.WriteLine(“Yasiniz: {0}”, DateTime.Now.Year- byear);

netcore8

4.Adım – Uygulamayı Yayınlamak(Publish)

Geliştirdiğimiz uygulamayı yayınlamak için src klasörü altında yer alan projemize sağ tıklayarak publish diyoruz. Eğer önceden tanımlı bir profil yoksa “File System” seçimini yaparak,  ilgili adımları takip ederek işlemi tamamlayabilirsiniz.

netcore9

netcore10

netcore11

netcore12

5.Adım – Publish Klasörünü Gözatmak

Proje klasörümüze gittiğimiz de bin > Release > PublishOutput altında bu console uygulamasına ait projemiz bulunmaktadır. Bu dosyalar artık portable dediğimiz türe geçmiş bulunmaktadır.

netcore13

6.Adım – Hedeflenen Runtime’a Göre Yayınlamak

Eğer hedeflenen bir bilgisayarda çalıştırmak istiyorsanız, project.json dosyası içerisinde gerekli değişiklikleri yapmanız gerekiyor, daha sonra ise aynı Publish prosedürü izlenmeli. Örneğin benim bilgisayarım olan Window 8 64x için;

netcore14

Command-Line Kullanarak Geliştirme Yapmak

1.Adım – Command Prompt Açmak

Öncelikli olarak bilgisayarınızda yüklü olan “MSBuild Command Prompt for 2015” uygulamasını açıyoruz.

2.Adım – Projeyi Oluşturacağımız Klasörü Belirlemek

Klasik olarak şirket bilgisayarımızda bulunan VS 2015 projects klasörüne gideceğiz. Bunun için command-line’a aşağıdaki satırları sırasıyla yazarak çalıştırıyoruz:

D:

cd D:\Users\msozeri\Documents\visual studio 2015\Projects

3.Adım – Yeni Proje Klasörü Oluşturmak

Projects klasörü altına ConsApp isminde bir klasör oluşturalım. Kullanacağımız komut:

md ConsApp

netcore16

4.Adım – Klasörün İçine Giriyoruz

ConsApp klasörünün içerisine girmek için kullanacağımız komut:

cd ConsApp

5.Adım – Console Uygulaması Oluşturuyoruz

Console uygulamamı oluşturmak için kullanacağımız komut:

dotnet new -t console

netcore17

6.Adım – Program.cs İçeriğini Değiştirmek

Notepad kullanarak program.cs içeriğini istediğiniz gibi değiştirebilirsiniz.

7.Adım – Projeyi Build Etmek

Projeyi build etmek için kullanacağımız komut:

dotnet build

netcore18

8.Adım – Proje Dosyasını İncelemek

Öncesi solda, build sonrası görünümü ise sağda yer almaktadır.

netcore19

9.Adım – Projeyi Çalıştırmak

Projeyi çalıştırmak için kullanacağımız komut:

dotnet run

netcore20

Görebileceğimiz üzere program.cs içerisidne yazan “Hello World!” çalıştırılarak ekrana yansıtılmış durumdadır.

Visual Studio Code Kullanarak Nasıl Geliştirilir?

Yakın zamanda bir tane Mac edinir edinmez örnek bir uygulama geliştirip ekran görüntülerini paylaşmaya çalışacağım. Fakat Microsoft’un sitesinde yer alan şu örneğe bakabilirsiniz:

netcore

Umarım faydalı bir yazı olmuştur, sonra yazacağım yazılarda daha detaylı örnek yapmaya çalışacağım.

Kaynaklar:

Advertisements

, , , , , , , , ,

  1. .NET Core 1.1 ile Gelen Yenilikleri | Mahmut Can Sozeri

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s