# Maguyva'da C# Desteği: .NET Kod Tabanları için Daha Güvenli Yeniden Yapılandırmalar

Canonical source: https://maguyva.ai/tr/languages/csharp

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva, AST ayrıştırma ve sembol çıkarımıyla C#'ı destekler; böylece yapay zeka ajanları .NET servisleri, LINQ ağırlıklı iş mantığı, paylaşılan kütüphaneler ve uzun ömürlü kurumsal repolar genelinde çalışabilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .cs, .csx
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- Web uç noktalarını, işleri ve paylaşılan kütüphaneleri bir arada barındıran ASP.NET, worker-service ve iç platform repoları.
- LINQ, asenkron akışlar ve çerçeve soyutlamalarının gerçek yürütme yolunu gizlediği olgun .NET sistemlerini sürdüren ekipler.
- İş mantığını yeniden yazmadan önce bir ajanın katmanlı .NET kodunda temellendirilmiş kalıp kalamayacağını test eden ekipler.

## Ajan iş akışları

- İş mantığını düzenlemeden önce bir controller, service ve repository yolunu takip edin.
- Bir modelin, DTO'nun veya paylaşılan yardımcı programın repo genelinde nerede örneklerinin oluşturulduğunu inceleyin.
- Ajanın herhangi bir şeyi yeniden yazmasına izin vermeden önce çevredeki LINQ veya asenkron desenleri anlayın.

## Olgun .NET kod tabanlarında önemli olan

Yapay zeka araçlarını kullanan pek çok ekip, sıfırdan başlanan JavaScript projelerinde değil, .NET'te yaşıyor. API'leri, worker süreçleri, paylaşılan modelleri, iç kütüphaneleri ve yıllara dayanan iş mantığı var. Soru, bir LLM'in C# sözdizimi üretip üretemeyeceği değil. Soru, tek bir yanlış düzenlemenin servisler, modeller ve paylaşılan soyutlamalar boyunca yayılabileceği bir repoda temellendirilmiş kalıp kalamayacağıdır.

Bu yüzden bir C# sayfası "destekleniyor" demekten daha spesifik olmak zorundadır.

## Maguyva C#'ta gerçekte neyi çıkarıyor

Maguyva `using` import'larını normalize eder, tanımlardan `?` ve `[]` gibi nullable ve dizi son eklerini kaldırır ve kurucu benzeri çağrı düğümlerini, generic parantezleri kaldırarak örnek oluşturma olarak ele alır. Bunlar, sınıf ağırlıklı C# repolarında yararlı ayrıntılardır çünkü grafı gerçek alan türleri etrafında daha temiz hale getirirler.

Yapılandırma ayrıca çok sayıda BCL ve LINQ gürültüsünü filtreler. Bu, kulağa geldiğinden daha önemlidir. Olgun .NET kod tabanlarında, çerçeve çağrılarının hakim olduğu bir graf pek yararlı değildir. Yararlı graf, repoya özgü controller'ların, servislerin, DTO'ların ve yardımcı sınıfların hâlâ öne çıktığı graftır.

## .NET kod tabanları için yararlı MCP iş akışları

Pratik akış genellikle şununla başlar:

- Controller, service, DTO veya model adını bildiğinizde `find_symbol`.
- Kodun birçok yerinden kullanılabilecek paylaşılan bir servisi veya türü düzenlemeden önce `dependency_search`.
- Yol birden fazla katmana yayıldığında "bu isteği controller'dan repository'ye kadar takip et" gibi istemler için `get_task_context`.

## Bu sayfa ne zaman yararlı

Bu sayfa, sadece bir oyuncak proje değil, gerçek bir .NET kod tabanında yapay zeka yardımı isteyen ekipler içindir. Çevredeki sistem .NET'ten çok JVM ağırlıklıysa [Java](/tr/languages/java) ile karşılaştırın. C# katmanınız daha büyük çok dilli bir sistemin yalnızca bir parçasıysa, bitişikteki [TypeScript](/tr/languages/typescript) sayfası da genellikle ilgilidir.

## Motor ayrıntıları

- `using` önekleri import'larda normalize edilir ve `?` ile `[]` gibi nullable ya da dizi son ekleri sembol tanımlarından kaldırılır.
- Instantiation, generic parantez temizliğiyle çağrı düğümlerini kullanır; bu, grafta constructor benzeri kullanımı okunur tutmaya yardımcı olur.
- Yapılandırma, repoya özgü servisleri ve modelleri yüzeye çıkarmayı kolaylaştırmak için büyük miktarda BCL ve LINQ gürültüsünü açıkça filtreler.

## Yararlı MCP giriş noktaları

- `find_symbol`: Dokunmak üzere olduğunuz controller, servis, DTO ya da paylaşılan tür adını bildiğinizde kullanın.
- `dependency_search`: Uygulama genelinde kullanılan bir çekirdek servisi ya da modeli düzenlemeden önce gelen dolaşımı kullanın.
- `get_task_context`: Katmanlı .NET kod tabanlarında "bu isteği controller'dan repository'ye takip et" gibi promptlar için kullanışlıdır.
