# Gemini CLI ile .NET Projelerinde Kodlama Rehberi

Adres: https://agentvera.dev/blog/gemini-cli-ile-dotnet/ · Yayın: 2026-11-01

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ı.

**Kısaca:**

- Gemini CLI’yı .NET projesinde kullanmak için proje kökünde GEMINI.md dosyasıyla build, test ve kod kurallarını tanımlayın.
- Küçük adımlı plan-uygula-test döngüsü ve diff incelemesi, ajanın Entity Framework Core gibi alanlarda güvenilir kalmasını sağlar.
- Birden çok ajanı ayrı git worktree’lerde paralel çalıştırmak dosya çakışmalarını önler ve incelemeyi kolaylaştırır.

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](/ajanlar/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:

```markdown
# 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](/blog/gemini-cli-nasil-kullanilir/) 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?](/blog/kodlama-ajanlari-icin-prompt-yazmak/) 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 migration | Migration dosyalarını mutlaka inceleyin; model snapshot’ıyla tutarsızlık veya eksik kolon olabilir. |
| Async/await | Ajan bazen senkron metot içinde async çağrı yapabilir veya `.Result`/`.Wait()` üretebilir; tüm asenkron zinciri kontrol edin. |
| NuGet sürümleri | Paket sürümlerini elle değiştirebilir; `dotnet list package --outdated` ile uyumluluğu doğrulayın. |
| Çok projeli solution | Dosya 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:

```bash
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](/blog/windowsta-kodlama-ajanlari/) 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.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
