Herkesin kullandığı bir ifade olan “Framework”, yazılımcılar için farklı anlamlar taşıyabilir. Bu bölümde “Framework” kavramını, neden “Framework”e ihtiyaç duyulduğunu ve “Framework”ün nelere çözümler getirdiği üzerine açıklamalar bulunacaktır. Bunun yanısıra 2000 yılından beri herkesi etkisi altına alan “.Net Framework”, “.Net Framework”ün tarihsel gelişimi, “.Net Framework 3.5” yenilikleri, programlama dilleri ve “Visual Studio 2008” yeniliklerinden söz edilecektir. Bölümü okumayı bitirdiğinizde “Framework Kavramı Nedir?” ve “.Net Framework’ün Özellikleri Nedir?” sorularına cevap verebileceksiniz.
Framework Kavramı
“Framework” kavramının karşılık gelebileceği bir sürü anlam olduğundan, söz edilen konunun “Yazılım Çatısı(Software Framework)” olduğunu bilmeniz gerekmektedir. “Yazılım Çatısı(Software Framework)” kavramı tam olarak : “Yazılım sistemleri ya da alt sistemleri için tekrar kullanılabilir bir alt yapı tasarımı” anlamına gelmektedir. “Framework” geliştirmenin amacı ise tekrar kullanılabilir ve genişletilebilir bir alt yapı üzerinde tüm teknolojileri çalıştırabilmektir. “Framework”ler böyle bir zorunluluk olmamasına rağmen genellikle “Nesne Yönelimli Programlama” mantığıyla geliştirilmiştirler ve yazılımcılara uygulamalarını geliştirirken yardımcı olan yapılardır. Aynı zamanda geliştirilen “Framework“ler API(Application Programming Interface) adı verilen işletim sisteminin kullandığı nesnelere kolayca erişimi sağlayan yapılar arasındadırlar. Dünyada bu amaçlara hizmet etmek için geliştirilmiş bir sürü ”Framework” bulunmaktadır:
Java Native Interface(JNI): Java Virtual Machine(JVM) üzerinde “Native Uygulamalar” tarafından Java kodları çalıştırmaya yarayan bir alt yapı.
Spring: Java platformu için açık kaynaklı uygulama altyapısı.
Symphony Framework: PHP platformu için geliştirlen uygulama alt yapısı olan Symphony, en popüler “Framework”ler arasında yer almaktadır.
“Framework”, uzun yıllardır üzerinde çalışmalar yapılan “Yazılım Fabrikası(Software Factory)” kavramının en önemli ürünüdür. Amaç ise değişen koşullara çabuk uyum sağlayan yazılımların yanısıra zaman ve maliyet parametreleri açısından minimum değerleri yakalamaktır. Bunun en güzel örneği de “.Net Framework” versiyonlarıdır. “.Net Framework” dünyanın en başarılı “Framework”leri arasında yer almaktadır. Yazılımcılara yazılım geliştirmek için süper bir altyapı sağlayan “.Net Framework Class Library” ve diğer “Framework”lerden bir farkı daha olan “CLR(Comman Language Runtime)”, uygulamaları daha kolay ve çabuk geliştirilebilir kılmaktadır. Bu konu ile ilgili detaylara “.Net Framework Tarihçesi” başlığı altında değinilecektir.
.Net Framework Tarihçesi
“.Net Framework” özellikleri:
Birlikte Çalışabilirlik(Interoperability): “.Net” uygulamaları diğer geliştirilmiş uygulamalarla(“.Net” platformunda yazılıp yazılmadığı önemsenmeksizin) birlikte çalışabilmesi.
Ortak Çalışma Zamanı Motoru(Common Runtime Engine): “.Net Framework” üzerinde kullanılan programlama dilleri “Ara Dil(Intermediate Language)” bir dile derlenir ki bu “Microsoft Intermediate Language(MSIL)” olarak ta bilinir. Çalışma esnasında “Jusy-In-Time(JIT)” derleyicisi devreye girerek “MSIL” olarak bulunan dosyayı “Makine Dili(Machine Code)“ne derler ve çalıştırma işlemi yapılır. Bu şekilde yapılan çalıştırma işlemine “Ortak Dil Altyapısı(Common Languague Infrastructure)” denir ve bu özellik Microsoft tarafında “Ortak Dil Çalışma Zamanı(Common Language Runtime)” olarak uygulanmıştır.
Dil Bağımsızlığı(Language Independence): Microsoft “Dil bağımsızlığı“nı “CTS(Common Type System)” adı verilen bir yöntem ile çözmüştür. Bu özelliği bütün veri tipleri ve programlama yapıları göz önünde bulundurularak CLR destekli bir çözüm getirilmiş ve ortaya aynı alt yapı ile çalışan fakat dil bazında değişiklikler gösteren “.Net Programlama Dilleri” çıkmıştır.
Temel Sınıf Kütüphanesi(Base Class Library): Yazılım geliştiricilerin üzerinde yoğunlaştıkları yazılımları daha kolay bir şekilde geliştirebilmeleri için sunulan bir kütüphanedir. Bir yandan da API(Application Programming Interface)’lerin enkapsüle edilmiş halidir.
Kolaylaştırılmış Dağıtım(Simplified Deploy): Yüklenmeye çalışılan yazılım ile ilgili arttırılmış kolaylık ve baştan tasarlanan dağıtım sistemi ile geçmişte yüklenen yazılımlara zarar vermeden, düzgün adresleme yapılarak yükleme yapılır.
Güvenlik(Security): Uygulamaların zayıf yönleri ortaya konarak çözümler getirilmiştir. Örneğin: “Buffer Overrun” adı verilen hatalara karşı, “.Net Framework” tarafından bütün uygulamalar için ortak güvenlik desteği sağlamaktadır.
Taşınabilirlik(Portability): “.Net Framework” çeşitli ortamlarda çalışabilir. Windows, Windows Ce, Xbox 360…
“.Net Framework” bu özelliklerle diğer “Framework”lerden avantajlı hale geldi. Faydalarından biri de yazılım geliştiricilere “Bellek Yönetimi(Memory Management)”ni bırakmayıp CLR ile üstlenmesi. Yazılım geliştiricilerin geliştirdikleri uygulamalar içerisindeki nesnelerin bellekte olup olmadıklarını kontrol etmelerine gerek kalmadan daha kolay uygulama geliştirme ortamı sağlamasıdır. Bunu da CLR içerisinde bulunan “Çöp Toplayıcı(Garbage Collector)” aracılığıyla yapmaktadır. “.Net Framework” ile getirilen “public key token” yapısı ile geliştirilen “Assembly”lerin çakışması diğer bir adıyla “DLL Hell” ortadan kaldırılmıştır. Son olarak “Veri Hakkında Bilgi(Metadata)” veren bir yapı ile tipler arasında çözümlemeler yapmak mümkün hale getirilmiştir.
1990’ların sonlarına doğru Microsoft tarafından “Next Generation Windows Services(NGWS)” adıyla geliştirilmeye başlanan “.Net Framework”, 2000 yılında ilk beta versiyonu olan “.Net Framework 1.0” adıyla piyasaya çıktı. Daha sonraları sırasıyla “.Net Framework 1.0 Beta 1”, “.Net Framework 1.0 Beta 2” ile değişikliğe uğrayarak 05.01.2002 tarihinde “.Net Framework 1.0 RTM” tam anlamıyla piyasaya oturdu. Bundan sonra “.Net Framework 1.0” üzerine 3 tane “Service Pack” daha getirildi. Bir sonraki versiyonu olan “.Net Framework 1.1 RTM” 01.04.2003 tarihinde piyasaya sürüldü ve bu versiyon üzerinde 2 “Service Pack” çıkartıldı. 07.11.2005 tarihinde “.Net Framework 2.0 RTM” çıkartılarak yeni bir geçiş daha yapılmış olundu. “.Net Framework 2.0”ın Vista versiyonu ve bunun üzerine de bir tane “Service Pack”i çıkartıldıktan sonra “.Net” yapısını oldukça güçlü kılan “.Net Framework 3.0 RTM” 06.11.2006 tarihinde piyasaya sürüldü. Bu versiyon için bir tane “Service Pack” çıkartılarak şu anki bulunduğumuz nokta olan “.Net Framework 3.5 RTM” versiyonu 19.11.2007 tarihinde piyasaya sürüldü.
.Net Framework 1.0
• İlk versiyon olan “.Net Framework 1.0” ile “Framework” temelleri getirilmiştir. Bununla birlikte yazılımcılara ileriye dönük vizyon sunulmuştur.
.Net Framework 1.1
• Asp.Net mobil kontrolleri için “yerleşik(Built-In)” destek sağlandı. Daha önceleri sonradan eklenebiliyordu.
• Güvenlik değişiklikleri oldu.
• ODBC ve Oracle veritabanları için yerleşik destek sağlandı.
• Mobil cihazlar için “.Net Compact Framework” ortaya çıktı.
• “Internet Protocol version 6(Ipv6)” desteği sağlandı.
• Pek çok API değişiklikleri yaşandı.
.Net Framework 2.0
• Pek çok API değişiklikleri yaşandı.
• Asenkron yapıya hizmet etmek, bellek konumlandırması yapmak, “Assembly”leri yüklemek ve daha fazlası gibi işlemleri daha iyi yapan bir API getirildi. Kendi planlayıcısını ve bellek yöneticisini uygulayan bu API, ilk başta Microsoft SQL Server içerisindeki çalışma zamanı sunma mekanizması için geliştirilmişti.
• Donanım ortamları için tam bir 64-bit desteği getirildi.
• .Net CLR içerisinde Generics adı verilen dil yapısı yerleşik olarak getirildi.
• Geliştirilmiş ASP.Net kontrolleri getirildi.
• Yeni veri kontrolleri ve geliştirilmiş veri bağlama sistemi getirildi.
• ASP.Net için kişiselleştirilmiş özellikler getirildi.
• “.Net Micro Framework” çıkartıldı.
.Net Framework 3.0
• Windows Vista ve Windows Server 2008 için API’ler geliştirildi.
• WinFX olarak adlandırıldı.
• Common Language Runtime olarak 2.0 versiyonu korunmaya devam edildi.
• “Windows Presentation Foundation(Avalon)” getirildi.
• “Windows Workflow Foundation(WF)” getirildi.
• “Windows Communication Foundation(Indigo)” getirildi.
• “Windows CardSpace(InfoCard)” getirildi.
.Net Framework 3.5
Gelişen “.Net Framework” versiyon olarak 3.5 seviyesine kadar gelmiştir. Alt yapı olarak yine Common Language Runtime 2.0’ı kullanan ve çok önemli bir yenilik olan “LINQ(Language Integrated Query)” getirildi.
• C# 3.0 ve VB.Net 9.0 derleyicisi içerisine yeni özellikler getirildi.
• “Expression Tree” ve “Lambda Method” eklendi.
• “Extension Method” eklendi.
• “Anonymous Type” eklendi.
• “Language Integrated Query(LINQ)” yapısı çeşitli sağlayıcıları ile eklendi.
o LINQ to Objects
o LINQ to XML
o LINQ to SQL
• ADO.Net’e sayfalama desteği eklendi.
• Yerel belleklenmiş verilere erişebilmek için ADO.Net’e yeni bir API eklendi.
• WMI ve Active Directory yönetilir hale getirildi.
• WCF ve WF ile platform bağımsız dağıtık uygulamalar içerisinde iş akışı sistemi kurma sağlandı.
• ASP.Net ile Ajax birleştirildi.
• Network API’si ile asenkron I/O işlemleri desteklendi.
Visual Studio 2008
2007 yılında piyasaya sürülen “Visual Studio 2008” ile eklenen özellikler tüm yazılım geliştiricilere daha kolay uygulama geliştirme imkanı sağlamaktadır. Microsoft’un devam ettirdiği “Express Edition” serisi C#, Vb.Net, C++ ve Visual Web Developer olarak ilerlemekte. “Visual Studio 2008” platformunda .Net Framework 3.5 yer almaktadır. “Visual Studio 2008” sayesinde yazılım geliştiricilerin daha güvenli, daha yönetilebilir ve Windows Vista ile Microsoft Office 2007 özelliklerinden faydalanılabilceği bir platform oluşturulmuştur.
Aşağıda “Visual Studio 2008” ile gelen yenilikler bulunmaktadır:
• Çoklu Hedefleme(Multi-Targeting): “Visual Studio 2008” içerisinde “.Net Framework 2.0”, “.Net Framework 3.0”, “.Net Framework 3.5” versiyonları bazında uygulama geliştirebilirsiniz. Böylelikle “Visual Studio 2008” ortamından faydalanarak “.Net Framework 2.0” uygulaması geliştirme imkanı sunmakta.
• Web Designer: “Visual Studio 2008” içerisinde yeni “Web Tasarımı ve CSS” desteği eklendi.
• AJAX: “Visual Studio 2008” ile AJAX yerleşik olarak gelmekte. Ayrıca bir eklenti kurmaya gerek kalmamakta.
• LINQ to SQL: Yerleşik OR/M(Object-Relitional Mapper) getirilerek, ilişkisel veritabanı sistemlerinde “.Net“ nesnelerini kullanarak modelleme yapabilme imkanı sağlandı.
• Sorgu Sözdizimi: Standart LINQ sorugu operatörlerini kullanarak kısa yollu sorgulama yapılmaya imkan sağlandı.
• Anonim Tipler(Anonymous Types): Açıkça farklı bir yerde tanımlama yapmadan satır içerisinde kendi tipinizi tanımlamaya yarayan bir özellik. Anonim tipler LINQ kullanılarak data sorgulaması yapıldığında çok kullanışlı olurlar.
• Lambda Ifadeleri(Lambda Expressions): Anonim metotlar yazmak için daha kısa ve daha fonksiyonel ifadeler.
• Genişletme Metotları(Extension Methods): Mevcut tipi modifiye etmeden, tipin içerisine yeni “Public” metotlar eklenebilmesi özelliği.
• Otomatik Özellikler(Automatic Properties): Get ve Set ifadelerini içeren özellikler(Property) için “Private” alanlar tanımlamaksızın kullanım izni veren özellik.
• Nesne ve Koleksiyon İlklendiriciler(Object and Collection Initializers): Nesneler ve kolleksiyonları ilklendirmenin kısayolunun getirildiği özellik.
• Javascript Hata Ayıklama İşlemi(Javascript Debugging): “Visual Studio 2008” ile javascript içerisinde “Hata Ayıklama İşlemi(debug)” yapmak mümkündür.
• Javascript Intellisense: “Visual Studio 2008” ile Javascript kodlaması esnasında gelişmiş “Javascript Intellisense”inden faydalanılacak.
• .Net Framework Kaynak Koduna Erişim: “Hata Ayıklama İşlemi” esnasında .Net Framework içerisindeki çekirdek kütüphaneler içerisine girilebilir hale getirildi.
Bu özelliklerin yanısıra “Visual Studio 2005”te getirilmeye çalışılan ve “Visual Studio 2008 Professional Edition”da eklenen “Unit Test” özelliğinden de söz etmek gerekir. Bu özellik “Visual Studio 2008 Professional Edition” içerisinde bulunmakla beraber, geliştirilen kod parçacıkları için test kodları geliştirilebilir hale gelindi.
Programlama Dilleri
Eskiden yerleşik olarak ”Visual Basic”, “Visual C#”, “Visual C++” ve “Visual J#” programlama dilleri gelmekteydi. “Visual Studio 2008“ ile ”Visual Basic”, “Visual C#”, “Visual C++” dilleri yerleşik olarak gelmekte. Artık “Visual J#”ı “Visual Studio 2008” içerisinde bulunmuyor. “Visual Basic”in şu an 9.0 versiyonu, “Visual C#”ta ise 3.0 versiyonu kullanılmaktadır. O zaman şöyle bir bilgi vermekte fayda vardır: ”IDE(Integrated Development Enviroment) olarak Visual Studio 2008, Visual C# versiyonu olarak 3.0, Visual Basic versiyonu olarak 9.0 ve CLR versiyonu olarak 2.0 kullanılmaktadır”. Teknoloji olarak son gelinen nokta budur.
Bunlar haricinde “Visual Studio 2008” içerisinde A#, F#, Phyton, Ruby, NetCobol, Delphi.Net gibi daha bir çok programlama dilleri desteklenmektedir.
26 Haziran 2008 Perşembe
Kaydol:
Kayıtlar (Atom)
