.NET?

Bill Gates, geçtiÄŸimiz yılın Temmuz ayında Florida’da gerçekleÅŸtirilen Profesyonel Programcılar Konferansında (Professional Developers Conference – PDC) yaptığı konuÅŸmasında, bu boyutlarda bir deÄŸiÅŸiminin sadece beÅŸ, altı yılda bir yaÅŸanabileceÄŸine dikkat çekmiÅŸti. Yakın zamanlarda yaÅŸanan, karşılaÅŸtırılabilir ilerlemeler olarak ise 90’ların başında Dos’tan Windows’a geçiÅŸ ve 90’ların ortalarında 32 bit uygulamaların 16 bit uygulamaların yerini alması gösteriliyor.

Bahsedilen deÄŸiÅŸimin adı: “.Net”. Ancak PDC’ye katılan deneyimli programcıları oldukça heyecanlandıran, Internet ve Windows uygulamaları için gelecek nesil platform olarak gösterilen bu fikrin gerisinde Microsoft’un oldukça büyük yatırım ve emeÄŸi yatmakta. Öyle ki, MS, ar-ge kaynaklarının %80’ini ayırarak bir yerde kaderini bu yeni platforma baÄŸlıyor. Bence sadece bu bile, hem programcıların hem de bilgisayarla alakası olan herkesin hayatında ciddi deÄŸiÅŸiklikler olacağının iÅŸareti. Hal böyle olunca, bir devrim olarak tanıtılan bu yeni platforma da yakından bakmak boynumuzun borcu oluyor.

“.Net’i tanımlamanın en iyi yolu”, diyor, Sanjay Parthasarathy[i], “onun neler yapabileceÄŸini düşünmektir.” Microsoft, bant geniÅŸliÄŸinde elde edilen süratli artışı, her onsekiz ayda bir iÅŸlemci gücünün ikiye katlanırken fiyatların yarılanacağını ifade eden “Moore Yasası” ile birleÅŸtiriyor ve “dağınık iÅŸlemlere” doÄŸru sessiz bir ilerlemenin yaÅŸandığını düşünüyor. Bu durumdan çıkardıkları sonuca göre en doÄŸru çözüm, iÅŸlemleri en uygun olduÄŸu yerde yapmak olacaktır. Åžu anda bile bu türde dağınık uygulamaların örneklerini kullanıyoruz. Napster, istemcilerine internet bulutunda paylaÅŸtıkları rehber servisleri sunarken, sistemde bulunan tüm bilgisayarları birer sunucu olarak kullanıyor. ICQ gibi anında mesajlaÅŸma uygulamaları da, yine internet bulutundaki arkadaÅŸ listelerimize eriÅŸimi saÄŸlıyor.

.Net platformunun amacı da, dağınık iÅŸlemlerin evrimini hızlandırmak. Parthasarathy, bu hedefe en hızlı ÅŸekilde ulaÅŸmak için indirilmesi gereken üç koldan bahsediyor. Kollardan birincisi, herÅŸeyin bir “aÄŸ servisi”[ii] olarak sunulmasını gerektiriyor. Buna sadece programlar deÄŸil, aynı zamanda depolama birimleri gibi aÄŸ bileÅŸenleri de dahil. AÄŸ servisleri, .Net platformunun en önemli özelliklerinden birini oluÅŸturuyor. İndirilmesi gereken ikinci kol, dağınık geliÅŸtirilen bu servislerin kolay ve basit ÅŸekillerde toparlanması ve entegre edilmesini gerektiriyor. Entegrasyon, .Net’in temelinde yatan en önemli unsurlardan biri ve yeni nesil uygulamaların ana hedefi olarak görülüyor. Üçüncü kol ise, uygun “kullanıcı deneyimine” ulaşılarak çekilebilecek. “Kullanıcı deneyimi”[iii], Microsoft’un son yıllarda kullanıcı ile etkileÅŸimi saÄŸlayan tüm grafik ve programatik arabirimler için kullandığı bir kavram olarak karşımıza çıkıyor, keza yeni Ofis paketi ve gelecek Windows sürümü de isimlerini bu kavramdan alıyor. Böylece .Net vizyonu, kullanıcıyı merkeze alarak, uygulamaları internette dağıtıp, servisler olarak entegre etmek üzerinde oluÅŸuyor.

.Net tabii ki sadece hedef veya tavsiyelerden oluÅŸmuyor. Bilakis, pek çoÄŸu yepyeni bir dizi ürün, yeni araçlar, hatta programcıları oldukça heyecanlandıracak yepyeni bir dili de beraberinde getiriyor. Genel olarak baktığımız zaman, platform, beÅŸ ana unsurdan oluÅŸuyor.  .Net’te en büyük sorumluluk programcıların, tam tabiriyle uygulama geliÅŸtiricilerin üzerine düşmekte. Ama Microsoft harcanacak tüm emeklerin karşılığını vermeye hazır.

AÄŸ servislerini en hızlı ve en kolay ÅŸekilde geliÅŸtirebilmemizi saÄŸlamak üzere yepyeni bir Visual Studio ve .Net Framework’ü hizmete sunuyor. GeçtiÄŸimiz Kasım ayında Beta 1 sürümü yayınlanan araçların piyasaya çıkacağı tarih belli deÄŸil, ama kesin olarak söyleyebileceÄŸimiz tek ÅŸey, gelecek ay gerçekleÅŸecek TechEd’de Beta 2’nin hazır olacağı. .Net Framework, uygulama geliÅŸtirmeyi temelden, yani iÅŸletim sisteminden itibaren kapsıyor. Sunum, veri ve bileÅŸen teknolojileri arasında, bu güne kadar Microsoft sistemlerinde görülmüş en ileri seviye entegrasyonu sunuyor. Bunun ötesinde, internet programlamasını, masaüstü uygulamaları geliÅŸtirmek kadar kolaylaÅŸtırmayı hedefliyor. Pek çok sistemin en faydalı özelliklerini toplayan ve bunlardan en iyiyi elde etmeyi hedefleyen yapının temelinde “Common Language Runtime (CRL)” var. CRL, programların çalıştığı bir ortam. .Net uygulamaları, önce Microsoft Intermediate Language (MSIL ya da kısaca IL) adındaki ortak bir dile derleniyor, daha sonra IL kodları CRL içersinde çalıştırılıyor. CRL aynı zamanda hafıza yönetimi ve atık toplama[iv] gibi görevleri de üstlenerek programlamayı kolaylaÅŸtırıyor. .Net Framework, Windows DNA’in müzmin sorunlarından biri olan kurulumu da çözüme kavuÅŸturuyor. CRL sayesinde bileÅŸenlerin Registry’ye kayıt edilmesi iÅŸlemi tamamen gereksiz hale geliyor, programlar basit “xcopy”  yöntemiyle kuruluyorlar ve böylece “DLL Hell” sorunu tamamen ortadan kalkıyor. DiÄŸer taraftan, örneÄŸin ADO veya XML için modüller veya run-time bileÅŸenleri gereksiz hale geldiÄŸinden, “4 disketlik Hello World” programları da tamamen tarihe karışıyor.

.Net Framework pek çok programlama dilini destekliyor. Bunun yanında Visual Studio.Net, Microsoft’un tanıdığımız programlama araçlarının yeni sürümlerini de kullanıma sunuyor. Visual Basic.Net ve .Net uyumlu (managed) C++ yanında, yepyeni bir dil bizi bekliyor: C# (c sharp) ismini si diyez notasından alıyor. Microsoft C#’ı C++’ın gücü ve Visual Basic’in kolaylığının birleÅŸimi olarak tanıtıyor. Visual Basic cephesinde de oldukça büyük deÄŸiÅŸiklikler yaÅŸanıyor. Dünyadaki programcıların yarısından fazlası tarafından kullanıldığı söylenen Microsoft’un en popüler programala dili, yılların verdiÄŸi yükleri sırtından atarak, uzmanların hep talep ettiÄŸi pek çok nesne yönelimli özelliÄŸe sahip yeni modern bir dil görünümüne bürünüyor. Tabii ki bu geliÅŸmelerin bedelini de öğrenme kolaylığından feragat ederek ödüyor. Görünen o ki, Visual Basic kolay öğrenilen pratik dil özelliÄŸini C#’a kaptırmak üzere. Yeni gelen özelliklere kabaca bakınca, yıllardır beklenen “inheritence” özelliÄŸinin sonunda eklendiÄŸi görülüyor. Tüm .Net dillerinin CRL ile uyum adına kullanmak zorunda olduÄŸu Ortak Tip Sistem’i (Common Type Sistem) sayesinde diÄŸer dillerle uyumlu veri tipleri kullanması da diÄŸer olumlu bir deÄŸiÅŸiklik olarak göze çarpıyor. Eskiyle uyumluluk adına barındırılan pek çok komuttan kurtulan Visual Basic’in hata ayıklama yöntemi de tamamen modernize edilmiÅŸ. Visual Studio.Net’in bir diÄŸer önemli özelliÄŸi de, tüm dil ve araçları için sadece bir editör (IDE) sunuyor olması. BaÅŸtan sona yepyeni özelliklerle tasarlanmış bu dizayn ortamının programcıların çok hoÅŸuna gideceÄŸini düşünüyorum.

DiÄŸer taraftan ikinci yapı taşını oluÅŸturan sunucuların ise çoÄŸu ÅŸimdiden piyasaya sürülmüş durumda. Bu yeni nesil sunucu ailesi arasında öne çıkanlar ise SQL Server 2000 ve Biztalk Server oluyor. Tüm sunucuların önemli ortak özelliÄŸi, .Net platformunun entegrasyon standardını oluÅŸturan XML ile uyumlu olmaları. Bu özellik sayesinde SQL Server 2000’e doÄŸrudan XML sorguları göndermek ve sonuçları XML olarak almak, hem de hepsini tarayıcıdan yapmak mümkün. Bu iÅŸlemler okumanın ötesinde kayıt eklemek ve deÄŸiÅŸtirmek için de yapılabiliyor. BizTalk Server 2000 ise kurumsal ve kurumlararası entegrasyonu otomatize ediyor. BizTalk sayesinde tüm platformlarda çalışan sistemler XML konuÅŸarak anlaÅŸabiliyorlar. DiÄŸer sunucuların yanında özel ilgi çeken ürünlerden biri de .Net’in güvenliÄŸini saÄŸlamakla yükümlü olan ISA (Internet Security and Acceleration) Server 2000, Microsoft’un ilk firewall ürünü olarak piyasadaki yerini alıyor. Toplam sekiz ürün olarak açıklanan .Net Sunucu ailesi, önümüzdeki aylarda son üyesi Mobile Information 2001 Server’ın da çıkmasıyla tamamlanmış olacak.

Microsoft, bu sefer de sadece yöntemleri göstermek ve araçları sunmakla kalmıyor, bu yöntemleri kullanarak aÄŸ hizmetlerini sunmaya baÅŸlıyor. BaÅŸlangıçta “Building Block Services” olarak tanıtılan bu servisler, ÅŸimdilerde tekrar, kod adı olan “Hailstorm” ismiyle anılmaktalar. Servislerin pek çok yerde – daha çok tanıtım sebeplerinden ötürü – öne çıkanı, kesinlikle Microsoft Passport oluyor. Daha ÅŸimdiden 130 milyonun üzerinde kayıtlı kullanıcısı bulunan bu aÄŸ servisi, bizleri, girdiÄŸimiz internet sitelerinde kendinizi tanıtma ve özel bilgilerimizi tekrar tekrar girmek derdinden kurtarıyor. Hailstorm gelecek günlerde pek çok internet kullanıcısının hayatında önemli bir yer alacak gibi duruyor.

Halihazırda pek görünür bir gelişme kaydedilmeyen diğer bir alan ise aygıtlar: .Net tüm ortamlarda aynı hizmetleri vermeyi hedefliyor. Bu hedefe ulaşmak için, tablet olarak adlandırılan avuçiçi bilgisayarlardan telefonlara, yeni nesil akıllı cihazlardan destek alması gerekiyor, ancak görünen o ki, bu cihazları kullabilmek için biraz daha beklemeliyiz.

Son olarak da kullanıcı deneyimini yaratacak olan çözümler listede yerini alıyorlar: bilgi çalışanları için yeni MS Office, küçük işletmeler için bCentral, programcılar için Visual Studio.Net ve tabii ki binlerce ihtiyaç için geliştirilecek sonsuz çözümler.

Bu kadar yeni ve güzel özelliÄŸin yanında ortaya çıkacak pek çok sorunu ise ÅŸimdilik gözardı ediyoruz: Önce biraz tadını çıkarmak bizim de hakkımız. Ancak daha ÅŸimdiden ciddi uyumsuzluk sorunlarıyla, özellikle Visual Basic kodlarında ve en azından ÅŸimdilik uygulama geliÅŸtirmede ciddi performans ve kaynak sorunlarıyla karşılaÅŸacağımız kesin. .Net Beta 1 geleceÄŸe ait bir platform sunarken, giga-zamana ait bir ortam arıyor. 256 MB hafızalı bir PIII ‘le bile ciddi sorunlar yaÅŸadım, ancak söylentiler Beta 2’de iÅŸlerin daha iyiye gideceÄŸi yönünde.

Kesin olan bir ÅŸey varsa, Microsoft .Net’i çok ciddiye alıyor. Sadece kaynaklarının %80’ini buraya aktarmakla kalmayıp, bir süredir resmi dahili programlama dili olarak da C# kullanıyorlar. Belki sonuçlarını görmek için biraz daha sabretmemiz gerekecek, ama .Net’in kalıcı olacağı şüphe götürmüyor. Öyleyse biz de .Net ile ilgilenmeye devam ediyoruz.