VBScript'in Geleceği ve Classic ASP

VBScript kullanan bir ASP uygulamasının bakımında, uygulama kodu ile sunucunun destek durumunu birlikte değerlendirmek gerekir. ASP desteğinin açıklanması ile VBScript'in kullanımdan kaldırılma planı farklı kapsamları anlatır. Planı okurken Windows istemci sürümlerine ilişkin aşamaları, Windows Server için verilen bilgiden ayırın. Böylece bir istemci tarihi, sunucudaki uygulamaya ait kesin bir son gün gibi yorumlanmaz.

VBScript Nedir ve Neden Kullanımdan Kaldırılıyor?

VBScript, Microsoft'un 1996'da sunduğu hafif bir betik dilidir. Windows üzerinde görev otomasyonu ve uygulamaları denetleme amacıyla kullanılmış, ASP ve Windows Script Host ile birlikte yaygınlaşmıştır. Microsoft'un VBScript takvim açıklaması, dili aşamalı olarak kullanımdan kaldırma ve görev otomasyonunda PowerShell'e yönelme planını anlatır. Aynı açıklamada PowerShell ve JavaScript alternatifler olarak anılır; bu önerilerin hangi kullanım alanına yönelik olduğunu ayrıca değerlendirmek gerekir.

Bir geçiş planına başlarken bütün betikleri aynı gruba koymayın. Sunucuda sayfa üretimi, zamanlanmış bir yönetim görevi ve tarayıcı içindeki kod için ayrı kayıtlar oluşturun. Her kayıtta kodun yaptığı işi, kullandığı veriyi ve çalıştığı ortamı belirtin. Bu çalışma, dil değişikliğini yalnızca dosya uzantılarını değiştirmek gibi ele almamak için yararlı bir başlangıçtır.

Üç Aşamalı Takvim

Windows istemci tarafı için açıklanan plan üç aşamadan oluşur. İlk aşamada VBScript, Windows 11 24H2 üzerinde önceden yüklenen ve varsayılan olarak etkin olan bir FOD, yani isteğe bağlı özellik olarak sunulur. Özelliğin isteğe bağlı olması, bu ilk aşamada mutlaka elle kurulacağı anlamına gelmez.

İkinci aşama yaklaşık 2027 için belirtilir. Bu aşamada VBScript FOD artık varsayılan olarak etkin olmayacaktır. VBScript'e bağımlı uygulama ve süreçler için özelliğin etkinleştirilmesi gerekecektir. Kaynaktaki yaklaşık zaman ifadesini kesin bir gün veya bütün Windows ürünlerine uygulanacak ortak bir tarih olarak değerlendirmeyin.

Üçüncü aşamada VBScript, gelecekteki Windows sürümlerinden kaldırılacaktır. Dilin dinamik bağlantı kitaplıkları, yani .dll dosyaları da kaldırılacağından VBScript'e bağlı projeler çalışmayı durduracaktır. Açıklamada bu aşama için kesin bir tarih verilmez. Hazırlık planında belirsiz tarihi tamamlamak yerine hangi bağımlılıkların değiştirileceğini, değişikliklerin nasıl sınanacağını ve sorumlularını belirleyin.

Windows Server 2025'te VBScript

Windows Server özellik belgesi, VBScript'in Windows Server 2025'te önceden yüklü bir FOD olarak bulunduğunu belirtir. Kaldırılma için yalnızca işletim sisteminin sonraki bir sürümü ifadesi kullanılır. Dolayısıyla istemci takvimindeki yaklaşık 2027 bilgisini Windows Server için açıklanmış bir kaldırılma tarihi olarak aktarmak doğru değildir.

Sunucu envanterine işletim sistemi sürümüyle birlikte VBScript özelliğinin durumunu da yazın. Bir uygulamanın gereksinimlerini incelerken bu kaydı ayrı bir kontrol maddesi olarak tutun. Hedef ortamda özelliğin bulunduğunu doğrulamak ile daha sonraki sunucu sürümlerindeki varlığını varsaymak farklı değerlendirmelerdir. Hazırlık sırasında yalnızca sürüm adına dayanan bir karar vermeyin.

ASP Desteği ve İşletim Sistemi Yaşam Döngüsü

Microsoft'un Türkçe ASP destek belgesine göre ASP, desteklenen bütün IIS sürümlerinde desteklenir. Hem ASP'nin hem de IIS'nin destek ömrü, konak Windows işletim sisteminin destek yaşam döngüsüne bağlıdır. VBScript takvimini okurken bu destek açıklamasını da hesaba katın; iki belgenin kapsamını birbirinin yerine kullanmayın.

Windows Server 2025 takviminde destek başlangıcı 1 Kasım 2024, temel destek bitişi 14 Kasım 2029 ve genişletilmiş destek bitişi 15 Kasım 2034 olarak listelenir. Bu tarihler işletim sistemine aittir. Bunları VBScript'in gelecekteki Windows Server sürümlerinde bulunacağına ilişkin ayrı bir garanti olarak yorumlamayın.

IIS yaşam döngüsü tablosunda IIS 6.0 için bitiş 15 Temmuz 2015'tir. Windows Server 2012 ve 2012 R2 üzerindeki IIS 8 ve 8.5 için 11 Ekim 2023 belirtilir. IIS 10 ise Windows Server 2016 üzerinde 13 Ocak 2027, Windows Server 2019 üzerinde 10 Ocak 2029 tarihine kadar desteklenir. Bu nedenle envanterde IIS sürümünü, üzerinde çalıştığı Windows sürümüyle birlikte kaydedin.

Mevcut Projeler İçin Hazırlık Listesi

Hazırlığı uygulamanın görünen sayfalarıyla sınırlamayın. Kullanılan betikleri, ortak dosyaları ve uygulamanın çağırdığı işleri listeleyin. Her parçanın beklenen davranışını anlaşılır bir cümleyle yazın. Geçiş kararından önce bu davranışların nasıl kontrol edileceğini belirlemek, yalnızca başarılı açılış ekranına göre değerlendirme yapmayı önler.

  • Windows ve IIS sürümlerini, destek bitişlerini ve gerekli özellikleri aynı envanterde tutun.
  • VBScript bağımlılıklarını sunucu, yönetim görevi ve tarayıcı kullanımına göre ayrı inceleyin.
  • Temel kullanıcı işlemlerinin beklenen girdilerini ve çıktılarını test listesine yazın.
  • Bir deneme ortamında hem başarılı işlemleri hem hata durumlarını karşılaştırın.
  • Değiştirilecek parçaların sırasını, kabul ölçütlerini ve geri dönüş adımlarını önceden belirleyin.

Bu liste bir planlama çerçevesidir. Uygulamaya ait kararları, gerçek bağımlılıkların incelenmesi ve deneme sonuçlarıyla verin. Uygulama geçişinin diğer başlıklarını Classic ASP'den ASP.NET Core'a geçiş rehberinde birlikte değerlendirebilirsiniz.

Tarayıcıdaki VBScript Kodları

Microsoft, web sayfalarındaki VBScript işlevselliğinin Internet Explorer 11 öncesindeki tarayıcılarla sınırlı olduğunu belirtir ve ikinci aşamadan önce JavaScript'e geçiş önerir. Açıklamada Microsoft Edge, Mozilla Firefox, Google Chrome ve Apple Safari'nin VBScript desteğini hiçbir zaman uygulamadığı da belirtilir. Buradaki öneri, tarayıcıda çalışması beklenen sayfa kodlarına yöneliktir.

Tarayıcı betiklerini incelerken kullanıcıya görünen davranışları ayrı bir listeye alın. JavaScript ile karşılıklarını hazırladıktan sonra her davranışı hedef tarayıcılarda deneyin. Sunucuda ASP sayfasının üretilmesi ile tarayıcıda etkileşim sağlanması için ayrı kontrol listeleri kullanın. Böylece tarayıcı koduna yönelik bir öneri, sunucudaki bütün uygulamanın kendiliğinden değiştiği varsayımına dönüşmez.