Salesforce'un Winter '27 sürümü (API 68.0), 12 Ekim 2026'da genel kullanıma açılıyor. Bu sürümde Agentforce tarafı yine gündemin merkezinde olsa da asıl sürpriz, günlük geliştirme işini doğrudan etkileyen platform yenilikleri.

Yıllardır etrafından dolandığımız heap limitleri, mock'larla sınırlı kalan entegrasyon testleri ve LWC'de sadece formatlama için yazılan getter'lar bu sürümle ciddi şekilde değişiyor. Bu yazıda Apex, LWC ve API tarafında projelerimize en hızlı yansıyacak yenilikleri, dikkat edilmesi gereken noktalarla birlikte ele alıyoruz.

Not: Bazı özellikler beta veya Developer Preview aşamasında. Bu özellikleri production ortamında kullanmadan önce sandbox'ta denemek ve sürüm notlarını takip etmek gerekiyor.

1. Apex Heap Limitleri Artıyor

Winter '27 ile senkron işlemlerde heap limiti 6 MB'dan 10 MB'a, asenkron işlemlerde ise 12 MB'dan 25 MB'a çıkıyor. Bu, özellikle production'daki yüksek veri hacminde ortaya çıkan ve geliştirme ortamında yakalanamayan heap hatalarını ciddi ölçüde azaltacak.

İşlem TürüÖnceki LimitWinter '27Artış
Senkron (trigger, buton tıklaması)6 MB10 MB%66
Asenkron (Batch, Queueable, Future)12 MB25 MB%108
  • Geçiş Ayarı: Salesforce, "Enforce the Summer '26 Apex heap limit" adında bir ayar ekledi. Sandbox Winter '27'ye geçmiş ama production henüz geçmemişse, bu ayarla kodunuzu eski limitlere göre test edip deploy sırasında sürprizle karşılaşmazsınız.
  • Kontrol: Org'unuzdaki güncel limiti Limits.getLimitHeapSize() metoduyla doğrulayabilirsiniz.
  • Dikkat: Limitin artması, verimsiz kodu meşrulaştırmamalı. Batch scope'larını küçültmek için yazılmış geçici çözümleri gözden geçirmek için iyi bir fırsat; ancak büyük koleksiyonları bellekte tutmak yerine SOQL for-loop kullanmak hâlâ en doğru yaklaşım.

2. Gerçek Callout ile Apex Entegrasyon Testleri (Developer Preview)

Mock callout'lar, kodumuzun belirli bir formattaki yanıtı doğru işlediğini kanıtlar; ancak dış servisin gerçekte döndüğü yanıtı garanti etmez. Winter '27 ile gelen entegrasyon testleri, Apex testlerinden gerçek HTTP callout yapılmasına izin veriyor.

  • Kurulum: Scratch org tanım dosyasında ApexIntegrationTests özelliği açılır, test sınıfı ve ilgili metotlar @IntegrationTest anotasyonu ile işaretlenir.
  • Veri Yönetimi: Bu testlerde otomatik rollback yok. Paylaşılan test verisi @BeforeClass ile oluşturulur, işlem sonunda commit edilen veri @TearDown metodu ile temizlenir.
  • Kısıtlar: Aynı anda yalnızca bir entegrasyon testi çalışabiliyor ve testler sadece asenkron olarak koşturulabiliyor.

Entegrasyon yoğun projelerde, dış sistemin API formatı sessizce değiştiğinde bunu production'a çıkmadan yakalamak için değerli bir araç. Henüz Developer Preview olduğu için şimdilik scratch org'larda denemek doğru olur.

3. LWC Tarafında İki Önemli GA

Karmaşık Template İfadeleri (Complex Template Expressions)

Spring '26'da beta olarak gelen bu özellik Winter '27 ile genel kullanıma açıldı. Artık HTML template içinde JavaScript ifadelerinin geniş bir alt kümesi kullanılabiliyor.

  • Daha Az Getter: Sadece veri formatlamak veya CSS class metni oluşturmak için yazılan getter'lara gerek kalmıyor.
  • Döngülerde Kolaylık: Getter, döngüde hangi eleman için çağrıldığını bilemediği için veriyi JS tarafında map ile zenginleştirmek zorundaydık. Artık ham veriyi bağlayıp hesaplamayı template'te yapabiliyoruz.
  • Opt-in: Özellik yalnızca API 66.0 ve üzeri sürümlerde çalışıyor ve bileşen bazında .js-meta.xml dosyasından açılıyor.

Üçüncü Parti Web Bileşenleri (lwc:external)

Gelişmiş bir üçüncü parti bileşeni LWC'de göstermek için iframe (stil sorunlarıyla birlikte), static resource ile kütüphane yüklemek veya bileşeni sıfırdan yazmak gerekiyordu. Artık template'teki elemana lwc:external direktifi eklenerek standart web bileşenleri doğrudan kullanılabiliyor.

Bu iki özellik birlikte düşünüldüğünde, JS dosyalarımız incelecek ve bakım maliyeti düşecek. Yeni bileşenlerde API sürümünü güncel tutmak, bu özelliklerden yararlanmanın ön koşulu.

4. SOQL, REST API ve Derleme Tarafında Küçük Ama Etkili Değişiklikler

SOQL'de Alanları Karşılaştırma: FORMULA() (Beta)

İki alanı karşılaştırmak için ya sadece sorguda kullanılacak bir formula alanı oluşturuyor ya da fazla veri çekip Apex'te filtreliyorduk. Artık WHERE koşulu içinde basit hesaplamalar yapılabiliyor:

SELECT Id, Name FROM Opportunity
              WHERE FORMULA('Amount_To_Pay__c - Amount_Paid__c') > 0

Özellik şu an beta; API 68.0 ve üzeriyle sandbox, Developer Edition ve scratch org'larda çalışıyor, production'da henüz kullanılamıyor.

REST API'de "latest" Sürümü

Entegrasyonlarda URI içindeki sürüm numarası yerine artık latest yazılabiliyor: /services/data/latest/sobjects/Account. Her sürümde URI güncelleme derdi ortadan kalkıyor. Ancak davranışı sürümden sürüme değişebilecek kritik entegrasyonlarda sabit sürüm kullanmaya devam etmek daha kontrollü bir tercih olabilir.

Sadece Geçersiz Apex Sınıflarını Derleme

Büyük org'larda tüm Apex sınıflarını yeniden derlemek uzun sürdüğü için genelde ertelenir. Winter '27 ile yalnızca geçersiz (invalid) sınıf ve trigger'ları derleme seçeneği geliyor.

Bonus: Managed Package'larda Alan Adı Çakışması

ISV tarafında Database.QueryOptions üzerindeki explicitNamespace özelliği ile dinamik SOQL sorgularında abone org'daki aynı isimli custom alanlarla çakışma yaşanmasının önüne geçilebiliyor.

Sonuç: Geçişe Nasıl Hazırlanmalı?

Winter '27, geliştiriciler için uzun zamandır beklenen iyileştirmeleri tek sürümde topluyor. Production geçişinden önce aşağıdaki adımları atmak faydalı olacaktır:

  • Sandbox'ları güncel metadata ile yenileyip mevcut test sınıflarını Winter '27 üzerinde çalıştırın.
  • Heap hatası nedeniyle scope'u düşürülmüş Batch job'ları listeleyin ve yeni limitlerle yeniden değerlendirin.
  • Yeni LWC bileşenlerinde API sürümünü güncelleyerek karmaşık template ifadelerinden yararlanın.
  • Beta ve Developer Preview özelliklerini yalnızca sandbox ve scratch org'larda deneyin.

Bu yeniliklerin projelerimize etkisini birlikte takip etmek, ekip olarak sürüm geçişlerini daha sorunsuz yönetmemizi sağlayacaktır.