# Cursor Agent ile .NET Projeleri: Pratik Rehber

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

Cursor Agent’ı .NET projelerinde etkili kullanın: cursor-agent ile kurulum, AGENTS.md ve .cursor/rules örnekleri, test ve doğrulama döngüsü, tipik tuzaklar.

**Kısaca:**

- cursor-agent komutu proje klasöründe başlatılır ve .NET çözümünü doğrudan anlayarak csproj, test ve migration işlerinde yardımcı olur.
- AGENTS.md veya .cursor/rules içinde dotnet build/test/lint komutları ve klasör kuralları vermek ajanın çıktısını belirgin şekilde iyileştirir.
- Her değişiklikten sonra diff’i inceleyip dotnet test ile doğrulamak, özellikle EF Core ve DI kayıtlarındaki hataları erken yakalar.

Cursor Agent, `cursor-agent` komutuyla .NET proje klasöründe başlatılır ve çözüm dosyalarını, proje bağımlılıklarını ve test yapısını doğrudan okuyarak kod yazar. Bu rehberde ajanı ASP.NET Core, EF Core ve dotnet CLI ile verimli kullanmanın pratik yollarını anlatıyorum. Amacım reklam değil; ajanın güçlü olduğu noktaları ve dikkat edilmesi gereken .NET tuzaklarını netleştirmek.

## Cursor Agent .NET’te neden iyi çalışır

.NET’in katı proje yapısı, ajan için aslında avantajdır. `.sln` ve `.csproj` dosyaları bağımlılıkları, hedef framework’ü ve paketleri açıkça gösterir; namespace düzeni ve DI konteyner kayıtları da genellikle tahmin edilebilirdir. [Cursor Agent](/ajanlar/cursor-agent/) bu bağlamı okuyup yeni bir controller, service veya migration eklerken doğru katmanı seçebilir. Ayrıca `dotnet build`, `dotnet test` ve `dotnet format` gibi komutları kendi çalıştırıp hata çıktılarını yorumlayabilir; bu da düzeltme döngüsünü hızlandırır. EF Core migration, LINQ sorgusu ve xUnit test iskeleti gibi tekrarlayan işlerde de iyi sonuç verir. Yine de bu güven, sizin vereceğiniz proje kurallarıyla birleştiğinde anlamlı hale gelir.

## Projeyi ajana hazırlamak: AGENTS.md ve .cursor/rules

Cursor Agent her oturumda proje kökündeki `AGENTS.md` dosyasını ve `.cursor/rules` altındaki kural dosyalarını okur. .NET projesinde bu dosyaya build, test, lint ve migration komutlarını yazmak; klasör sorumluluklarını belirtmek; DI kayıtlarında uyulması gereken ömür kurallarını eklemek gerekir. Ajanın belirsiz kaldığı noktalarda varsayım yapmasını istemiyorsanız, aşağıdaki gibi kısa ama net bir dosya yeterlidir.

```
# .NET projesi kuralları

## Komutlar
- Build: dotnet build src/MyApp.sln
- Test: dotnet test tests/MyApp.Tests/MyApp.Tests.csproj --no-restore
- Lint: dotnet format src/MyApp.sln --verify-no-changes
- Migration: dotnet ef migrations add <Name> --project src/MyApp.Infrastructure --startup-project src/MyApp.Api

## Klasör kuralları
- src/MyApp.Domain: entity ve value object'ler; burada EF Core veya veri erişim bağımlılığı olmasın.
- src/MyApp.Application: use case'ler; yalnızca domain'e bağımlı olsun.
- src/MyApp.Infrastructure: EF Core DbContext, repository implementasyonları, DI kayıtları.
- src/MyApp.Api: controllers, minimal API endpoint'leri; iş mantığı buraya yazılmasın.

## .NET'e özel kurallar
- Yeni bir servis eklerken her zaman DI kaydını interface ile birlikte ekle.
- EF Core'da `Include` kullanmadan lazy loading varsayma; gerekirse explicit loading yap.
- Migration eklerken yalnızca model değişikliğini yansıtan bir isim kullan; migration içeriğini incele.
- Test projesinde xUnit kullan; her use case için en az bir test yaz.
- `var` yerine tipi açık yazmak istemiyorsan proje ayarına `ImplicitUsings` ve `Nullable` değerlerini kontrol et.
```

Bu dosyayı `AGENTS.md` olarak kaydedin. Daha büyük ekiplerde `.cursor/rules` içinde katman başına ayrı `.mdc` dosyaları tutmak da işe yarar; örneğin `domain-rules.mdc`, `api-rules.mdc`. Önemli olan, .NET’e özel komutların ve klasör sınırlarının tek bakışta görünmesidir. Ajan bu kuralları her değişiklikte dikkate alır. Kurulumun terminal tarafıyla ilgili daha fazla pratik için [Cursor CLI nasıl kullanılır?](/blog/cursor-cli-nasil-kullanilir/) içeriğine göz atabilirsiniz.

## Çalışma döngüsü: planla, küçük adımlar, testleri çalıştır, diff’i incele

Ajanla çalışırken en verimli döngü şudur: görevi küçük parçalara bölün, ajanın planı önce yazmasını isteyin, ardından tek bir değişiklik yaptırın, `dotnet test` çalıştırın ve `git diff` ile çıktıyı inceleyin. Bu, özellikle EF Core model değişikliklerinde ve DI kayıtlarında istenmeyen yan etkileri erken yakalar. Ajanın aklında tüm çözümü tutmasını beklemek yerine, her adımı testlerle doğrulayın.

Aşağıdaki promptlar .NET’e özgü olduğu için genel kod üretiminden daha iyi sonuç verir:

- Yeni bir `GET /api/products` endpoint’i ekle; `Product` entity’sini EF Core’dan oku, sonucu DTO’ya map et, DI kaydını unutma.
- `OrderService.PlaceOrder` metodunu transaction kullanacak şekilde refactor et; mevcut xUnit testlerini güncelle.
- `Product` tablosuna `Price` kolonu (decimal(18,2)) ekleyecek bir EF Core migration oluştur; migration dosyasını incele.
- `dotnet build` çalıştır, hataları düzelt ve yaptığın değişiklikleri kısa bir özet halinde sırala.
- `OrderService` için NUnit test projesinde 5 yeni test ekle; bağımlılıkları mockla ve async testleri doğru yaz.

## Cursor Agent’ın .NET’te iyi olduğu işler ve dikkat edilmesi gerekenler

Cursor Agent, CRUD endpoint’leri, AutoMapper/Mapster profilini, DI kayıtlarını, appsettings.json bağlamalarını ve EF Core migration’larını hızlı üretir. Ayrıca xUnit veya NUnit test iskeleti oluşturmada da başarılıdır. Ancak .NET’e özgü bazı konularda yakından izlenmesi gerekir:

- EF Core’da `Include` çağrılarını gereksiz yere ekleyebilir veya lazy loading proxy varsayımıyla N+1 sorguya yol açabilir. Her sorguyu `ToQueryString()` ile kontrol edin.
- DI yaşam döngüsü hataları: `Scoped` bir servisi `Singleton` içine enjekte etmek gibi hatalar runtime’da patlar. Ajan bunu bazen atlar; servis kayıtlarını tek tek gözden geçirin.
- Migration içeriği: EF Core migration otomatik oluşturulur ancak veri kaybı, default değer veya index değişiklikleri gözden kaçabilir. Migration dosyasını commit etmeden önce mutlaka okuyun.
- `async void` veya `.Result` kullanımı gibi anti-pattern’ler; ajan bazen async akışı bozar.
- Katman ihlalleri: ajan controller’dan doğrudan `DbContext` kullanabilir veya domain katmanına EF Core bağımlılığı ekleyebilir. Mimari kurallarınızı AGENTS.md’de net belirtmezseniz ihlal riski artar.

| Görev | Güvenilir prompt | Yakından izleyin |
| --- | --- | --- |
| CRUD endpoint | `ProductController`'a list/create endpoint ekle, EF Core kullan | DI kaydı, DTO map, validation |
| EF Core migration | `Price` kolonu ekle ve migration oluştur | Migration içindeki default değerler, data kaybı |
| Unit test | `OrderService` testlerini yaz, bağımlılıkları mockla | Mock kurulumu, async/await, test izolasyonu |
| Config binding | `appsettings.json`'daki ayarları `IOptions<T>` ile bağla | Option sınıfı property isimleri, validation |

## Test ve doğrulama: ajan ile .NET’te güvenli ilerleme

Ajan her değişiklikten sonra `dotnet test` çalıştırabilir; ancak siz de test sonuçlarını incelemeli ve özellikle ajanın eklediği testlerin gerçekten niyeti karşıladığını doğrulamalısınız. EF Core bağımlı testlerde InMemory provider kullanılırsa, ilişkisel bütünlük ve SQL çevirisi test edilmez. Bu yüzden entegrasyon testlerinde SQLite in-memory veya gerçek bir test veritabanı kullanmasını isteyin. `dotnet ef migrations script` ile üretilecek SQL’i önizleyin.

Ayrıca `dotnet format` veya `dotnet build` çıktısını ajanın yorumunu beğenmediyseniz kendiniz çalıştırın. Ajanın diff’ini `git diff -- src/` ile gözden geçirin; özellikle csproj dosyasına gereksiz paket ekleyip eklemediğini kontrol edin. Paket eklerken sürüm uyumluluğunu ve NuGet kaynaklarını doğrulayın.

## Birden fazla ajanı tek .NET projesinde çalıştırmak: AgentVera

AgentVera masaüstü uygulaması; Cursor Agent gibi CLI ajanlarını yan yana gerçek terminallerde çalıştırır. .NET projelerinde en çok işe yarayan özellikleri şunlar: her ajan kendi git worktree’sinde paralel çalışabilir, böylece aynı csproj veya migration dosyasını ezmezler. Bir ajanın turu bitince ikinci bir model kodunu otomatik inceler; bulgular file:line olarak bağlanır, özellikle EF Core Include hatalarını yakalar. Her turun checkpoint’i alınır; hatalı bir migration eklediyse tek tıkla geri alınır ve oturum adım adım yeniden oynatılır. Token bütçeleri ise ajan başına gün ve tur bazında sınır koyup maliyeti kontrol eder. Çoklu ajan yaklaşımını derinlemesine değerlendirmek için [paralel kodlama ajanları](/blog/paralel-yapay-zeka-kodlama-ajani-araclari/) içeriğine de bakılabilir.

## Sonuç

Cursor Agent, doğru proje kuralları ve disiplinli bir doğrulama döngüsüyle .NET projelerinde ciddi zaman kazandırır. Ancak onu bir sihirli çözüm olarak değil, EF Core, DI ve test konularında sizin denetiminizi gerektiren bir hızlandırıcı olarak görün. Küçük adımlar atın, her değişikliği test edin ve AGENTS.md dosyanızı proje gerçeğine göre güncelleyin.

## Sık sorulanlar

**Cursor Agent .NET projesinde nasıl başlatılır?** Proje kökünde terminalde cursor-agent komutu çalıştırılır. Ajan AGENTS.md ve .cursor/rules dosyalarını okuyarak çözüm yapısına göre çalışır; başlangıçta bu dosyaya .NET komutlarını eklemek faydalıdır.

**Cursor Agent .NET testlerini kendisi çalıştırabilir mi?** Evet, dotnet test komutunu önerip çalıştırabilir. Ancak EF Core bağımlı testlerde InMemory provider yerine SQLite veya gerçek test veritabanı kullanmasını siz yönlendirmelisiniz; sonuçları yine de inceleyin.

**Cursor Agent EF Core migration ekleyebilir mi?** Evet, dotnet ef migrations add ve database update komutlarını kullanabilir. Migration dosyasını commit etmeden önce default değer, index ve veri kaybı açısından mutlaka okumalısınız.

**AGENTS.md’de .NET için neler olmalı?** Build, test, lint ve migration komutları; src/test klasör sorumlulukları; DI kayıt kuralları; EF Core migration akışı; namespace ve kod stili kuralları. Kısa ve net olması ajanın uyumunu artı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/
