WSL2 ile Windows Üzerinde Linux Geliştirme Ortamı
0

.NET Core‘un çıkışı ile birlikte .Net uygulamalarımızı Linux üzerinde de çalıştırabiliyoruz. Production ortamı olarak Linux tercih ediyor ve geliştirme ortamı olarak Windows kullanıyorsanız; production ortamına en yakın ortamı sağlamak için bir Linux sanal makine tercih edebilir ya da Docker for Windows ve Visual Studio entegrasyonu sayesinde kolaylıkla bir Linux container üzerinde uygulamalarınızı çalıştırabilir ve debug edebilirsiniz. Production ortamında container kullanmıyoruz ve bu nedenle de uygulamamın nasıl çalıştığını container dışında görmek istiyorum diyorsanız WSL ve Visual Studio Code ile bu mümkün.

Örneği henüz genel kullanıma sunulmamış olsa da WSL2 üzerinden yapacağım ancak WSL1 desteği de bulunduğunu belirtmek isterim. WSL2 ve örnekte üzerinde çalıştığım ortam ile ilgili detaylı bilgi için buraya tıklayabilirsiniz.

WSL2 ve üzerinde Ubuntu kurulu bir Windows 10 (Insider) işletim sistemi üzerine Visual Studio Code’u ilk açtığımda Resim-1‘de sağ altta göreceğiniz gibi “Remote WSL” eklentisini kurmamı öneriyor.

Resim-1

Eklenti ile ilgili detayları da Resim-2‘de görebilirsiniz. Tahmin edeceğiniz gibi henüz preview aşamasında ancak indirme sayısına ve aldığı 5 yıldıza bakarak da çok fazla sorun çıkartmadığını söyleyebilirim, en azından kullanırken bir sorun yaşamadım.

Resim-2

Eklentiyi kurduktan sonra PowerShell üzerinden Resim-3‘te göreceğiniz gibi wsl komutu ile Ubuntu bash’i açıyorum ve source adında bir klasör oluşturup bu klasör içerisinden Visual Studio Code’u code . komutu ile başlatıyorum. İlk kullanım olduğu için Ubuntu içerisine “VS Code Server for x64” adında bir kurulum yapıyor. Bu aslında bizim remote development yapmamızı yani Windows üzerinde yazdığımız kodların WSL üzerindeki Linux ortamına aktarılmasını sağlayan bir bileşen.

Resim-3

Visual Studio Code ara yüzüne geldiğimizde ise Resim-4‘te göreceğiniz gibi sol menüde en altta “Remote Explorer” menusu ve burada da WSL Targets altında WSL’de yer alan Linux dağıtımlarını görebilirsiniz. Alt kısımda yer alan Terminal ekranında da Ubuntu bash’i kullanabiliyoruz.

Resim-4

Bu kadar Insider ve preview kullandıktan sonra Windows Terminal kullanmadan olmaz diyerek biraz da Windows Terminal üzerindeki WSL desteğini de görmüş olalım. Windows Terminal üzerinde yeni bir sekme açmak istediğinizde WSL’de çalışan Linux dağıtımlarına ait bash’e direkt erişebiliyorsunuz (Resim-5).

Resim-5

Biraz da Windows Terminal üzerinden devam edelim. WSL’de çalışan Ubuntu üzerine .NET Core SDK kuracağım ancak kurulum öncesinde gerekli paketleri indirmek için hangi Ubuntu versiyonunu kullandığımı bilmem gerekiyor. Bunun için Resim-6′da göreceğiniz gibi lsb_release -a komutu ile versiyon bilgilerine erişebiliyorum.

Resim-6

Ubuntu 18.04.3 LTS kullandığımızı gördükten sonra tmp klasörüne gelerek packages.microsoft.com üzerinden Ubuntu 18.04 için packages-microsoft.prod.deb dosyasını wget komutu ile indiriyorum ve dpkg ile paketleri kuruyorum (Resim-7)

Resim-7

apt-transport-https kurulumu ve apt-get update sonrasında da son olarak dotnet-sdk-3.1‘i apt-get komutu yardımıyla kuruyorum (Resim-8). Linux üzerinde .NET Core kurulumu ile ilgili komutlara buradan erişebilirsiniz.

Resim-8

.NET Core SDK kurulumunu da tamamladıktan sonra bu kez de Visual Studio Code Terminal’i kullanarak “mshowtoapp” adında bir klasör oluşturup içerisinde girdikten sonra dotnet new mvc komutu ile yeni bir MVC projesi oluşturuyorum (Resim-9).

Resim-9

Uygulamayı debug etmek istediğimde ise Resim-10‘da göreceğiniz gibi Windows üzerinde olmasında farksız olarak browser açılıyor ve MVC uygulamasının açılış sayfasını görebiliyoruz. Artık Linux üzerinde çalışan .NET Core uygulamasını debug edebilirsiniz.

Resim-10

Benzer şekilde Windows Terminal üzerinden de dotnet run komutu ile MVC uygulamasını çalıştırabilirsiniz (Resim-11).

Resim-11

Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.microsoft.com/en-gb/windows/wsl/

https://code.visualstudio.com/docs/remote/wsl

https://www.mshowto.org/windows-subsystem-for-linux-2-wsl2-nedir.html

TAGs: Linux, WSL, WSL2, Windows Subsystem for Linux, Ubuntu, Windows Insider, Windows 10, Windows 10 Pro, Visual Studio, Visual Studio Code, VSCode, Remote WSL, Remote Development, .NET, .NET Core, ASP.NET MVC, Windows Terminal

Bu İçeriğe Tepkin Ne Oldu?
  • 5
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir