Linux'ta C#: Seri Giriş
Çoğu C# geliştirici için, Windows çalıştıkları tek işletim sistemi olmuştur. Araçlar, IDE ve dağıtım hedefleri, tek bir platform etrafında döner. Bu, son OS değişiklikleriyle ilgili gizlilik endişeleri, eski donanımları yeniden kullanma isteği veya sadece birden fazla ortamı bilmenin profesyonel avantajı nedeniyle bir noktaya kadar çalışır.
Tim Corey, "Linux'ta C#: Seri Giriş" adlı videosunda, tamamen Linux üzerinde .NET uygulamaları geliştirme konulu çok bölümlü bir seriye başlıyor. Bu açılış bölümü, herhangi bir kod yazılmadan önceki manzarayı kapsıyor: hangi Linux dağıtımını seçeceğiniz, C# geliştirme için hangi editörlerin çalıştığı, hangi tür projeleri yapabileceğiniz veya yapamayacağınız ve iş akışı artık Windows gibi görünmediğinde ne bekleyeceğiniz. .NET'i geleneksel ortamı dışında çalıştırmakla ilgili merak ediyorsanız, işte yol haritası.
Neden Linux? Daha Fazla Seçenek İçin Durum
[0:00 - 1:17] Tim, samimi bir gözlemle başlıyor: tek bir platforma kilitlenmek esnekliğinizi sınırlar. Microsoft'un Windows'a yönelik yapay zeka ile ilgili değişikliklerini ele alan önceki bir video, alternatifler hakkında konuşmaları teşvik etti ve bu seri bu tartışmalardan doğdu. Amacınız, Windows'u terk etmek değil, yeteneklerinize ikinci bir geçerli ortam eklemektir.
Bu genişliğe sahip olmak gerçek bir profesyonel değer taşır. Eğer yeni bir iş, Mac veya Linux üzerinde çalışmayı gerektiriyorsa ya da bir dağıtım hedefi Linux sunucuda çalışıyorsa, iş akışını zaten bilen geliştirici net bir avantaja sahip demektir. Tim, diziyi .NET bilginizi farklı bir açıdan ele alarak derinleştirme yolu olarak çerçeveliyor, bir platform savaşı olarak değil.
Linux Mint Seçimi
[1:28 - 2:42] Yeni gelenleri şaşırtan bir şey, "Linux"un tek bir işletim sistemi olmamasıdır. Bu, her biri kendi masaüstü ortamına, paket yöneticisi varsayılanlarına ve tasarım felsefesine sahip yüzlerce farklı dağıtımın altında bulunan bir çekirdektir. Tim, seçeneklerin çokluğu karşısında bunaltıcı olabileceğini kabul ediyor, ardından bu seri için kararı basitleştiriyor: Linux Mint.
Mint, stabilite ve tanıdıklık arasında bir denge kurar. Masaüstü düzeni, Windows kullanıcılarının zaten bildiğine benzer ve görev çubuğu, başlangıç menüsü eşdeğeri ve öngörülebilir şekilde davranan bir dosya yöneticisine sahiptir. Bu görsel benzerlik, iki sistemin aynı olduğunu iddia etmeden geçişi kolaylaştırır. Pop!_OS gibi diğer dağıtımlar da sağlam seçimlerdir, ancak Mint, kas hafızası Windows etrafında şekillenen geliştiriciler için en ulaşılabilir başlangıç noktası sağlıyor.
.NET Geliştirme için IDE Seçenekleri
[2:42 - 3:57] Visual Studio Windows'a özgü bir uygulama olduğundan, Linux geliştiricilerin farklı bir editöre ihtiyacı vardır. Tim, iki ana yolu vurgular: VS Code, C# Dev Kit eklentisi ile eşleştirilmiş ve JetBrains Rider.
VS Code, C# Dev Kit ile son sürümlerde önemli ölçüde iyileştirildi, ancak Tim bazı pürüzlerin kaldığını belirtiyor. Lisanslama, Visual Studio ile aynı modeli izler: bireysel geliştiriciler ve küçük ekipler için ücretsiz, daha büyük organizasyonlar için ise ücretli bir katman vardır. JetBrains Rider artık kişisel projeler için ücretsiz bir topluluk sürümü sunuyor ve bu, geliştiricilere peşin bir maliyet olmadan ikinci bir seçenek veriyor. Seri, her iki aracı da kapsamakla birlikte VS Code'a daha yakın duracak çünkü her bir aracın eldeki göreve bağlı olarak kendi güçlü yönleri bulunuyor.
Makine Özellikleri: Gerçekten İhtiyacınız Olan
[4:00 - 6:14] Linux'un en pratik satış noktalarından biri, çok az donanım talep etmesidir. Tim, aralığı örnekleyen iki örnek paylaşıyor. İlk olarak, yaklaşık 400 MHz işlem gücüne ve çift çekirdekli bir CPU'ya sahip bir cihaz olan Raspberry Pi klavye bilgisayarında C# Dev Kit ile VS Code'un çalıştırılmasını tanımlıyor. O, içinde bir Blazor uygulaması geliştirdi ve çalıştırdı. Deneyim yavaştı, ama çalıştı.
İkinci örnek çoğu geliştirici için daha ilişkilendirilebilir. Windows 10 altında kullanılamaz hale gelmiş eski bir dizüstü bilgisayar (tıklamalar zaman aşımına uğruyor, uygulamalar yüklenmeyi reddediyor) temiz bir kurulumdan sonra Linux Mint ile sorunsuz çalıştı. Aynı donanım, zar zor Windows masaüstünü render edebilen, işlevsel bir geliştirme makinesine dönüştü. Tim, daha iyi teknik özelliklerin hala daha iyi bir deneyim ürettiğini net bir şekilde belirtiyor, ancak Linux'ta C# geliştirme için minimum çıta Windows'takinden çok daha aşağıda.
Oluşturabileceğiniz ve Oluşturamayacağınız Proje Türleri
[6:17 - 8:23] Her .NET proje türü Windows dışında çalışmaz ve bu sınırları önceden anlamak, sonradan hayal kırıklığını önler. WinForms ve WPF, işletim sistemine entegre edilmiş Windows'a özgü kütüphanelere dayanır. UWP aynı sınırlamayı taşır. Bunların hiçbiri Linux'ta derlenmez veya çalıştırılmaz.
MAUI, dikkate değer bir incelik ekler. Birden fazla platformu hedeflerken (Windows, macOS, iOS, Android), Linux bunlar arasında değildir. Bu ayrım önemlidir çünkü geliştiriciler bazen "çapraz platform" ifadesinin "her yerde" anlamına geldiğini varsayarlar, oysaki pratikte MAUI'nin erişimi hem Linux'u hem de web'i hariç tutar.
Çalışan şeyler geniş bir alanı kapsar. C# öğrenmenin temelini oluşturan konsol uygulamaları, herhangi bir değişiklik yapmadan çalışır. Servis uygulamaları (Linux terminolojisinde daemon') tamamen desteklenir. APIs, Blazor uygulamaları, gRPC hizmetleri ve çalışan hizmetleri de dahil olmak üzere, tüm ASP.NET Core web yığını Linux'ta aynı şekilde çalışır. İşletim sistemlerini aşmak zorunda olan masaüstü uygulamaları için Uno Platform, Linux'tan inşa edip Windows ve macOS'a dağıtmanıza olanak tanır, serinin gelecekteki bir konusu olarak karşımıza çıkar.
Bu Seri Neleri Yapmayacak
[8:37 - 11:52] Tim baştan üç beklenti koyar. Öncelikle, seri Microsoft karşıtı değildir. GitHub, Azure, Edge, VS Code ve .NET'in kendisi tümüyle Microsoft ürünleridir ve seri boyunca birkaç kez karşınıza çıkacaktır. Amaç, hangi araçları kendi koşullarınızla benimseyeceğinizi seçmek yerine size dayatılmasını engellemektir.
İkinci olarak, bu bölümler Linux'u tek doğru seçenek olarak konumlandırmayacak. Windows hâlâ birçok geliştirici ve iş akışı için doğru ortam olarak kalmaya devam ediyor. Linux seçeneklerinizi genişletir; Windows'un iyi yaptığı her senaryoyu değiştirmez. Değer, her iki platformu da anlayarak hangisinin belirli bir duruma uygun olduğunu seçmenizde yatar.
Üçüncü olarak, belki de geçiş yapan geliştiriciler için en önemlisi: Linux'un Windows gibi çalışmasını beklemeyin. Yazılım yüklemek daha fazla komut satırı etkileşimi içerir. Paket yönetimi temelde farklı bir modeli takip eder. Windows'ta otomatikmiş gibi hissedilen bazı iş akışları, Linux'ta belirli adımlar gerektirir. Seri, bu farklılıklar ortaya çıktıkça her birini açıklayacak, neden var olduklarını ve nasıl ele alınacağını anlatacak.
Eksiklikler Değil, Farklılıklar Bekleyin
[11:52 - 13:34] Platformları değiştirirken yaygın bir tuzak, her şeyi zaten bildiklerinizle karşılaştırmaktır. Tim, doğrudan bu konuya değiniyor: Windows'u geride bırakmak, bazı görevlerin alışılmadık görünmesi ve hissettirilmesi anlamına gelir. Pencere yönetimi, yazılım yükleme ve sistem yapılandırma, tümünde Linux'un kendi kuralları vardır.
Bu kalıplardan bazıları gerçekten daha iyidir. Örneğin, Linux'un paket yöneticisi modeli, yazılım yığınınızı tek bir sistem üzerinden güncel tutar, her uygulamanın kendi güncelleyicisini yönetmesine güvenmek yerine. Diğer farklılıklar sadece alıştırma gerektirir. Tim, bunu Windows'tan Mac'e geçmeye benzetiyor, burada pencere hizalama davranışını elde etmek için tercih ettiği üçüncü taraf bir araç kuruyor. Linux'ta eşdeğeri olan şey: Çevrenizi zamanla tercihlerine göre uyarlarsınız, bıraktığınız şeyi ayna gibi yansıtmasını beklemek yerine.
Sonuç Kısmı: Serinin Yol Haritası
[13:34 - 14:10] Tim, bir sonraki adımları açıklayarak kapanışı yapar. Seri, mevcut Windows kurulumunuza dokunmadan tüm deneyimi test edebilmeniz için bir USB sürücüsüne Linux Mint yüklemekle başlar. Buradan sonraki bölümlerde kalıcı kurulum, geliştirme araçlarının kurulumu ve gerçek uygulamaların oluşturulması ele alınacak. Yan görev videoları, yol boyunca Linux'a özgü yapılandırma görevlerini ele alacak.
Sonuç
[14:10 - 14:29] Bu girişten çıkarılacak sonuç basit: Linux, C# ve .NET geliştirme için mümkün olan, yetenekli bir platformdur, ancak başlamadan önce anlamanız gereken birkaç sınır vardır. Donanım gereksinimleri mütevazıdır, araçlar olgunlaşmış ve modern geliştirme için önemli olan proje türleri (web, API, hizmetler, konsol) herhangi bir ödün vermeden çalışır.
Yalnızca Windows üzerinde çalışmış geliştiriciler için bu seri, erişim alanınızı genişletmek adına yapılandırılmış bir yol sunar. Başlangıçta bir USB bellekle başlamak, kaybedecek bir şey ve kazanılacak anlamlı bir beceri olmadığı anlamına gelir.
Örnek İpucu: Tam bir kurulum yapmadan önce, ana makinenizde taşınabilir bir USB çubuğundan Linux Mint'i başlatın. Bu şekilde masaüstünün, terminalin ve genel iş akışının nasıl olduğunu, mevcut ayarınızı değiştirmeden deneyimleyebilirsiniz. Eğer deneyim işe yararsa, ne beklemeniz gerektiğini bilerek kalıcı bir kuruluma geçiş yapabilirsiniz.
videonun tamamını YouTube Kanalında izleyin ve Linux'ta C# geliştirme hakkında daha çok bilgiyi keşfedin.

