Her Geliştiricinin Bilmesi Gereken 5 Önemli .NET CLI Komutu
Çoğu C# geliştiricisi, uygulamalarını derlemek, başlatmak ve test etmek için tüm iş akışını bir IDE içinde geçirir. Bu, yeterli olduğu sürece işe yarar. Ancak otomasyon hatları, uzak sunucular ve kapsayıcılı ortamların grafik arayüzü yoktur; terminalde birkaç komut bilmek, bu durumlarda fareye uzanmadan üretken kalmanızı sağlar.
Tim Corey, "Her Geliştiricinin Bilmesi Gereken 5 Temel .NET CLI Komutu" videosunda günlük geliştirmelerde en çok kullanılan beş dotnet işlemini açıklıyor: build, run, watch, clean ve publish. Her biri için sadece sözdizimini değil, ne zaman ve neden kullanmanız gerektiğini de gösteren pratik bir demostrasyon yapılır. Terminale aşina olsanız da nadiren açsanız da, bunlar ezberlemeye değer.
Ortamınızı dotnet --info ile kontrol etme
[0:31 - 1:25] Tim, herhangi bir proje komutunu çalıştırmadan önce geliştirme ortamını doğrulamakla başlar. Kendi başına dotnet komutu CLI'nin kurulu ve yolunuzda erişilebilir olduğunu doğrular, fakat dotnet --info daha ileri gider:
dotnet --infodotnet --infoBu, makinenize yüklü olan her SDK ve çalışma zamanı sürümünü, işletim sistemi detayları ve aktifleştirilen mimariyle birlikte yazdırır. Tim .NET 10 üzerinde bunu gösterir, ancak komut herhangi bir sürümde aynı şekilde çalışır. Kurulu olanları bilmek, özellikle sürüm uyuşmazlıklarını giderirken veya CI sunucusunun yerel yapı kurulumunuzun aynısı olup olmadığını doğrularken faydalıdır.
Komut 1: dotnet build
[2:16 - 3:44] İlk komut projenizi başlatmadan derler:
dotnet builddotnet buildBunu proje dizininden çalıştırmak .csproj dosyasını okur, bağımlılıkları çözer ve derlenmiş çıktıyı bin klasörü altında üretir. Tim, derlemenin yürütmeden ayrı kendine özgü bir adım olduğunu vurgular. Bu ayrım, kodunuzun temiz bir şekilde derlendiğini doğrulamak istediğinizde, bir havuzu aktarırken veya bir derleme sunucusuna aktarırken önemlidir.
.NET SDK, oluşturma sürecinde bağımlılık çözümünü yönetir, eksik NuGet paketlerini çeker ve referans verilen tüm sınıf kütüphanelerinin mevcut olduğundan emin olur. Bu aşamada bir şey başarısız olduğunda, hata mesajları sorunu doğrudan işaret eder, eksik bir referans, bir sözdizimi hatası veya hedef framework uyuşmazlığı olup olmadığı. Uygulamayı çalıştırmadan önce bu sorunları yakalamak, genel geliştirme döngüsünde zaman tasarrufu sağlar.
Komut 2: dotnet run
[3:44 - 5:42] build derlemeyle dururken, run bir sonraki adımı atar ve uygulamayı başlatır:
dotnet rundotnet runBu, eğer gerekiyorsa projeyi derler ve ardından elde edilen çıktı yürütülür. Konsol uygulaması için, bu onun terminalde çalıştırılacağı anlamına gelir. Bir web projesi için, yerleşik Kestrel sunucusu başlar ve uygulama yerel bir URL'de kullanılabilir hale gelir.
Tim, bunu bir web uygulamasıyla gösterir, yüklenen her şeyi doğrulamak için tarayıcıda çalışan siteye gezilir. build ve run arasındaki temel fark, run canlı, etkileşimli bir sonuç üretmesidir. Aktif geliştirme sırasında, değişiklikleri test etmek ve etkilerini görmek için en sık kullanacağınız komut budur.
Komut 3: dotnet watch
[5:42 - 7:06] Uygulamayı durdurmak, bir değişiklik yapmak ve tekrar başlatmak hızla sıkıcı hale gelir. watch komutu o döngüyü ortadan kaldırır:
dotnet watchdotnet watchBu, çalışma sürecini bir dosya izleyici ile sarar. Herhangi bir kaynak dosyasında bir değişiklik kaydettiğinizde, CLI değişikliği algılar ve otomatik olarak uygulamayı yeniden derler ve yeniler. ASP.NET Core ile yapılan web uygulamaları için, Razor dosyalarındaki, CSS ve C# kodundaki değişiklikler elle yeniden başlatma yapmadan tarayıcıda görünür.
Tim, sayfa düzenlemeyi, kaydetmeyi ve güncellemenin hemen yansıtıldığını görmeyi sıcak yeniden yükleme davranışıyla gösterir. Bu dar geri bildirim döngüsü, küçük ayarlamaların sürekli olduğu arayüz çalışmaları sırasında değerlidir. Durdur-düzenle-yeniden derle-başlat döngüsü yerine, koda odaklanır ve diğer her şeyi araçlara bırakırsınız.
Komut 4: dotnet clean
[7:06 - 7:56] Zamanla bin ve obj dizinlerinde yapı eserleri birikir. Bazen, eski derlenmiş dosyalar, en son kod değişikliklerinizin etkisini göstermediği veya yapının yerel olarak başarılı olduğu ancak yeni bir makinede başarısız olduğu kafa karıştırıcı davranışlara yol açar. clean komutu bunu çözer:
dotnet cleandotnet cleanÇalıştırıldığında, çıktının sonunda derlenen içerikleri temizler, böylece sonraki derlemeniz sıfırdan başlar. Tim, bunu bir sorun giderme aracı olarak değil, her değişiklikten sonra çalıştırmanız gereken bir şey olarak çerçevelendirir. Projeniz beklenmedik şekilde davrandığında ve önbelleğe alınmış çıktının suçlu olduğundan şüphelendiğinizde, clean ardından build ile gerçekten taze bir derlemeyle çalıştığınızdan emin olursunuz.
Bu alışkanlık, sürüm kontrolünde dallar arasında geçiş yaparken, bir güncelleme ana sürüme yükseltilirken veya açık ve kaybolana kadar belirsiz görünmeyen geçici yapı uyarıları çözerken özellikle faydalıdır.
Komut 5: dotnet publish
[7:56 - 9:01] Son komut, geliştirme ve dağıtım arasında köprü görevi görür:
dotnet publishdotnet publishbuild yerel hata ayıklama için uygun çıktılar üretirken, publish dağıtıma hazır bir paket oluşturur. Derlenmiş derlemeler, yapılandırma dosyaları, statik varlıklar ve gerekli tüm çalışma zamanı bileşenleri, doğrudan bir sunucuya kopyalayabileceğiniz bir publish klasöründe yer alır.
build ve publish arasında bir fark bazı geliştiricileri şaşırtıyor. build çıktısı, geliştirme sırasında yararlı olan ancak üretimde gereksiz (ve bazen istenmeyen) hata ayıklama sembollerini ve referanslarını içerir. Yayınlamak, bu ekleri çıkarır ve hedef ortam için çıktıyı düzenler. Docker'a dağıtmak veya bir bulut barındırıcıya yüklemek söz konusu olduğunda, yayımlanan çıktı, son resim ya da sürüm paketinizde kalan şeydir.
Sonuç: Beş Komut, Tek İş Akışı
[9:01 - 9:15] Tim, beşini bir arada listeleyerek bitiriyor: dotnet build, dotnet run, dotnet watch, dotnet clean ve dotnet publish. Bir set olarak ele alındığında, derleme aşamasından dağıtıma kadar temel geliştirme döngüsünü kapsarlar. Her biri belirli bir amaca hizmet eder ve her birine ne zaman başvurulacağını bilmek, size yalnızca IDE düğmelerine tıklayarak elde edemeyeceğiniz bir kontrol seviyesi sağlar.
Sonuç
[9:15 - 9:30] Bu beş CLI komutu, geliştirme sırasında en sık gerçekleştirdiğiniz görevleri ele alır: derleme, çalışma, canlı yükleme, eski çıktıyı temizleme ve sürüm için paketleme. Her bir .NET proje türü ve SDK'nın desteklediği her işletim sistemi genelinde çalışırlar.
Bir dahaki sefere terminali açtığınızda, ister yerel makinenizde, ister bir konteyner içerisinde, ister uzak bir sunucuda olsun, grafiksel bir arayüz olmadan tam geliştirme döngüsünü hareket ettirmek için zaten bir sözlüğe sahipsiniz.
Örnek İpucu: clean ve build komutlarını dotnet clean && dotnet build ile tek bir satırda zincirleyebilirsiniz. Bu, adımda sıfırdan bir derlemeyi garanti eder, bu da artan inşa süreçleri arasında devam eden sorunları giderirken özellikle kullanışlıdır.
video'yu YouTube Kanalı'nda izleyin ve .NET CLI'nin temel unsurlarına dair daha fazla içgörü kazanın.

