Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

Gemini CLI ile .NET Projelerinde Kodlama Rehberi

Gemini CLI ile .NET projelerinde verimli çalışın: GEMINI.md kurulumu, tipik görevler, test doğrulama ve paralel ajan kullanımı için pratik ipuçları.

Solviera Teknoloji 5 dk okuma

Gemini CLI’yi bir .NET projesinde kullanmak için proje klasöründe gemini komutunu çalıştırmanız yeterlidir; ajan, kökteki GEMINI.md dosyasındaki talimatları okur ve dotnet CLI ile build, test ve kod düzenleme adımlarını yürütür. Gemini CLI, .NET çözümlerinde özellikle tekrarlayan görevleri hızlandırmak için uygundur. Bu rehberde ASP.NET Core, Entity Framework Core ve xUnit gibi yaygın yığınlarla pratik bir çalışma düzeni anlatılıyor.

Gemini CLI .NET işleri için neden uygun

Gemini CLI, bir terminal ajanı olarak dotnet CLI komutlarını doğal biçimde yürütür. Solution dosyalarını, proje referanslarını ve namespace yapısını okuyabilir; bu sayede dotnet build çıktısındaki hataları yorumlayıp düzeltebilir. ASP.NET Core projelerinde controller, minimal API endpoint, middleware ve DI kayıtlarını eklerken mevcut desenleri takip eder. EF Core ile çalışırken DbContext ve migration komutlarını anlar; xUnit veya NUnit testlerini çalıştırıp başarısız olanları hedefleyebilir.

.NET ekosistemindeki güçlü yanı, derleyici hata mesajlarını ve test çıktılarını gerçek zamanlı değerlendirebilmesidir. Ajan, dotnet build sonucunda oluşan CS hata kodlarını okuyup ilgili satırı düzeltebilir; dotnet test çıktısındaki stack trace’leri yorumlayarak testin neden kırmızı kaldığını açıklayabilir. Çok projeli solution’larda dikkatli olmak gerekir; ajan bazen yanlış projeye dosya ekleyebilir veya yanlış namespace üretebilir. Bu yüzden çalışma düzeni, diff incelemesi ve test doğrulaması üzerine kurulmalıdır.

Ajan, NuGet paketlerini ve csproj dosyalarını da düzenleyebilir. Örneğin eksik bir paket referansı nedeniyle build başarısız olursa, gerekli paketi dotnet add package ile ekleyip proje dosyasını güncelleyebilir. Ancak paket sürümlerini seçerken mevcut uyumluluğu her zaman bilmeyebilir; bu yüzden dotnet list package --outdated ile doğrulamak faydalıdır.

Projeyi ajan için hazırlama: GEMINI.md

Ajanın .NET projesinde tutarlı davranması için proje köküne bir GEMINI.md dosyası ekleyin. Bu dosya; build, test ve format komutlarını, klasör yapısını ve yalnızca bu repoya özgü kuralları içermelidir. Böylece ajan her oturumda aynı komutları kullanır ve yanlış varsayımlar yapmaz.

Aşağıda bir ASP.NET Core + EF Core + xUnit projesi için kısa ama gerçekçi bir GEMINI.md örneği verilmiştir:

# GEMINI.md

## Komutlar
- Build: `dotnet build src/Shop.Api.sln --no-restore`
- Test: `dotnet test tests/Shop.Api.Tests/Shop.Api.Tests.csproj --no-build`
- Format: `dotnet format src/Shop.Api.sln --verify-no-changes`

## Klasörler
- `src/Shop.Api/` web API projesi
- `src/Shop.Core/` domain ve iş kuralları
- `tests/Shop.Api.Tests/` xUnit testleri

## .NET kuralları
- Nullable reference types açık; `#nullable disable` kullanma.
- Asenkron işlemlerde `async/await` kullan; `.Result` veya `.Wait()` yazma.
- EF Core entity değişikliğinde her zaman migration ekle: `dotnet ef migrations add <Ad>`.
- Yeni servisleri `Program.cs` içinde DI konteynerine kaydet.

Bu dosyayı hazırlarken gerçekten kullandığınız komutları yazın. Örneğin test projeniz NUnit kullanıyorsa dotnet test komutunu o test projesine göre verin. Ayrıca dotnet format komutunu bir CI adımı olarak da çalıştırabilirsiniz; ajan kod üretirken bu kurala uyarsa biçimlendirme sorunları azalır. Genel kurulum ve ilk kullanım için Gemini CLI nasıl kullanılır? Adım adım rehber sayfasına bakabilirsiniz. GEMINI.md dosyasını kısa tutun; ajanın okuyup uygulayabileceği net komutlar ve kurallar, uzun açıklamalardan daha değerlidir.

Çalışma döngüsü ve örnek promptlar

Ajanla çalışırken şu döngüyü izleyin: önce küçük bir işi tanımlayın, ajanın plan yapmasına izin verin, değişikliği uygulayın, testleri çalıştırın ve git diff ile farkı inceleyin. Her adımdan sonra ajanın neyi değiştirdiğini doğrulamadan yeni bir istek vermeyin.

Aşağıdaki promptlar tipik .NET görevleri için kullanılabilir:

  • “CatalogController’a GET /api/products?category={category} endpoint’i ekle. EF Core ile filtrele, DTO döndür, CancellationToken kullan, xUnit testini yaz ve çalıştır.”
  • “OrderService’te fiyat hesaplama mantığını ayrı bir PriceCalculator sınıfına taşı; mevcut testleri güncelle, dotnet test ile doğrula.”
  • “Product entity’sine Price alanı ekle; decimal(18,2) migration’ı oluştur, dotnet ef database update çalıştırma, yalnızca migration dosyalarını üret.”
  • “Bu testin neden başarısız olduğunu bul ve düzelt: ProductServiceTests.GetById_ReturnsDto içinde NullReferenceException alıyorum.”
  • “Solution’daki tüm projelerde var yerine açık tip kullanımına geç (C# 10+ target); değişiklikleri göster ama çalıştırma.”

Bu promptlarda dikkat edilen noktalar şunlardır: beklenen dosya yolu, test koşulu, çalıştırılacak komut ve sınırlar. Örneğin migration oluştururken database update yapmamasını açıkça belirtmek, veritabanını yanlışlıkla değiştirmesini önler. İstemlerinizi daha etkili hale getirmek için Kodlama ajanları için prompt nasıl yazılır? rehberindeki kalıpları kullanabilirsiniz. Promptta beklenen dosya, test ve komut açıkça belirtilirse ajanın başarı oranı artar.

Karmaşık bir işi tek seferde istemek yerine bölümlere ayırın. Önce endpoint iskeletini, sonra DTO ve mapping’i, ardından testleri yazdırın. Her adımda git diff ile değişiklikleri gözden geçirin; ajanın yanlışlıkla değiştirdiği satırları geri almak için git checkout -- <dosya> kullanabilirsiniz.

Tipik .NET işleri ve dikkat edilmesi gerekenler

Gemini CLI; CRUD endpoint’leri, DTO eşleme, EF Core sorguları, DI kayıtları, appsettings değişiklikleri ve xUnit testleri gibi işlerde oldukça iyidir. Ancak .NET’e özgü bazı tuzaklarda yakından izlemek gerekir.

İşDikkat edilmesi gereken
EF Core migrationMigration dosyalarını mutlaka inceleyin; model snapshot’ıyla tutarsızlık veya eksik kolon olabilir.
Async/awaitAjan bazen senkron metot içinde async çağrı yapabilir veya .Result/.Wait() üretebilir; tüm asenkron zinciri kontrol edin.
NuGet sürümleriPaket sürümlerini elle değiştirebilir; dotnet list package --outdated ile uyumluluğu doğrulayın.
Çok projeli solutionDosya eklerken yanlış projeye koyabilir; git diff ile dosya yolunu ve proje referansını kontrol edin.

Özellikle EF Core migration üretirken ajanın dotnet ef komutunu doğru çalıştırdığından emin olun. Migration’ı uygulamadan önce Up ve Down metotlarını okuyun; veri kaybı riski varsa manuel düzeltme isteyin. Migration adının anlamlı olmasına dikkat edin; ajan bazen AddMigration gibi belirsiz adlar üretebilir.

Bir diğer yaygın hata, DbContext yaşam döngüsünü yanlış kullanmaktır. Ajan, AddDbContext yerine AddTransient kaydı ekleyebilir veya scoped bir servisi singleton içinde kullanabilir. DI kayıtlarını ve constructor injection’ı her değişiklikten sonra kontrol edin. ASP.NET Core’da minimal API ile controller arasında geçiş yaparken rota tanımlarını ve [ApiController] attribute’larını gözden geçirin.

Test ve doğrulama

Her değişiklikten sonra ajanın testleri çalıştırmasını isteyin. Uzun süren testlerde dotnet test --filter ile yalnızca ilgili test sınıfını hedefleyebilirsiniz. Örneğin:

dotnet test tests/Shop.Api.Tests/Shop.Api.Tests.csproj --filter "FullyQualifiedName~ProductServiceTests"

Ayrıca dotnet format --verify-no-changes ile biçimlendirmeyi, dotnet build --no-restore ile derlemeyi doğrulayın. Ajanın ürettiği kodu commit etmeden önce git diff üzerinde gezin; yalnızca beklenen dosyaların değiştiğini teyit edin. Özellikle csproj dosyalarındaki değişiklikler, paket referanslarını etkileyebileceği için ayrıca incelenmelidir.

Testleri çalıştırırken ajan bazen yalnızca kendi eklediği testleri çalıştırıp tüm paketi atlayabilir. Bu yüzden --no-build bayrağıyla önce tüm test projesini, sonra ilgili testi çalıştırmasını isteyin. Başarısız bir testin stack trace’ini ajanla paylaşarak düzeltme istemek, sorunun kaynağını bulmayı hızlandırır.

Birden çok ajan çalıştırma: AgentVera

Aynı .NET çözümünde birden çok ajanı paralel kullanma fikri Windows’ta kodlama ajanlarını yönetmek: paralel ajanlar başlığında işlenmiştir. AgentVera, Gemini CLI gibi ajanların gerçek komut satırı araçlarını tek pencerede, her biri kendi terminal panelinde yan yana çalıştıran bir masaüstü uygulamasıdır. .NET projelerinde özellikle üç özelliği öne çıkar: ajanları ayrı git worktree’lerde paralel çalıştırarak dosya çakışmalarını önlemek; her tur sonunda ikinci bir modelin kodu inceleyip file:line bağlantılı bulgular sunması; token bütçeleriyle ajan başına günlük sınır koyarak uzun build ve test döngülerinde maliyeti kontrol altında tutmak. Böylece aynı .NET çözümünde birden çok değişiklik güvenle ilerler.

Sonuç

Gemini CLI, doğru GEMINI.md ve disiplinli bir çalışma döngüsüyle .NET projelerinde ciddi zaman kazandırır. Build, test ve diff incelemesini ihmal etmeden küçük adımlarla ilerlerseniz ajan, ASP.NET Core ve EF Core işlerinde güvenilir bir yardımcı olur. Birden çok ajanı paralel kullanırken git worktree ve otomatik kod incelemesi gibi araçlarla riskleri azaltın.

Sık sorulanlar

Gemini CLI’yı .NET projemde nasıl başlatırım?

Proje klasörüne gidip terminalde gemini komutunu çalıştırın. Ajan, kökteki GEMINI.md dosyasını okur ve projedeki dotnet komutlarını kullanarak çalışmaya başlar.

.NET projesi için GEMINI.md dosyasına neler yazmalıyım?

Build, test ve format komutlarını; src/tests klasör yapısını; EF Core migration ve DI gibi .NET’e özgü kuralları yazın. Böylece ajan her adımda tutarlı davranır.

Gemini CLI Entity Framework Core migration’larını yönetebilir mi?

Evet, dotnet ef migrations add komutunu çalıştırabilir. Ancak oluşturduğu migration dosyalarını mutlaka gözden geçirin; model snapshot’ıyla tutarsızlık olabilir.

Birden fazla Gemini CLI ajanını aynı .NET projesinde paralel çalıştırabilir miyim?

Evet, her ajanı ayrı bir git worktree’de çalıştırmak dosya çakışmalarını önler. AgentVera gibi araçlar bu düzeni tek pencerede yönetmeyi kolaylaştırır.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer Gemini CLI rehberleri

.NET için diğer ajanlar