ASP+ (ASP.NET) Nedir ?
ASP+ (ASP.NET) Nedir ?

ASP+, Microsoft”un NGWS çalıştırıcısı (NGWS runtime) üzerine inşa edilmiş yeni bir programlama anaçatısı (framework) olup sunucu üstünde güçlü Web uygulamaları geliştirmek için kullanılan yeni bir teknolojidir.

.Net Nedir ?

.NET platformu, sağlam, ölçeklenebilir ve dağıtılmış uygulamalar oluşturmak için yeni ortam oluşturan ve bu uygulamaları oluştururken bünyesindeki birçok dilden herhangi birini seçme özgürlüğü sunan teknolojilerdir.

Temel Özellikleri

ASP.NET, .Net Framework altında işletim sistemi ile bütünleşik çalışan bir mimaridedir. Klasik uygulamaların kullanabildiği nesneleri aynen kullanabildiği gibi, .Net’in sahip olduğu tüm nesnelere erişebilir ve türetebilir. ASP.NET sunucu ve istemci tarafını çok iyi bir şekilde birleştirir. İstemcinin kullandığı sistem özelliklerine özgü içeriği sunar, böylelikle istemci tarafında bazı işlemlerin gerçekleşmesi işi hızlandırıyorsa bunu tespit eder ve uygular. İşin güzel yanı bunu yaparken yazılım geliştiricinin ayrıca bir işlem yapmasına gerek kalmaz, bunu otomatik tespit eder ve uygular.

ASP sunucu tarafında interpret edilen bir teknoloji iken ASP.NET compile ediler yani derlenir. Derlenen kod çok büyük bir performans artışı sağladığından uygulamalar çok daha hızlı çalışacaktır. ASP.NET bileşen mimarisine yeni bir boyut getirmektedir. Artık sisteme nesne yüklerken regsvr32 kullanmak yerine .Net ile gelen ve bundan sonraki bölümde detaylı olarak inceleyeceğimiz ****data sayesinde dll dosyaları kendi açıklamalarını kendi üzerlerinde taşımaktadırlar. Bu yüzden ayrıca bir kayıt işlemine, sunucuyu yeniden başlatmaya gerek yoktur.

Oturum yönetiminde ise sunucu belleği üzerinde yoğunlaşan bir oturum mimarisi yerini dağıtık internet uygulamalarına dönüşmüş, oturum bilgileri SQL Server’da da olmak üzere State Server gibi yeni sunucular kullanılarak sunucunun belleği üzerinden ayrılmıştır. Bu şekilde sunucular arası veri paylaşımı sağlanmış, güvenli ve dengeli bir yapıda sistem kurulmuş olmaktadır. ASP’de cookie’lere dayanan mimari yüzünden yaşanan sorunlar aşılmış, istenirse cookieless yani cookie teknolojisi kullanılmadan da oturum yönetimi sağlanabilir hale gelmiştir.

ASP.NET ile içerik program kodundan tamemen ayrılmıştır. Kullanıcı kontrolleri, codebehind gibi özellikler sayesinde görsel içerik ile uğraşan kişiler sadece görsellikle, programlama kısmı ile ilgili kişilerin de sadece program kodu ile çalışmasına olanak tanımaktadır. İstemci-sunucu mimarisi oldukça başarılı bir şekilde ASP.NET’de uygulanmış, yazılım geliştiricinin arka planda neler olduğunu bilmesine gerek kalmadan uygulamalarda önbellekleme ve performans düzenlenmiştir. ASP.NET tamamen nesneye yönelik programlamayı kullanabilmemizi sağlayan bir teknolojidir. ASP’de JavaScript veya VbScript kullanabiliyorken ASP.NET’de uygulama geliştirmede kullandığımız diller olan Visual Basic, C# gibi dilleri kullanmamız mümkündür. Böylelikle bir programlama dili kullanmanın tüm avantajlarını uygulamalarımızda kullanabiliriz

Avantajları Nelerdir ?

ASP+, daha önce kullanılan Web geliştirme (ASP, JSP gibi) modellerine göre aşağıda listelenen birçok önemli avantajı sağlamaktadır:

1) Geliştirilmiş Performans

ASP+ sayfaları, sunucu üzerinde çalıştırılan NGWS çalıştırıcısı kodlarıdır. Yorumlama temeline göre çalışan daha öncekilerle (ASP gibi) karşılaştırıldığında, erken bağdaştırma (early binding), tam zamanında derleme (just-in-time compilation) ve doğal iyileme (native optimization) ve tamponlama hizmetleri (caching services) gibi avantajlar sağlamaktadır. Yukarıda anılan bu özellikler, geliştiriciler için daha kod yazmaya başlamadan önce sağlanan çarpıcı performans iyileştirmeleridir.

2) Üstün Nitelikli Araç Desteği

ASP+ çatısı, geliştirme ortamıyla bütünleştirilmiş olan Visual Studio ile sunulan zengin bir araç takımı ve tasarımcısı ile tamamlanmıştır. WYSIWYG düzenleme (editing), sürükle-bırak tarzı sunucu denetimleri (server controls) ve otomatik dağıtım (deployment) bu güçlü araçların sağlamış olduğu özelliklerin yalnızca birkaç tanesinden bazılarıdır.

3) Güç ve Esneklik

ASP+, NGWS çalıştırıcısı üzerine temellendirildiğinden, bu platformun tüm esneklik ve gücü Web uygulama geliştiricisi tarafından kullanılabilir durumdadır. NGWS çalıştırıcısının Temel Sınıf Kütüphaneleri (Base Class libraries), iletim (messaging) ve veri erişim (data access) çözümleri, benzeri olmayan bir biçimde Web”ten erişilebilir durumdadır. ASP+, ayrıca dile bağımlı değildir, şöyle ki, geliştiriciler uygulamalarında en uygun olan dili seçerek kodlama yapabilir. Hatta, uygulamaların değişik bölümleri değişik dillerde yazılarak karma programlama avantajlarından yararlanmak söz konusudur. Dahası, ASP+”a geçiş söz konusu olduğunda, hali hazır kullanılmakta olan COM tabanlı uygulamalara yapılan yatırımlar NGWS çalıştırıcısının karşılıklı işleyebilirlik (interoperability) desteğiyle ile garanti altına alınmaktadır.

4) Basitlik

ASP+, basit form bilgileri gönderiminden, kimlik doğrulama, kullanıcı tanıma, uygulama dağıtımı ve site yapılandırmaya kadar tüm genel görevleri yapmayı son derece basitleştirmektedir. Örneğin, ASP+ Sayfa Anaçatısı, uygulama mantığı, olay eldesi ve sunum (veya görünteleme) kodlarının tıpkı VB-benzeri form işleme modelinde olduğu gibi net şekilde ayrılmasını sağlayarak daha kolay okunabilir ve yönetilebilir kullanıcı arayüzleri oluşturulmasını mümkün kılmaktadır. NGWS çalıştırıcısı ayrıca otomatik referans sayımı ve çöp toplama gibi yönetilebilen kod servisleri ile de geliştirme işlemini basitleştirmektedir.

5) Yönetilebilirlik

ASP+, metin-tabanlı ve hiyerarşik bir yapılandırma sistemi kullanır. Böylelikle sunucu ortamı ve Web uygulamasına özel ayarların yapılması son derece basitleştirilmiştir. Çünkü, yapılandırma bilgisi düz metin olarak depolanır, yeni ayarlar yerel yönetim araçlarını kullanmaksızın basit bir metin işlemci aracılığıyla yapılabilir. “Sıfır Yerel Yönetim” filozofisi ASP+ uygulamalarının dağıtımını oldukça basitleştirir. Bir ASP+ uygulaması, çok basit bir biçimde gerekli dosyaların sunucuya kopyalanması şeklinde dağıtılır. Sunucuyu yeniden başlatma veya derlenmiş kodun değiştirilmesi gibi işlemlere gerek yoktur.

6) Ölçeklenebilirlik ve Elde Edilebilirlik

ASP+, ölçeklenebilirlik düşünülerek tasarlanmıştır. Bu nedenle, kümelenmiş ve çok-işlemcili ortamlarda performansı iyileştirmek üzere özel olarak tasarlanmış nitelikere sahiptir. Dahası, işlemler ASP+, çalıştırıcı (runtime) tarafından yakından izlenir ve yönetilir. Böylece yanlış davranan bir işlem (leaks, deadlock) varsa onun yerine uygulamanın istemleri devamlı şekilde yanıtlamasına yardım eden yeni bir işlem başlatılır.

7) İsteğe Bağlı Biçimlendirme ve Uzatılabilirlik

ASP+, geliştiricilerin uygun gördüğü yerlerde kodlarına takı (“plug-in”) yapmalarına izin veren iyi-faktörlü bir mimari sunmaktadır. Gerçekten de, ASP+ çalıştırıcısının herhangi bir alt bileşenini kendi yazdığınız herhangi bir bileşenle zenginleştirebilir veya değiştirebilirsiniz. İsteğe bağlı doğrulama veya durum (state) servislerinin uygulanması hiçbir zaman olmadığından daha kolay hale getirilmiştir

8) Programlama Dilinde Bağımsızlık

Asp.net programlama dillerimden bağımsızdır. Asp.net web yazılımları geliştirebilmek için 20 programlama dili ve fazlasını kullanabiliriz,örneğin, VB.net, C#, JScript.net, C++ with Managed Extensions, COBOL.net, Perl.net.

9) Derlenmiş Kod

Bildiğimiz gibi asp scripting dilleriyle çalışıyor. Fakat asp.net derlenmiş kod ve güçlü tipli dillerle çalışıyor, yani gerçek programlama dilleriyle. asp.net bu nedenle gerçek veri tiplerini kullanıyor örneğin integers ve strings.
Asp.net de kullanılan programlama dilleri daha iyi olağanüstü durum işleme gücüne sahiptirler. asp.net içerisinde try … catch … finally deyimleri ile olağanüstü durum işleme imkanına sahibiz

10) Sürükle & Bırak ve Olay Bazlı Programlama

Eğer Visual Basic kullandıysanız, bilirsiniz ki VB’nin en güzel taraflarından birisi sürükle ve bırak objeleri sistemi ve olay bazlı programlama yani click, doubleclick, textchange gibi. asp.net bu özellikleri WEb Formlarıyla aynı şekilde kullanabilirisiniz. VB de nasıl program geliştiriyorsanız, asp.net Web Formları da yani fonksiyonelliği sağlıyor.asp.net içerisinde gerçekten çok iyi dizayn edilmiş ve çok sayıda HTML kontrolleri vardır. Hemen hemen bir asp.net sayfasında bulunan bütün HTML kontrolleri Visual Basic, C#, C++ kodları ile kontrol edilebilir. asp.net buna ek olarak yeni nesneye dayalı programlamayı destekleyen, girdi kontrolleri, programlanabilir listbox lari, yeni doğrulama kontrolleri (validation controls). Asp.net içerisinde örneğin DataGrid, DataList kontrolleri olup bu kontroller web yazılım geliştiricisinin hayatini çok kolaylaştırmaktadır

11) Mobile Programlama Desteği

Asp.net ile sadece web yazılımları değil ayrıca mobil telefonları ve PDA’lar (Palm, PocketPC’s, RIM devices, etc) içinde yazılım geliştirebilirsiniz.asp.net de mobil aletleri için WML (Wireless Markup Language) veya HTML 3.2 (Hyper Text Markup Language) veya cHTML (Compact Hyper Text Markup Language) of I-mode aletlerini destek sağlar. asp.net mobil aletin kullandığı protokolü otomatik olarak belirler ve ona göre sonucu geri döndürür.

12) Bağlantısız Veri Erişimi

Asp ve ADO nun en önemli sorunlarından birisi ADO her zaman veritabanına canlı bağlantıyı tutar. Buda asp sayfalarının çalıştırılmasını önemli ölçüde yavaşlatır. ADO.net bağlantısız veri erişimini sağlayan sistemi bizim kullanımımıza sunar.

13) Session state

Asp session değişkenleri desteği çok sınırlıdır ve birden fazla web server dan oluşan sistemde session değişkenlerini hiç desteklemez.asp.net de ise olay tamamen değişiyor, birçok session depolama metodunu destekler örneğin In-Process (asp ile ayni), out-of-process (session durumu başka bir bilgisayardaki Windows Servis ile sağlanır) ve SQL Server’da. Out-of-process ve SQL Server seçenekleri web farm desteği sağlar.

14) Güvenlik Desteği

Asp sadece IIS authentication metodlarını desteklerken asp.net daha geniş güvenlik sistemini destekliyor örneğin IIS/Windows doğrulama sistemlerinden Basic doğrulama, Digest doğrulama, Integrated Windows doğrulama, Form bazlı doğrulama ve Microsoft Passport doğrulama. asp.net içerisinde yeni olarak Windows kullanıcı doğrulama (windows authentication) sistemine ek olarak form bazlı kullanıcı doğrulama (forms-based user authentication) sistemi geliştirilmiştir. bu yeni sistemde çerez yönetimi (cookie management) ve otomatik olarak doğrulanmayan kullanıcıların başka bir web sayfasına gönderilmesi (automatic redirecting of unauthorized logins) gibi güzel özellikler eklenmiştir. İzlemek, Debug, ve Bellekleme Desteği (Tracing, debugging and caching support)asp sisteminde kodu izlemek ve BUG lari bulmak bir derttir. Fakat asp.net içerisinde bu sistem çok daha geliştirilmiş, adım adım debug olayı ve diğer trace ve debug metodlarini desteklemektedir. asp.net bunlara ek olarak mükemmel bellekleme (caching API) sağlamaktadır. Verileri bellekleme sistem output caching, data caching, dependent caching ve fragment caching metodlarını destekler.

15) XML Bazlı Konfigürasyon

Asp içerisinde ise konfigürasyon bilgileri çok değişik yerlerde saklanıyordu. Örneğin, IIS bilgileri IIS ****base (registry) de saklanmaktadır. Eğer COM/ COM+ bileşenlerini kullanıyorsanız, COM ve COM+ bileşenlerinin bütün bilgileri registry ve COM+ Catalog da saklanır. asp.net konfigürasyonu metin dosyaları ile yapılır. Bu metin dosyaları XML dosyalarıdır. asp.net de XML ayrı bir önem kazanmıştır. asp.net de çalışan programı kesmeden bu konfigürasyon dosyaları değiştirilebilir. asp.net bunu arka planda, kullanıcıdan saklayarak halleder. Yeni bir web isteği geldiğinde asp.net worker process (çalışan işlemci) yeni konfigürasyonla isleme devam eder.

16) XCopy Kurulum

COM bileşenlerinden farklı olarak .net bileşenleri Windows registry’e kayıt edilmesine gerek yoktur. Yapmamız gereken tek şey bileşeni derlemek,asp.net yazılımının bulunduğu klasörde BIN isimli bir klasöre ekledikten sonra bu derlediğimiz bileşeni kopyalamaktır. Gördüğünüz gibi artık registry ile uğraşmak yok. Bu gerçekten Microsoft’un uzun zamandır yapması gereken bir değişiklik idi.

17) Hosting Seçenekleri

Asp bir ISAPI programı olup IIS e bağlıdır.Buna karsın, asp.net ise .net framework üzerinde çalışır, böylece asp.net sayfaları bu nedenle IIS dışındaki web serverları tarafından da sunulabilecektir.

18) Daha hızlı web uygulamaları

ASP.NET derlenmiş kod ve saklanma işlemi ile hız kazanıyor. Daha önceki ASP sürümlerinde bir kullanıcı web sitesine girdiği zaman bilgisayar üzerinde anlık derlemeler yapılırdı ve bu hız kaybına neden olurdu. Artık ASP.NET ile hazırlanmış bir kod, bir ziyaretçi tarafından hiçbir zaman ziyaret edilmese bile derleniyor. Saklama işlemiyle de hafızaya bilgi depolanıp, bu sayede kullanıcılara verilerin daha hızlı yollanması sağlanabiliyor.
ASP.NET ile programcılar sayfalarını her kullanımda yeniden aratmak yerine bir kısmını “caching” yani tamponlama işlemi sayesinde daha hızlı erişilebilir hale getirebiliyorlar. Bir diğer değişiklik ise ASP .NET ile veri tabanındaki belirli verilerin saklanabilir hale getirilebilmesi. Bu sayede çok değişmeyen bir veritabanını her seferinde tekrar yüklenmek yerine, hızlı erişilebilir forma sokulmuş oluyor.

19) Güçlü veritabanı fonksiyonları

ASP gibi ASP.NET de programcıların veri tabanlarıyla etkileşimli çalışabilen web uygulamaları yapabilmesine izin veriyor. ASP.NET”in asıl avantajlı bir çok programlama aracına imkan veren Nesne Merkezli (Object Oriented) programlama ile çalışması. Bu sayede daha fonksiyonel ve daha hızlı tasarıma imkan sağlıyor.

20) Hafıza sızıntısı ve çökme koruması

ASP.NET teki en çok beğenilen yeniliklerin başında hafıza sızıntısı ve çökme koruması özellikleri geliyor. Özellikle hafıza sızıntısı, çoğu kullanıcı tarafından pek bilinen bir konu değilken, sistem yöneticilerini sıkıntıya sokan durumlardan biridir. ASP.NET ile bu hatalar otomatik olarak düzeltilerek, kullanıcıların her zaman web sitesine ulaşabilmesi sağlanıyor.

21) Çoklu dil desteği

Programcılar artık 25″ten fazla .NET dili ile ASP.NET”i kullanabiliyorlar. Bu dillerden bazıları VB.NET, C# ve Jscript NET. Geniş dil desteği sayesinde birçok programcı web uygulamalarını kolayca hizmete sunabiliyor.

22) .NET”in parçası olmak

.NET çatısı 3400″den fazla sınıftan oluşan bir yapıya sahip, ASP.NET de .NET”in bir parçası olduğu için neredeyse web uygulaması olarak yapılamayacak hiçbir şey yokmuş gibi gözüküyor.

23) Programlar ve HTML artık aynı sayfada değil

Önceki sürüm ASP”lerde göze çarpan sorunlardan biri HTML sayfasında programlamanın da görünmesiydi. Diğer bir deyişle, scriptler ve HTML aynı sayfadaydı. Artık gösterilen kod ile script kodu ayrılmış olduğundan, Microsoft bunun önüne geçmek için bir önlem almış gibi görünüyor.

Dezavantajları

1) Windows zorunluluğu

ASP.NET halen Windows işletim sistemi kullanan bir sunucu üzerinde yapılandırılmak zorunda; kısacası platform bağımsız değil. ASP”de de olan bu sorunu çözmek için Linux sistemlerinde çalışan birkaç ASP hosting sunucusu geliştirildiyse de, işin açıkçası pek başarılı olabilmiş değil. ASP.NET de hali hazırda Windows ve IIS (Internet Information Server)”a mahkumu görünüyor.

2) Güvenlik

Güvenlik açıkları ASP.NET”ten değil ne yazık ki IIS”ten kaynaklanıyor. Her yeni sürümde açıkları kapansa da IIS dünya çapında güvenlik açıklarıyla ünlü. Fakat .NET ile bununda bir dezavantaj olmaktan çıkması bekleniyor

3) Bedava değil

Evet, buna bir çok kişi şaşıracak ama temelde ASP.NET bedava değil. Ne de olsa kendi bilgisayarınızda ASP.NET kullanabilmek için (lisanslı) bir Windows sürümüne ihtiyacınız var. Bu da demek ki tam anlamıyla bedava değil.

4) Eklenti krizi

ASP.NET kaynak olarak bedava gibi görünebilir ama programlama konusunda bilgili değilseniz hazırlıklı olmanız gereken bir durum var, o da eklentiler. Bir işlemi yapmak için gereken eklentiler genelde ücretli olarak satılıyor. Tabii saatlerce uğraştan sonra bedava olan birkaç eklentiyi zor da olsa bulabilirsiniz.

5) Hosting maliyeti

Eğer dışarıdan hosting hizmeti alacaksanız biraz daha fazla para ödemeye hazırlıklı olmanız gerekiyor. Çünkü genel olarak Windows hosting daha pahalı, ki bu da normal olması gereken bir fark.

Kaynak: ChipOnline

Habip Oğuz

Kod yazmak onun için nefes almak... Daha fazla bilgi için buraya tıklayın.

Cevapla