GitHub Copilot Modernization C++ İçin GA: MSVC Yükseltmesi Artık Kolay
Şöyle ki, Açık konuşayım: C++ projelerinde MSVC sürüm yükseltmesi, sektörde kimsenin isteyerek üstlendiği işlerden biri değil. Onlarca yıllık kod tabanı, üçüncü parti kütüphaneler, deprecated CRT fonksiyonları, kaybolan std::tr1 namespace’leri, Windows SDK’dan sessizce çıkarılmış API’ler… Sonra bir sabah biri “abi şu projeyi yeni toolset’e taşıyalım” diyor ve takvimde bir-iki ay yok oluyor. Kısa. Ama acı.
Neyse, lafı dolandırmayalım. Microsoft, Visual Studio 2026 sürüm 18.7 ile birlikte GitHub Copilot modernization for C++ özelliğini önizlemeden çıkarıp Genel Kullanıma (GA) sundu. Copilot Chat penceresinde @Modernize yazarak çağırdığınız bu ajan, MSVC Build Tools yükseltmenizi baştan sona üstleniyor. Ve dürüst olayım — preview döneminden bu yana epey toparlamışlar, yanı ilk gördüğüm halinden baya farklı dürüyor.
Hmm, bunu nasıl anlatsamdı…
Bu yazıda ajanın ne yaptığını, GA ile neyin değiştiğini, kurumsal tarafta Türkiye’deki ekipler için ne anlama geldiğini ve “uygulayalım dedik, nereden başlayalım?” sorusuna benim nasıl baktığımı paylaşacağım. Peki neden? Çünkü bu iş kağıt üstünde kolay görünür, sahada işe bambaşka bir şeye dönüşür.
MSVC yükseltmesi neden bu kadar kanlı bir iş?
Ne yalan söyleyeyim, Sahada şunu çok görüyorum: bir C++ projesinin VS 2015 toolset’inde takılı kalmasının arkasında genelde tembellik yok. Aksine proje çalışıyor, müşteri memnun, kimse dokunmak istemiyor; ta ki güvenlik bildirimi gelene ya da yeni bir bağımlılık sadece modern toolset destekleyene kadar (inanın bana). İşte o noktada işler karışıyor.
MSVC yükseltmesinde insanı boğan şey tek bir hata değil. Yüzlerce küçük şey var, ve hepsi ayrı ayrı uğraştırıyor; mesela eski uyarıların artık hata sayılması (C++ conformance gittikçe sıkılaşıyor), std::tr1 ve std::auto_ptr gibi parçaların kaldırılması, CRT fonksiyonlarının bazılarının yok olması ya da imzasının değişmesi, Windows SDK’dan çıkmış API’lerin linker hatası olarak karşınıza dikilmesi… Bir de üçüncü parti kütüphanelerin sizinle aynı hızda güncellenmemesi var ki, orası ayrı dert.
Bunların her biri tek başına çözülebilir (ciddiyim). Ama hepsi bir aradayken geliştirici bir hatayı çözerken ikincisini unutuyor, üçüncüsünü yanlış yorumluyor; sonra da yükseltme işi ay bazına yayılıyor. Evet, tam da böyle oluyor.
@Modernize ajanı tam olarak ne yapıyor?
Ajan hem MSBuild tabanlı projelerle (.sln, .vcxproj) hem de CMake projeleriyle çalışıyor. Yanı vcpkg + CMake dünyasındaysanız da klasik solution dosyalarıyla yaşıyorsanız da fark etmiyor; ikisi de destekli. Güzel tarafı burada başlıyor.
Süreç üç aşamada ilerliyor. Bunu insanın gerçekten yapacağı şekilde tasarlamışlar, sevdiğim taraf da bu: önce bakıyor, sonra düşünüyor, en son elini sürüyor.
1. Değerlendirme (Assessment)
Ajan önce projeyi yeni toolset ile build etmeye çalışıyor. Çıkan neredeyse tüm hataları, uyarıları ve yükseltmeye bağlı sorunları tek tek kataloglayıp önünüze koyuyor; burada hoşuma giden nokta şu: önceden var olan sorunlarla yükseltmenin getirdiği sorunları ayırabiliyor. Yanı “abi zaten bu uyarı vardı” deme şansınız oluyor.
2. Planlama (Planning)
Her bir soruna nasıl yaklaşacağını yazıyor, gerekçesini de açıklıyor. Ve bence en kritik nokta şu: kod değişmeden önce plana müdahale edebiliyorsunuz. “Hayır şu kütüphaneye dokunma, biz önü zaten kaldıracağız” diyebilirsiniz ya da “bu uyarıyı şimdilik geç” diyebilirsiniz;. Ipler tamamen otomatikte kalmıyor.
3. Uygulama (Execution)
Planı küçük ve sıralı görevlere bölüyor. Her adımda doğrulama yapıyor; yanı “bir sürü değişiklik yaptım, böl şans” demiyor (en azından benim deneyimim böyle). Bu ne anlama geliyor? Her commit sonrası build alıyor, hata varsa geri dönüyor; biraz ağır ama daha güvenli hissettiriyor.
Kısa bir not düşeyim buraya.
Bir ajanın “agentic” sayılması için bence bu üç aşama şart: keşfet, planla, uygula.
@Modernizebu şablonu doğru kuruyor. İnsanı sürecin dışına atmak yerine kontrolü insana bırakıp tekrarlayan kısmı üstleniyor.
Preview’dan GA’ya neler değişti?
Microsoft Bing ekibinden Caio Sabino Silva’nın 10+ yıllık bir projeyi MSVC 14.50’ye taşımak için bu ajanı kullandığı söyleniyor; tahmini birkaç aylık iş birkaç haftada bitmiş. XBOX Platform ekibinden Ameer Jalil işe “üçüncü parti kütüphaneleri dışarıda bırakmak gibi taviz vermeden işi bitirdik” diyor. Bunlar Microsoft’un kendi ekiplerinden çıkan referanslar tabi; biraz tuzla okumak lazım. Yine de fena değil (ki bu çoğu kişinin gözünden kaçıyor)
Açıkçası, GA ile birlikte üç tane somut iyileştirme gelmiş:
- Scope guardrails: Ajan artık “bu hata yükseltmeden mi geldi yoksa zaten var mıydı?” sorusunu çok daha iyi cevaplıyor; sizi alakasız işlere sürüklemiyor.
- Flow modes: Süreci farklı tempolarda çalıştırabiliyorsunuz. Tam otomatik mi gitsin, her adımda onay mı istesin; karar sizin.
- Stability: Preview’da arada kilitlenen ya da takılıp kalan akışlar artık daha sağlam çalışıyor gibi dürüyor; en azından duyurudan ben bunu anladım.
Türkiye’deki ekipler açısından bakınca
Şimdi kurumsal danışmanlık şapkamı takıp konuşayım. Türkiye’deki C++ kullanan şirketler — bankaların core sistemleri, savunma sanayii, oyun stüdyoları, gömülü sistem üreten firmalar — genellikle MSVC sürüm yükseltmelerinde baya geride kalıyor. Bunun birkaç sebebi var ve açıkçası hepsi tanıdık geliyor (en azından benim deneyimim böyle)
Birincisi regülasyon yükü. Bankacılıkta veya kamu işlerinde kullanılan bir kütüphaneyi yükseltmek demek bazen baştan sona yeniden sertifikasyon süreci demek olabiliyor; ekip de doğal olarak “çalışıyorsa dokunma” moduna geçiyor. Bu refleks kötü değil aslında, sadece bedeli erteliyor.
İkincisi ekip büyüklüğü. ABD’deki büyük bir şirketin platform ekibi 30 kişiyken bizdeki muadili çoğu zaman 5-6 kişi oluyor; o yüzden “iki ay sürecek yükseltme projesi” başka hiçbir iş yapılamaması anlamına gelebiliyor. @Modernize gibi araçların gerçek değeri de tam burada çıkıyor — süreyi haftalara hatta günlere indirmek küçük ekipler için baya rahatlatıcı oluyor.
Üçüncüsü ve belki en önemlisi lisanslama konusu. Bu araç GitHub Copilot lisansına dahil; yanı Copilot Business ya da Enterprise aboneliğiniz varsa ekstra ödeme yok. Düşününce kurumsal bir C++ yükseltmesini kıdemli bir geliştiriciye iki ay yaptırmanın maliyetine kıyasla Copilot Enterprise’ın yıllık maliyeti gerçekten hafif kalabiliyor:
| Senaryo | Tahmini Süre | Yaklaşık Maliyet (kıdemli mühendis) |
|---|---|---|
| Manuel MSVC yükseltme (orta ölçekli proje) | 6-8 hafta | ~₺300000 — ₺500000 |
@Modernize destekli yükseltme |
1-2 hafta | ~₺60000 — ₺120000 + Copilot lisansı |
| Hiç yapmamak (teknik borç) | ∞ | Bunu sonra katlanarak ödersiniz |
Rakamlar tabi varsayımsal; projenizin durumuna göre oynar ama oran fikrini veriyor.
@Modernize‘ı tek bir alt projede deneyin. Sonuçları yönetime götürürken somut zaman tasarrufu olsun; soyut “verimlilik artıyor” cümlesinden çok daha ikna edici dürüyor.
Hangi durumda işe yarar, hangi durumda yaramaz?
Eh, Bu ajan her derde deva değil, önü baştan söyleyeyim. Şu durumlarda baya işe yarar: standart MSVC toolset yükseltmesi yapıyorsanız (mesela v141’den v143’e ya da 14.50’ye), build sistemi MSBuild veya CMake işe, tekrarlayan mekanik hatalar varsa (deprecated API kullanımı gibi) ve üçüncü parti bağımlılıklarınız hâlâ aktif olarak maintain ediliyorsa… orada eli rahat ediyor.
Kısacası iş düzenliyse agent iyi koşuyor.
Daha az umut bağlamanız gereken yerler işe biraz daha çetrefilli: kendi yazdığınız özel build sistemi kullanıyorsanız (Bazel custom rules gibi), çok eski. Terk edilmiş kütüphanelere sıkı bağımlılığınız varsa çünkü onları ajan mucize gibi kaldıramazsınız, projeniz Linux/Mac tarafında da derleniyorsa çünkü ajan sadece MSVC tarafına bakacak ve lisans ya da regülasyon yüzünden yaptığı her değişikliği insanın tek tek gözden geçirmesi gerekiyorsa… o zaman otomasyon kazancı azalır ama değerlendirme ve planlama aşamaları yine değer taşır.
Bir uyarı: “tam otomatik”e güvenmeyin
Hmm, şunu da söyleyeyim: demolarda her şey güllük gülistanlık görünüyor ama gerçek hayatta özellikle eski projelerde ajan bazen yanlış varsayımla yola çıkıp 3-4 commit sonra çıkmaza giriyor. O yüzden ben kurumsal müşterilere flow mode’u “her adımda onayla”‘ya çekmelerini öneriyorum; ekstra 1-2 saat gider. Yanlış bir kararla iki günü çöpe atmazsınız.
Çok konuştum, örnekle göstereyim.
İlk adımlar: nereden başlamalı?
Diyelim ki ikna oldunuz ve “tamam bizim de eski C++ projemiz var” diyorsunuz. Pratik başlangıç planını ben şöyle kurarım:
- Kullandığınız Visual Studio’yu 2026 sürüm 18.7 veya üstüne yükseltin.
- Kopilot eklentisinin güncel olduğundan emin olun.
- Küçük bir alt projeden başlayın.
- Zorunlu olarak bir git branch açın.
- Tespit edilen assessment çıktısını ekipçe gözden geçirin.
- Kod değişmeden önce plan aşamasına müdahale edin. (bu kritik)
- Tüm işi tek commit’e yığmayın; küçük commit’ler isteyin.
Neyse uzatmayayım: ana solution’da 50 proje varsa en az bağımlılığı olan bir tanesinden başlamak genelde daha akıllıca oluyor çünkü sonuçtan ders çıkarabiliyorsunuz ve bütün sistemi aynı anda riske atmıyorsunuz.
Ayrıca bu ajan sadece C++ değil.NET projeleri için de modernization desteği veriyor. Yanı aynı pakette iki dünyayı birden taşıyabiliyorsunuz; bu konuyu daha önce yazmıştım. Detaylarını .NET Day Agentic Modernization: Eski Uygulamalara Yeni Hayat yazısında bulabilirsiniz.
Build sorunlarını çözmenin yeni yolu
Mesele sadece modernization değil tabiî yalnızca oraya odaklanırsak eksik kalırız. Bir projenin neden derlenmediğini anlamak için MSVC çıktısının binlog dosyalarını analiz etmek gerekiyor ki bu tarafta Microsoft’un Binlog MCP Server tarafında da güzel ilerlemeler var; Binlog MCP Server: Build Sorunlarını Copilot’a Çözdürmek yazısında bahsetmiştim zaten. Bu iki aracı birlikte kullanmak build sorunlarına bakış açınızı ciddi biçimde değiştiriyor.
Madem konu açıldı… MSVC tarafındaki genel gidişatı merak edenler için MSVC Build Tools Haziran 2026 Önizleme: Sessiz Ama Derin İyileştirmeler yazısı da iyi bağlam veriyor; toolset’in son durumunu görmeden yükseltme planlamak biraz karanlıkta yürümek gibi oluyor açıkçası.
Kişisel kanaatim
Açık konuşayım: ben C++ modernizasyon işine yıllardır “şart ama kim yapacak?” gözüyle bakanlardanım çünkü gerçekten meşakkatli iş. @Modernize‘ı ilk gördüğümde — preview döneminde — “ya bu da pazarlama olabilir” demiştim ama GA duyurusu ve kullanım örneklerine baktıkça bunun gerçekten boşluk doldurduğunu kabul etmek gerekiyor sanırım.
Tabi her şey toz pembe değil; bunu net söylemem lazım çünkü aksi fazla cilalı olurdu.
Ajan hâlâ tüm hataları çözemiyor.
Karmaşık template kodları?
Eski makro yığınları?
Sıkıştırılmış C++ kütüphaneleri?
Buralarda hâlâ insana ihtiyaç var.
Ama “ilk %70-80’i sen hallet, geri kalan %20’sını ben yapayım” anlaşması bile projeyi yapılabilir hâle getiriyor.
Yapılamaz olandan yapılabilir olana geçmek bence en büyük kazanç.
Tam burası önemli.
Bir de stratejik taraftan bakınca bu ajan aslında “modernization as a service” trendinin parçası.
Microsoft hem.NET’te hem C++’ta hem de muhtemelen yakında başka alanlarda kurumsal kod tabanlarının yenilenmesini agentic AI ile çözmeye soyunuyor.
Bu yön danışmanlık modellerini de etkiler.
Bizler artık sadece “yükseltmeyi biz yapalım” demek yerine “ajanı doğru kuralım ve süreci yönetelim” demeye başlıyoruz.
Değişim sürüyor.
Kimin nereye savrulduğunu zaman gösterecek.
Evet.
Tam da öyle.
`
Sıkça Sorulan Sorular
@Modernize ajanı için ekstra para ödemem gerekiyor mu?
İşte, hayır. Ajan zaten Copilot aboneliğinin içinde geliyor. Copilot Business ya da Enterprise lisansın varsa ek bir ödeme yok. Ama şunu da söyleyeyim: Copilot’un istek limitleri ve premium model kullanımıyla ilgili FinOps tarafı ayrı bir konu — bence bunu da takip etmek gerekiyor. Bu konuda Copilot Usage Metrics API’ye ai_credits_used Geldi: FinOps İçin Ne Anlama Geliyor? yazıma bakabilirsin.
CMake projelerinde de çalışıyor mu, yoksa sadece MSBuild mi?
Bir şey dikkatimi çekti: İkisi de destekleniyor. Yanı hem klasik .sln/.vcxproj tabanlı MSBuild projeleri hem de modern CMake projeleri için ajan gayet iyi çalışıyor. Hatta vcpkg ile birlikte CMake kullanıyorsan, bağımlılık çözümlemelerine de el atabiliyor — bu kısmı açıkçası beklemiyordum, güzel bir özellik (bu konuda ikircikliyim)
Kısa bir not düşeyim buraya.
Ajan yanlış bir şey yaparsa ne oluyor?
Her adımda kontrol sende. Plan aşamasında müdahale edebilirsin, execution sırasında durdurabilirsin, ya da sonradan commit’leri geri alabilirsin. Tecrübeme göre şunu — ki bu tartışılır — bana kalırsa yapman gerekiyor: ayrı bir git branch üzerinde çalış ve ilk denemende flow mode’u “manuel onay” konumunda bırak. Otomatik moda geçmek için önce ajana biraz alışmak lazım.
Linux ya da macOS’taki C++ projelerime de bakıyor mu?
Hayır. Ajan özellikle MSVC Build Tools yükseltmesine odaklanıyor. Hani cross-platform bir kod tabanın varsa, ajan sadece Windows/MSVC tarafına bakıyor; diğer platformlardaki derleme sorunları için ya kendin uğraşman ya da başka araçlara bakman gerekiyor.
Hangi Visual Studio sürümüyle GA öldü?
Visual Studio 2026 sürüm 18.7 ile GA öldü. Önceki sürümlerde preview’daydı, yanı aslında kararlı sayılmazdı. Production projelerinde kullanmayı düşünüyorsan mutlaka 18.7 veya üstüne geç — bence bu konuda taviz verme.
Kaynaklar ve İleri Okuma
GitHub Copilot modernization for C++ is out of preview — Microsoft C++ Team Blog (orijinal duyuru)
Küçük bir detay: Visual C++ Project Properties — Microsoft Learn (MSBuild. Vcxproj referansı)
Şöyle ki, GitHub Copilot Resmî Dokümantasyonu
Visual C++ Change History — sürümler arası kırılma değişiklikleri
Bu içerik işinize yaradı mı?
Benzer içerikleri kaçırmamak için beni sosyal medyada takip edin.








0 comments