# GitHub Copilot CLI ile .NET Projelerinde Verimli Çalışma

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

GitHub Copilot CLI ile .NET çözümlerinde build, test ve refactoring döngüsünü hızlandırın; talimat dosyaları ve güvenli çalışma adımları.

**Kısaca:**

- GitHub Copilot CLI, copilot komutuyla .NET projesinde build, test ve refactoring döngüsünü hızlandırır.
- .github/copilot-instructions.md veya AGENTS.md dosyasına dotnet CLI komutları ve çözüm kuralları yazılarak ajan yönlendirilir.
- Küçük adımlı plan, test doğrulama ve diff incelemesi sayesinde CLI ajanıyla güvenli .NET değişiklikleri yapılır.

GitHub Copilot CLI, .NET proje klasöründe `copilot` komutuyla başlattığınız terminal tabanlı kodlama ajanıdır. Bu rehber; ASP.NET Core, EF Core, xUnit veya NUnit kullanan .NET çözümlerinde ajanı güvenli ve verimli kullanmak için talimat dosyalarını, çalışma döngüsünü ve doğrulama adımlarını anlatır. Genel komut satırı kurulumu için [GitHub Copilot CLI](/ajanlar/copilot-cli/) sayfasına bakabilirsiniz.

## GitHub Copilot CLI neden .NET işlerine uygun?

.NET ekosistemi komut satırından yönetilebilir: `dotnet build`, `dotnet test`, `dotnet format`, `dotnet ef` gibi komutlar net çıktı üretir. Ajan, CS hata kodlarını, test sonuçlarını ve analyzer uyarılarını okuyup sonraki adımı planlayabilir. Çözüm dosyaları (.sln) ve SDK stilindeki .csproj dosyaları düz metin olduğu için ajan, paket referansı ekleme, proje bağımlılığı düzenleme veya namespace düzeltme gibi işleri satır hassasiyetiyle yapabilir. EF Core migration komutları da terminalde çalıştığı için ajan model değişikliğinden migration oluşturma adımına kadar zinciri sürdürebilir.

Ajan ayrıca çok projeli çözümlerde doğru proje yolunu seçmek için talimat dosyasındaki komutları referans alabilir. Böylece `dotnet build` çıktısındaki hangi projenin başarısız olduğunu tespit edip sadece ilgili .csproj veya .cs dosyasını düzeltebilir. Minimal API, controller tabanlı API veya gRPC servisleri gibi farklı katmanlarda da çalışabilir; çünkü tüm bu proje türleri aynı dotnet CLI komutlarıyla yönetilir.

## Projeyi ajan için hazırlamak

Ajan, proje kökündeki `.github/copilot-instructions.md` veya `AGENTS.md` dosyasını okur. .NET çözümü için bu dosyaya build, test ve format komutlarını, klasör düzenini ve çözüme özgü kuralları yazın. Bu, ajanın her seferinde doğru test projesini veya doğru solution dosyasını kullanmasını sağlar.

Dosyayı kısa tutun; onlarca kural ajanın talimatı göz ardı etmesine yol açabilir. Aynı bilgi `AGENTS.md` olarak da kökte durabilir; iki dosya varsa karışıklık olmaması için yalnızca birini kullanın. Talimat dosyasının ajan tarafından okunduğunu doğrulamak için ilk komutta "Talimat dosyasındaki build ve test komutlarını listele" diyebilirsiniz.

Aşağıdaki örnek, çok projeli bir ASP.NET Core çözümü için başlangıçtır:

```markdown
# .NET Çözüm Talimatları

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

## Klasör düzeni
- Üretim kodu `src/`, test projeleri `tests/` altında.
- Her test projesi tek bir .csproj dosyasıdır.
- `obj/` ve `bin/` klasörlerini asla değiştirme veya silme.

## .NET'e özgü kurallar
- Nullable etkin; yeni kodda `null!` veya `#nullable disable` kullanma.
- EF Core sorgularında read-only işlemler için `AsNoTracking` kullan.
- Test sınıfları xUnit ile yazılır; test adları `Method_State_Expected` biçiminde olur.
- Değişiklik sonrası `dotnet build` ve ilgili testleri çalıştır.
- `global.json`, `Directory.Build.props` veya `.editorconfig` dosyalarını değiştirme; bunlar ekip kararıyla güncellenir.
- Yeni kodda file-scoped namespace kullan; eski dosyaları dönüştürme.
```

Bu dosyadaki komutlar, ajanın her görevde aynı test projesini bulmasını ve doğru solution dosyasını kullanmasını sağlar. Ayrıca ajanın `dotnet format` sonucunu kontrol etmesi, CI ile tutarlılık açısından önemlidir. Kuralların detaylı yazımı için [Yapay zekâ ajanlarıyla spec odaklı geliştirme rehberi](/blog/spec-odakli-gelistirme/) rehberine bakabilirsiniz.

## Çalışma döngüsü: plan, küçük adım, test, diff

.NET projesinde ajanı denetimsiz bırakmak yerine küçük döngüler kurun. Önce değişiklik planını isteyin, sonra tek bir dosyayı veya tek bir hatayı hedefleyen komut verin. Ajan uygulamayı bitirdikten sonra `dotnet build` ile derleyin, etkilenen testleri çalıştırın ve `git diff` ile değişiklikleri inceleyin. Özellikle birden fazla projeyi etkileyen refactoring işlerinde diff’e bakmadan ajanın önerisini kabul etmeyin.

Akışı şöyle kurgulayın: ajanı başlatmadan önce mevcut durumu `git commit` ile kaydedin veya ayrı bir dal açın. İlk komutta ajanın görevi anladığını teyit edin; örneğin "Önce `AppDbContext` içindeki entity modellerini listele, sonra eksik index önerisi yap." gibi iki adımlı bir istek, ajanın doğru bağlamı yakalamasına yardım eder. Uygulama adımı bittiğinde önce `git status` ile değişen dosyaların listesini alın, sonra her dosya için `git diff -- <dosya>` çıktısını inceleyin. Build hataları varsa, hata mesajlarını ajanın konuşmasına yapıştırıp "bu hataları aynı dosyada düzelt" deyin; böylece ajan tüm projeyi değil, yalnızca hatalı satırları değiştirir.

.NET çözümleri için örnek komutlar:

- "Mevcut `OrderService` sınıfını incele; bağımlılıklarını listele ve `IOrderRepository` enjeksiyonuna geçiş için 3 adımlı plan öner."
- "`src/MyApp.Api/Controllers/OrdersController.cs` içindeki `GetOrder` action metoduna `CancellationToken` ekle, sadece bu dosyayı ve ilgili arayüzü değiştir."
- "`AppDbContext` içinde `OrderItem.OrderId` üzerinde eksik index var mı kontrol et; gerekiyorsa yeni EF Core migration oluştur ama komutu çalıştırma."
- "Çözümde başarısız testleri listele, ilk ikisinin nedenini tespit et ve düzelt; sonra `dotnet test` ile doğrula."
- "`src/MyApp.Core` projesine `FluentValidation` paketini ekle, sonra `CreateOrderRequest` için validator sınıfı yaz ve mevcut controller’da kullan."

Bu komutlar tek bir dosyayı veya hatayı hedeflediği için ajanın yanlış katmana dokunma riski azalır. Her döngünün sonunda ajanın ürettiği kodu `dotnet format` ile kontrol edin ve analyzer uyarılarını gözden geçirin; ajan nadiren `#pragma warning disable` gibi satırlar ekleyebilir, bunları diff’te yakalayın.

## Tipik .NET görevleri ve dikkat edilecek yerler

Ajan; CRUD endpoint’leri, DTO eşleme, xUnit/NUnit test taslakları, EF Core mapping ve migration üretimi gibi tekrarlı işlerde hız kazandırır. Roslyn analyzer uyarılarını temizlerken veya basit refactoring yaparken de işe yarar.

Buna karşılık .NET’e özgü birkaç noktada yakından izlemek gerekir:

| Görev | Ajanın iyi olduğu yön | Dikkat edilecek nokta |
|---|---|---|
| NuGet paket ekleme | Paket adını ve sürümünü .csproj’a doğru yazabilir | Uyumlu sürüm seçimi; yanlış TFM veya binding sorunları oluşabilir |
| EF Core migration | Model değişikliğinden migration dosyası üretebilir | Migration adı, snapshot tutarlılığı ve `DbContext` seçimi doğrulanmalı |
| Test yazma | xUnit/NUnit test iskeletini hızlı oluşturur | Testin davranışı gerçekten doğruladığından emin olun; boş geçen test üretmesin |
| Nullable ve async | Nullable uyarılarını düzeltebilir | `async void`, `ConfigureAwait(false)` veya `Task` dönüşü gibi noktaları gözden kaçırabilir |
| DI kayıtları | Servis ömrünü (`Transient`, `Scoped`, `Singleton`) doğru önerebilir | `Scoped` servisi `Singleton` içinde kullanmak gibi hataları görebilir; kontrol edin |
| Minimal API | MapGet/MapPost tanımlarını hızlı yazar | Route çakışması, validation eksikliği veya `[FromBody]` kullanımını atlayabilir |

Ayrıca `global.json` SDK sürümü, `Directory.Build.props` ve `obj/bin` klasörleriyle ilgili değişiklikleri ajanın yapmasına izin vermeyin. Çok hedefli projelerde veya `InternalsVisibleTo` kullanılan çözümlerde ajanın eklediği kod, yanlış target framework’e gidebilir; diff’i mutlaka kontrol edin.

EF Core kullanıyorsanız, ajan sorgu yazarken `Include` eklemeyi abartabilir veya `AsNoTracking` kuralını atlayabilir. Migration üretirken `dotnet ef migrations add` komutunun çıktısını kendiniz de inceleyin; ajanın `DbContext` veya başlangıç projesi seçimini yanlış yapması ihtimaline karşı `--project` ve `--startup-project` parametrelerini talimat dosyasında belirtin.

## Test ve doğrulama

Ajan değişiklik yaptıktan sonra önce `dotnet build` ile derleme hatalarını temizleyin, sonra `dotnet test` ile etkilenen test projelerini çalıştırın. Tek bir test sınıfına odaklanmak için `dotnet test --filter FullyQualifiedName~Orders` gibi filtreler kullanın; böylece döngü saniyeler içinde tamamlanır. Ajanın test çıktısını okumasına izin verin, ancak testleri geçirebilmek için üretim kodunu veya testleri zayıflatmasına müsaade etmeyin. Son adımda `git diff` ile değişiklikleri satır satır inceleyin. Eğer ajan bir testi yanlış geçiriyorsa, testi geri alıp ajanı dar bir komutla yeniden yönlendirin.

Test projesi dışında ajanın ürettiği kodu `dotnet format` ile de kontrol edin. CI’da aynı komutlar çalışacağı için lokal doğrulamanın CI ile tutarlı olması gerekir; ajanın format kurallarını atlamadığından emin olun. Ek olarak `dotnet build -warnaserror` komutunu kullanarak uyarıları hata kabul edin; böylece ajanın bastırdığı veya göz ardı ettiği analyzer uyarıları ortaya çıkar. EF Core sorguları için testlerde InMemory provider veya SQLite kullanılabilir; ancak ajanın testi geçirmek için üretim kodunu değiştirmesine izin vermeyin.

## Birden fazla ajanı AgentVera ile çalıştırmak

.NET çözümlerinde biri API, biri test projesi üzerinde çalışan iki ajanı aynı klasörde koşturmak dosya çakışması riski taşır. AgentVera, her ajanı kendi gerçek terminal panelinde ve kendi git worktree’sinde çalıştırarak bu riski ortadan kaldırır. Ajanın sırası bittiğinde ikinci bir modelin otomatik kod incelemesi; nullable, EF Core veya test kalitesi sorunlarını file:line ile gösterir. Token bütçeleri ve kontrol noktaları sayesinde ajan kontrolden çıkmadan durur ve hatayı tek tıkla geri alabilirsiniz. Bu, çok projeli .NET çözümleri için paralel çalışmayı güvenli hale getirir.

## Sonuç

GitHub Copilot CLI, .NET projelerinde terminal tabanlı çalışmayı seven ekipler için doğru kurallarla çok verimli olur. Proje kökünde `copilot` komutunu başlatmadan önce talimat dosyanızı netleştirin; her değişikliği derleme, test ve diff ile doğrulayın. Daha geniş bir komut rehberi için [GitHub Copilot CLI nasıl kullanılır? Adım adım rehber](/blog/copilot-cli-nasil-kullanilir/) adresine göz atabilirsiniz.

## Sık sorulanlar

**GitHub Copilot CLI .NET projesinde nasıl başlatılır?** Proje kök klasöründe terminal açıp copilot komutunu çalıştırın. Ajan, .github/copilot-instructions.md veya AGENTS.md dosyasındaki .NET komutlarını okur ve proje bağlamına göre görev alır.

**Copilot CLI için .NET talimat dosyasında hangi komutlar yer almalı?** Build için dotnet build src/MyApp.sln, test için dotnet test tests/MyApp.Tests/MyApp.Tests.csproj --no-restore, format için dotnet format src/MyApp.sln --verify-no-changes gibi komutlar yazılmalıdır. Ayrıca nullable ve EF Core kuralları eklemek ajanı doğru yönlendirir.

**GitHub Copilot CLI ile EF Core migration oluşturabilir miyim?** Evet, model değişikliğinden sonra dotnet ef migrations add gibi komutları ajan çalıştırabilir. Ancak migration adını, snapshot dosyasını ve doğru DbContext seçimini siz doğrulamalısınız.

**GitHub Copilot CLI .NET testlerini kendi başına geçirebilir mi?** Ajan başarısız testleri okuyup dar kapsamlı düzeltmeler yapabilir. Yine de testlerin gerçek davranışı doğruladığını git diff ile kontrol etmek gerekir; ajan bazen testi zayıflatarak geçirebilir.

---

**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/
