Windows 8 & .Net Framework 3.5

    Windows 8 Developer Preview’ın yayınlanması sonrası karşımıza öğrenmemiz gereken pek çok yeni özellikle çıktı. Blogumda fırsat buldukça sizlerle paylaşmaya çalıştığım bu özelliklerden bir tanesi var ki hali hazırda .net framework ile yazılım geliştirenler yakından ilgilendirmekte. Bir önceki yazımda sizlere .net framework 4.5’in bir yerinde yükseltme olduğunu (in-place update) ve 4.0 kurulu sistemlerde bu framework sürümünün yerini aldığından bahsetmiştim. Önceki .net framework sürümlerinde takip edilen yan yana kurulumu (site-by-site installation) incelediğimizde ise aşağıdaki dezavantajlarından bahsetmiştim;

  • Öncelikle, her bir .Net kurulumu diskinizde hatırı sayılır bir alan işgal ediyor olacak. Her ne kadar disk alanları Terabayt’ları bulan günümüz masaüstü bilgisayarları için bu durumu bir problem oluşturmasa da dizüstü, netbook ve özellikle de tablet sistemlerde disk alanı uygulamalarca paylaşılan oldukça değerli bir kaynaktır.
  • Birden fazla .Net sürümüne sahip olmak beraberinde de bir bakım maliyeti getirecektir. Kurullu her bir .Net sürümü ayrı ayrı güncellemelere, hizmet paketlerine, hata düzeltmelerine sahip olacaktır. Bunların takibi kişisel bilgisayar sahipleri için çok büyük bir problem oluşturmuyor olsa da kurumsal sistemlerde önemli bir maliyet kalemi oluşturabilmektedir.

   .Net framework 4.5 ile birlikte yapılacak yerinde yükseltme 4.0 için bu problemlerden bizleri kurtarıyor; peki ya .net framework’ün alt sürümleri? Windows 8’de .net framework 3.5 için de bizleri bekleyen süprizler var. Öncelikli olarak; Windows 8 kurulumu içerisinde varsayılan olarak .net framework 3.5 kurulu olarak gelmemekte. Bu konu pek çoklarının tepkisini çekiyor olsa da sabırla yazımın devamını okumanızı tavsiye ederim.

   Windows 8’de .net framework 3.5 varsayılan olarak kurulu gelmiyor; fakat bu pek çoklarının iddia ettiği gibi Microsoft’un 4.0 altı framework sürümlerine olan desteğini çektiği anlamına kesinlikle gelmemekte. Aksine, .Net framework 3.5 işletim sistemine gömülü bir özellik olarak karşımıza gelmekte; sadece gerektiğinde aktif edilebilecek bir özellik!

   İhtiyaç halinde aktive edilen bir özellik, aynı Windows 7’de yer alan ve varsayılan olarak aktif gelmeten IIS ya da Telnet istemcisi gibi; ama tek bir farkla : bu özellikle kendisine ihtiyaç duyulduğu anda aktif hale gelmekte. Evet, yanlış okumadınız; Windows 8 içerisinde yer alan .net framework 3.5 özelliği kendisine ihtiyaç duyulan ilk anda kullanıcı onayıyla aktif hale gelmekte (Feature-On-Demand). İnternetten kurulum aramaya gerek yok, kullanıcının kurulumu yapmasına gerek yok… sadece aşağıdaki gibi bir diyalogta özelliğin açılması onaylanmalı;

Windows 8 üzerinden .Net Framework 3.5.1'in aktif hale getirilmesi

   Windows 8’de .Net framework 3.5 özelliği iki farklı şekilde aktif hale gelmekte;

  • Uygulamanız kurulum sırasında .net framework 3.5 kurmaya çalışır. .Net framework 3.5 MSI shim kurulumu tespit ederek 3.5 özelliğini sizin için aktif hale getirir, kurulum normal şekilde devam eder.
  • Herhangi bir kurulum olmaması ya da kurulum sırasında .net framework 3.5 kurulumu talep edilmemesi durumunda ise uygulamanız normal şekilde başlayarak .net framework 3.5’i kullanmaya çalışır, bu durum işletim sistemince farkedilerek 3.5 özelliği aktif hale getirilir ve uygulamanız doğru framework’ü kullanabilmesi için yeniden başlatılır.

  Tüm bunların getirdiği avantajlar ise gereksiz bir kurulum ile disk alanı kullanılmamakta ve daha da önemlisi kullanılmayan bir .net framework sürümü için sisteminiz devamlı güncelleme talep etmemekte, olası bir güvenlik açığı oluşturmamakta.

   Tabi ki bu özelliğin aktif edilmesi sırasında kullanıcı onayı talep ediyor olması sıkıntı yaratabilir. Kimilerine göre bu durum son kullanıcı açısından uygulamanızın eski/legacy bir uygulama olarak algılanmasına neden olabilir. Böylesi bir algı tabi ki sadece bu özelliği ilk defa kullanan uygulama için geçerli olacaktır. Böylesi bir algıdan kaçınmak isteyen firmaların ise uygulamalarını .net framework 4.0 ve üzerine taşımaları tabi ki kaçınılmazdır.

   Son olarak, Windows 8 ile birlikte Microsoft’un .net framework 3.5 ve alt sürümlerine desteğini vermediğini söyleyenlerle aynı fikirde olmadığımı belirtmek isterim. Bloğumda sıkça paylaşıtığım aşağıdaki .net yol haritasını inceleyelim;

.Net Framework 1.0-4.5 yol haritası

   Burada dikkat edecek olursanız .net framework 3.5 SP1 CLR 2.0 üzerinde kurulu, aynı 2.0, 3.0 ve 3.5 gibi. Bunun anlamı derleme sonrası ortaya çıkan aradilin (CLI) aynı olduğu. Bu durumda da .net framework 2.0 ve 3.5 SP1 sürümleri arasında geliştirilen uygulamalar .net framework 3.5 SP1 çalışma zamanı üzerinde çalışabilir (istisnai olarak kimi zaman bazı ufak düzenlemeler gerekiyor olsa da). Bu bilgi ışığında Microsoft’un Windows 8 ile birlikte .net framework’ün alt sürümlerinden desteğini çekmediğini bir kez daha yenilemek isterim.

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

5 yorum

  1. gurkan   •  

    merhaba,
    sanırım her zaman öyle olmuyor. accept deiğimde windows update e yönlendiriyor. ve 0x800F096 hatası veriyor ve update edemiyor. manuel indirip kurmaya çalıştığımda yine aynı ekran ve yine update etmeye çalışıyor. windows features penceresinde .net 3.5 i click lediğimde ok deyip Kabul ettiğimde yine aynı döngü. uğraşıyorum. bakalım nasıl çözeceğiz. bi yardımın olursa sevinirim.
    kolay gelsin.

  2. SrkN   •  

    Üstadım Win 8 DVD yi taktıktan sonra aşağıdaki komutu yönetici komut satırında yazmayı deneyebilirsin…
    ———
    Dism /online /enable-feature /featurename:NetFx3 /All /Source:x:\sources\sxs /LimitAccess
    ———–
    Not: x: Windows 8 ISO görüntüsü veya DVD sürücü harfidir.

  3. Mehmet   •  

    Hocam selam benim sormak istediğimde tam olarak bu konuyla alakalı. Windows 7 işletim sistemiyle kullandığım bilgisayarımda yazılım geliştiriyorum. Şu anda yaptığım uygulama oldukça basit. Şirket içerisinde geliştirdiğimiz birden fazla yazılım bulunmakta ve bu yazılımları tek tek setup şeklinde dağıtmak istemiyoruz. Tüm yazılımları bir klasör altında toplayarak bir arayüz vasıtası ile hangi programı kuracağını kullanıcıya seçtireceğim ve bu ufak programcık seçili olan programın exe sini çalıştırarak kurulumunu başlatacak, uygulama bu kadar basit. Fakat bu noktada şu sorunla karşılaşıyorum. Çok basit bir program olduğu için framework 2.0 ile geliştirdim. Windows 7 de çalışırken bir sıkıntı yok fakat 8 ile çalıştırıldığında framework yüklenmesini istiyor. Bizim hitap ettiğimiz kullanıcı kitlesi oldukça bilgisiz bir kitle. Doğal olarak onları bu kurulum ekranıyla karşılaştırmak istemiyorum. Bu noktada üretebileceğimiz bir çözüm mevcut mu? Bu kadar basit bir program için framework kurulum ekranıyla kullanıcıyı muhatap etmek istemiyorum.

    • Fatih Boy   •     Yazar

      Merhaba Mehmet,
      Öncelikle size tavsiyem aksi bir durum olmadığı sürece .Net framework’ün en güncel sürümünü kullanmanız.

      İlettiğiniz konu üzerine aşağıdaki çözüm önerilerim olacak;
      1. alternatif : Kurulumu yapılacak uygulamalar .Net framework 2.0- 3.5 sp1 sürüm aralığında değilse uygulamanı .Net framework 4 veya üzeri ile geliştirin
      2. alternatif : Kurulum yapılacak bilgisayarların şirket içerisinde bulunması nedeniyle hepsinin domain’e dahil olduğu varsayımıyla sistem yöneticisinin tüm bilgisayarlarda .Net framework 3.5 özelliğini aktif hale getirmesini isteyebilirsiniz.
      3. alternatif : Bilgisayarlar domain’e dahil değil ise bir defalık aşağıdaki komut satırını çalıştırarak .Net Framework 3.5 özelliğini aktif hale getirebilirsiniz;
      “Dism /online /enable-feature /featurename:NetFx3 /All”
      4. alternatif : Bilgisayarların internet bağlantısı olmaması durumunda ise aşağıdaki komut ile çevrimdışı olarak kurulumu gerçekleştirebilirsin (not: kurulumu bulunduğu dizine göre <sürücü> yerine ilgili sürücü adını yazmalısınız);
      “Dism /online /enable-feature /featurename:NetFx3 /All /Source:<sürücü>:\sources\sxs /LimitAccess”

  4. Mehmet   •  

    Hocam ürettiğimiz yazılımları öğretmenler kullanıyorlar bilgisayarlarında xp,vista,win7 ve win8 kullanıyorlar. Şirket içi bir yazılım olsa bahsettiğiniz çözümler iş görür ama bilgisayar konusunda çok bilgisiz bir kitleye çok basit bir arayüz için ekstra yükleme arayüzleri çıkartamam. Windowsun bu politikasını uzun zamandır yadırgıyorum. Çok basit bir program için bunca uğraşa girmek oldukça can sıkıcı. Framework 4 ve üstü win7 de sıkıntılı xp de zaten kurtuluş yok 4 altı yazsan şimdi de win8 de problem oluyor. Açık söylemek gerekirse uzun zamandır direndiğim bir şeyi bu basit projede uygulamak zorunda kaldım. Delphi (RadStudio) yükledim ve programı orada yazdım. Tüm Windows sürümlerinde sorunsuz çalışıyor. Teknolojinin amacı süreci hızlandırmak ve işimizi kolaylaştırmak olmalı ama Microsoft bazen bunu gözardı edebiliyor. Web konusunda sıkıntı yok ama masaüstü yazılımlarda sıkıntı yaşıyorum. Microsoftun sertifikalı yazılımcısıyım ama beni kendi elleriyle başka bir yazılım ortamını kullanmaya itti. En yaygın işletim sistemine sahipler ise sürümler arası uyuma da dikkat etmeleri gerektiğini düşünüyorum. İlginiz için teşekkür eder çalışmalarınızda başarılar dilerim.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir