# Codex ile .NET Projelerinde Pratik Kullanım Rehberi

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

Codex ile .NET projelerinde AGENTS.md, test ve dotnet CLI kullanarak verimli çalışın. Adım adım kurulum, prompt örnekleri ve sık karşılaşılan tuzaklar.

**Kısaca:**

- Codex, .NET projesinde AGENTS.md ile yapılandırıldığında build, test ve kod düzenini komut satırından yönetir.
- Küçük adımlarla plan yapıp her değişiklikte dotnet test çalıştırmak, hata ayıklamayı kolaylaştırır.
- Entity Framework Core ve async/await gibi .NET özelinde tuzaklarda Codex çıktısını gözden geçirmek gerekir.

Codex, .NET projenizde terminalde `codex` komutuyla başlar ve proje kökündeki AGENTS.md dosyasındaki talimatları okur. Bu rehberde, Codex’i C#, ASP.NET Core, Entity Framework Core ve xUnit/NUnit ile nasıl verimli kullanacağınızı; kurulum, çalışma döngüsü ve sık yapılan hataları adım adım anlatıyorum. Codex hakkında genel bilgi için [Codex](/ajanlar/codex/) sayfasına bakabilirsiniz.

## Codex .NET işleri için neden uygun
Codex, .NET ekosisteminin komut satırı araçlarıyla doğrudan çalışır: `dotnet build`, `dotnet test`, `dotnet format`, `dotnet ef` gibi komutları çalıştırabilir, derleyici hatalarını ve test çıktılarını okuyup düzeltebilir. Çoğu .NET projesi çözüm dosyası (.sln), proje dosyaları (.csproj) ve standart klasör yapısı (src, tests, vs.) kullanır; Codex bu yapıyı hızla öğrenir ve sonraki oturumlarda da hatırlar. ASP.NET Core’da middleware, controller, dependency injection kayıtları ve Entity Framework Core konfigürasyonu gibi tekrar eden parçalar, ajanın küçük değişiklikleri güvenle uygulamasına olanak tanır. C# derleyicisinin ayrıntılı hata mesajları (örneğin CS8602, CS1998) Codex’in sorunun kaynağını bulmasını kolaylaştırır; bu, null olabilirlik uyarıları, async/await hataları ve tip uyumsuzluklarında işinizi hızlandırır. Ayrıca Codex, NuGet paket geri yükleme ve proje referanslarını yönetmede de yeterlidir, ancak paket sürümü çakışmalarında dikkatli olunmalıdır. Codex CLI’nin temel kullanımı için [Codex CLI nasıl kullanılır? Adım adım rehber](/blog/codex-cli-nasil-kullanilir/) rehberine bakın.

## Projeyi ajan için hazırlama ve AGENTS.md
Codex her oturumda proje kökündeki AGENTS.md dosyasını okur. Bu dosyaya .NET projenize özel komutları, klasör kurallarını ve stil tercihlerini yazın. Böylece ajan, hangi çözümü derleyeceğini, hangi test projesini çalıştıracağını, nelere dikkat edeceğini bilir. Bağlam mühendisliği hakkında daha fazla bilgi [Bağlam mühendisliği: yapay zeka kodlama ajanları rehberi](/blog/baglam-muhendisligi/) yazısında.

Aşağıdaki örnek, tipik bir ASP.NET Core + EF Core + xUnit projesi için yeterlidir:
```text
# AGENTS.md
## Komutlar
- Build: dotnet build src/MyApp.sln
- Test: dotnet test tests/MyApp.Tests/MyApp.Tests.csproj
- Lint: dotnet format MyApp.sln --verify-no-changes

## Klasör yapısı
- src/MyApp.Api: ASP.NET Core Web API
- src/MyApp.Core: domain ve servisler
- src/MyApp.Infrastructure: EF Core DbContext ve migration'lar
- tests/MyApp.Tests: xUnit birim testleri

## Kurallar
- Nullable ve implicit usings açık.
- Async metodlarda .Result veya .Wait() kullanma; CancellationToken geç.
- EF Core sorgularında AsNoTracking kullan; N+1'den kaçın.
- Yeni servisleri Program.cs veya ilgili modülde DI'a kaydet.
- Migration'ları sadece `dotnet ef migrations add` ile oluştur, elle düzenleme.
```
Bu dosyayı kısa ve net tutun; Codex her komut çalıştırmadan önce bu talimatlara uyar. `dotnet format --verify-no-changes` biçimlendirme hatalarını kontrol eder; `--no-restore` gibi bayraklar eklerseniz, build süresini kısaltabilirsiniz. Kurallar bölümünde nullable, async/await, EF Core ve DI ile ilgili projeye özel kısıtları yazın; bu, Codex’in ürettiği kodun kod tabanınızla uyumlu olmasını sağlar. Örneğin, `DateTime` yerine `DateTimeOffset` kullanımı, `ConfigureAwait(false)` gerekip gerekmediği gibi kararları da buraya ekleyebilirsiniz.

## Çalışma döngüsü
Codex ile çalışırken şu döngüyü izleyin: önce ne yapılacağını net bir prompt ile planlatın, sonra küçük bir değişiklik yaptırın, ardından `dotnet test` çalıştırıp sonuçları inceleyin, en son `git diff` ile değişiklikleri gözden geçirin. Tek seferde büyük bir refactoring istemek yerine, her adımda derleme ve testleri yeşil tutmak hata ayıklamayı kolaylaştırır. Codex’in her turdaki değişikliklerini `git diff` ile incelemek, istenmeyen dosya değişikliklerini ve gereksiz using eklemelerini yakalamanızı sağlar. Ayrıca Codex’in ürettiği testleri de gözden geçirin; bazen sadece geçmesi için testi zayıflatabilir.

Örnek promptlar:
- "Mevcut ASP.NET Core projesindeki tüm servis kayıtlarını incele, eksik veya yanlış lifetime’a sahip olanları listele."
- "OrderService içindeki GetOrders metodunu async yap, CancellationToken parametresi ekle ve ilgili testleri güncelle."
- "EF Core’a yeni Category entity’si ekle, DbContext’e DbSet olarak ekle, migration oluştur ve gerekli endpoint’i yaz."
- "Şu test neden başarısız? [test adı] Hata mesajını analiz et ve düzelt."
- "dotnet format çalıştır ve biçimlendirme hatalarını düzelt; değişiklikleri göster."

Her prompt sonrası ajanın ürettiği diff’i okuyun; Codex bazen istenmeyen using’leri veya proje dosyası değişikliklerini ekleyebilir. Codex’e tek seferde birden çok bağımsız değişiklik vermek yerine her değişikliği ayrı bir adımda isteyin ve her adımda test çalıştırın. Eğer Codex bir hatayı düzeltirken başka bir hataya yol açarsa, hatayı geri alıp daha spesifik talimat verin.

## Codex’in iyi yaptığı .NET işleri ve tuzaklar
Codex özellikle standart CRUD endpoint’leri, servis katmanı, EF Core sorguları, xUnit/NUnit testleri ve dotnet CLI komutlarını çalıştırmada başarılıdır. Aşağıdaki tablo, tipik görevler için iyi prompt örneklerini gösterir.

| Görev | Codex’e verilebilecek iyi prompt |
|-------|----------------------------------|
| Yeni endpoint ekleme | "ProductsController’a GET /api/products/{id} endpoint’ini ekle, asenkron olsun, bulunamazsa 404 döndürsün." |
| EF Core sorgu iyileştirme | "GetOrders metodunu AsNoTracking ve Select projeksiyonu ile yeniden yaz, N+1 sorgusunu gider." |
| Birim testi yazma | "CheckoutService için xUnit testleri yaz; IOrderRepository ve IPaymentGateway bağımlılıklarını mock’la." |
| Refactoring | "Controller içindeki iş mantığını ayrı bir OrderService sınıfına taşı, DI’a kaydet ve controller’ı incelt." |

Buna karşılık Codex’in .NET özelinde en sık tökezlediği noktalar şunlardır:
- EF Core’da lazy loading veya client-side evaluation: Codex bazen tüm entity’yi çekip bellekte filtreleyebilir; bu N+1 sorgusuna veya performans kaybına yol açar. Sorgularda AsNoTracking ve Select projeksiyonu kullanmasını isteyin ve oluşan SQL’i incelemek için `ToQueryString()` metodunu eklemesini söyleyebilirsiniz.
- async void, Task.Result veya deadlock riskleri: Codex, asenkron metodu sync sarmalamaya çalışabilir; özellikle ASP.NET Core’da `Task.Run` veya `GetAwaiter().GetResult()` kullanımı ölümcül olabilir.
- Nullable reference types uyarılarını bastırmak için `!` operatörünü aşırı kullanması: bu, gerçek null hatalarını gizler. Bunun yerine null kontrolü veya `ArgumentNullException.ThrowIfNull` kullanmasını isteyin.
- DI yaşam döngüsü hataları: scoped servisi singleton içine enjekte etmek gibi; Codex böyle bir kayıt ekleyebilir, çalışma zamanında hata alırsınız.
- NuGet paket sürümü uyumsuzlukları: Codex bazen en son sürümü ekleyip diğer bağımlılıkları bozabilir.
- Proje dosyası düzenlemeleri: gereksiz `<PackageReference>` ekleyebilir veya hedef framework’ü değiştirebilir.

Bu tür değişiklikleri her zaman diff’te kontrol edin, derleyici uyarılarını sıfırlamaya çalışın ve şüpheli kodda test yazmasını isteyin. Özellikle EF Core migration’larında oluşan `Snapshot` dosyasını ve migration içindeki `Up`/`Down` metodlarını gözden geçirin; Codex bazen yanlış veri tipi seçebilir.

## Test ve doğrulama
Codex, testleri çalıştırıp sonuçları yorumlayabilir; ancak doğrulamayı siz yönetin. Her değişiklikten sonra `dotnet test` çalıştırın, başarısız testleri Codex’e tekrar verin. Belirli bir testi çalıştırmak için `dotnet test --filter \"FullyQualifiedName~MyTest\"` komutunu kullanın; Codex bu filtreyi prompt’ta isteyebilir. xUnit ve NUnit projelerinde test runner çıktısı farklı olabilir; Codex hangi framework’ün kullanıldığını proje dosyasından anlar. Coverage raporu için `dotnet test /p:CollectCoverage=true` gibi ek parametreler gerekiyorsa bunu AGENTS.md’ye yazın. Ayrıca `dotnet test --no-build` ile derleme yapmadan testleri hızla tekrar çalıştırabilirsiniz. Eğer entegrasyon testleri varsa, bunları ayrı bir test projesinde tutun ve Codex’e sadece birim testlerini çalıştırmasını söyleyin; böylece CI süresini kısaltırsınız. Codex’in bir testi geçirmek için üretim kodunu gereksiz yere değiştirmesini önlemek için, test değişikliklerini ayrıca inceleyin ve davranışı değiştiren değişiklikleri reddedin. Ayrıca `dotnet test --logger \"trx;LogFileName=testresults.trx\"` ile sonuçları dosyaya yazabilirsiniz; Codex bu dosyayı okuyup özet çıkarabilir.

## Birden fazla ajanı AgentVera ile çalıştırma
AgentVera, Codex dahil birden çok kodlama ajanını aynı pencerede gerçek terminal panellerinde yan yana çalıştırır. .NET projelerinde en kritik özellik, her ajanın kendi git worktree’sinde çalışabilmesidir; böylece paralel görevler birbirinin dosyalarını ezmez. Ajanın işi bitince ikinci bir model otomatik kod incelemesi yapar ve bulguları dosya:satır olarak gösterir; bu, özellikle EF Core ve DI hatalarını yakalamada faydalıdır. Her turun anlık görüntüsü alınır, tek tıkla geri alınabilir. Token bütçeleri ile ajan başına harcama sınırı koyabilirsiniz; böylece uzun süren derleme/test döngülerinde maliyet kontrolü sağlanır. Kurulum ve ilk proje için [AgentVera nasıl kullanılır: ilk proje, ajanlar ve ızgara](/blog/agentvera-nasil-kullanilir/) sayfasına bakın.

## Sonuç
Codex, .NET projelerinde AGENTS.md ile yapılandırıldığında derleme, test ve refactoring döngüsünü ciddi şekilde hızlandırır. Küçük adımlarla çalışın, diff’leri inceleyin ve .NET’e özgü tuzakları testlerle yakalayın. Birden fazla ajanı paralel kullanmak istediğinizde AgentVera, worktree ve otomatik inceleme ile güvenli bir ortam sunar.

## Sık sorulanlar

**Codex .NET projesinde nasıl başlatılır?** Proje klasöründe terminalden codex komutunu çalıştırın. Codex, kök dizindeki AGENTS.md dosyasını okur; bu dosyada build, test ve lint komutlarını tanımlarsanız ajan doğru komutları kullanır.

**Codex için AGENTS.md dosyasına neler yazmalıyım?** AGENTS.md’ye dotnet build, dotnet test, dotnet format komutlarını, klasör yapısını ve .NET kurallarını yazın. Nullable, async/await, EF Core AsNoTracking ve DI kayıt kuralları gibi projeye özel talimatlar eklemek Codex’in daha tutarlı kod üretmesini sağlar.

**Codex Entity Framework Core migration oluşturabilir mi?** Evet, dotnet ef migrations add komutunu çalıştırabilir ve DbContext ile entity değişikliklerini düzenleyebilir. Ancak migration içeriğini ve model snapshot’ını mutlaka gözden geçirin; bazen istenmeyen sütun veya index değişiklikleri ekleyebilir.

**Codex’in .NET’te en sık yaptığı hatalar nelerdir?** EF Core sorgularında lazy loading veya client-side evaluation, async void ve Task.Result kullanımı, nullable uyarılarını ! ile bastırma ve DI lifetime hataları sık görülür. Bu hataları derleme uyarıları ve birim testleriyle yakalayıp diff’te düzeltmesini isteyin.

---

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