ASP.NET ve PHP Arasındaki Farklar
ASP.NET ve PHP Arasındaki Farklar
Biliyorum bu konuda birçok makale yazıldı çizildi. İsterim ki .NET ve PHP arasındaki farkları bir de benden dinleyiniz:
1- PHP Nedir?
PHP, HTML içine gömülebilen betik bir dildir. Açılımı PHP, Personel Home Page olup, anlamı; Kişisel Web Sayfası’dır. PHP, ilk kez Rasmus Lerdorf tarafından, web üzerinden sayfasına ziyaret edenleri izlemek amacıyla Perl betiği kullanılarak geliştirildi. Lerdorf, Perl dilinde başlattığı bu yazılımı daha sonra kurduğu bir gurupla geliştirerek Perl dilinden bağımsız hale getirdi ve PHP artık nesne odaklı bir dil haline dönüştü. Popülaritesi gittikçe arttı ve günümüzde, veri tabanlarından forumlara, matematiksel sistemlerden fonksiyonlara kadar kullanılan bir dil haline geldi.
C veya PERL ile yazılan diğer CGI programlarından farkı, HTML çıktısı oluşturmak için düzinelerce satır oluşturmak yerine, HTML kodunuzun orta yerinde kullanabileceğimiz, verileri her yerde işleyebileceğimiz bir dildir.
2- PHP’nin Öne Çıkan Özellikleri (Artıları)
PHP’nin en güzel yanlarından biri, yeni kullanıcılar için öğreniminin oldukça kolay ve basit olması (her ne kadar kolay diyorsam da bu tamamen benim düşüncem, bana basit olan program başka birine basit gelmeyebilir) ve profesyonel kullanıcılar için ileri seviyede özellikler içermesidir. Sanırım PHP ile birkaç saat içerisinde basit programlar yazmaya başlayabilirsiniz. PHP’nin neredeyse çalışmadığı işletim sistemi yoktur. Linux, Microsoft Windows, Mac OS X, RISC OS dahil olmak üzere birçok platformda çalışabilme özelliğine sahiptir. Kısaca PHP ile işletim sistemi ve http sunucusu seçme özgürlüğüne sahipsiniz. Dahası var: resim çıktısı üretebilme, PDF oluşturabilme gibi yeteneklere de sahip.
PHP, farklı hizmetlerde HTTP, COM ve sayamadığım birçok protokol aracılığıyla iletişim kurabilecek güçlü bir alt yapıya sahiptir.
Unutmadan, PHP tüm Xml uzantılarını libxml2 tabanında tek bir standartta toplamıştır.
PHP, açık kaynak koddur ve kullanıcı çalışmayan veya olmayan uygulamalar için PHP’yi üreten firmanın keyfini beklemez. Açık kaynaklı olması sebebiyle, pek çok forum, online topluluk ve kendi resmi sitesi üzerinden teknik destek, sınırsız geliştirme hakkı sağlamaktadır. Ayrıca PHP ücretsiz bir yazılımdır. Hızlı performansı nedeniyle Facebook, Wikipedia gibi dünyaca ünlü sitelerin yazımında kullanılmıştır. İnternet dünyasında büyük bir geliştirici topluluğuna sahiptir. PHP ile yazılmış birçok program ve kodlar internette mevcuttur.
PHP, tarayıcıdan bağımsız çalışır. Explorer, Opera ve Mozilla Firefox kendi içerisinde bir takım farklılıklar taşır. Sonuç olarak da aynı kodlar bize her tarayıcıda farklı olarak sunulur. Ancak PHP, SERVER taraflı bir dil olduğundan tarayıcı fonksiyonu burada devre dışı kalıyor.
Unutmadan PHP’nin veritabanları ile de arası iyidir. Pek çok veritabanı ile bilgi alış verişinde bulunabildiği gibi bunu performanslı bir şekilde gerçekleştirir. Aslında buna özellik karşılaştırması desek yanlış olmaz sanırım.
MySQL veritabanı, PHP ile mükemmel sonuç veriyor. Sanki her ikisi de bütünleşikmiş gibi duran bu birliktelik, performansı olumlu yönde çok fazla etkiliyor.
3- PHP’nin Dezavantajları (Eksik Yönleri)
Hata denetimi .NET kadar etkili değil. Ayrıca IDE ve debugger uygulaması yok. Kod sayfasında yapılan küçük bir hata o sayfanın çalışmasını engeller (aslına bakarsanız PHP ile proje yazarken tek bir sayfada yaptığım hata komple projenin çalışmamasına neden oluyordu). Güncellemek istediğinizde web sunucusu ile eş zamanlı olarak derlemeniz gerekmektedir. Ki, bana göre PHP’nin en büyük sorunlarından biri de derlenememesidir. Peki derlenememek nedir?
Kullanıcılar bizim sitemize girmek istedikleri zaman istekleri direkt olarak kendi bilgisayarlarında gerçekleşmeyecektir. Bu istekler önce web sunucuya gidecek, istekler burada script yorumlayıcılar tarafından yorumlandıktan sonra tekrardan kullanıcıya geri gönderilecek. Yani kullanıcının her isteği için fazladan zaman kaybına yol açacak.
PHP’de hatalarla baş etmek sabrın sınırlarını zorlamak anlamına geliyor. “Yine neden çalışmıyor bu ya, of sabaha kadar hata ve çözümü ara dur şimdi!” cümlesini PHP ile kod yazarken çokça kullanmışımdır. Maalesef PHP, hatayı belirten bir IDE’ye sahip değil. Buda sizi hata ararken gereğinden fazla yoruyor.
Diyelim ki PHP ile kod yazarken bir yerde tıkandınız. Hemen Google amcaya danışıp sorununuzla ilgili cevap arıyorsunuz. Karşınıza binlerce cevap çıkabilir. Dikkat edin, karşınıza çıkan cevap sayısı binden fazla, çünkü ben PHP’ciyim diyen herkes internette bir şeyler yazmış. Kısaca internet ortamında PHP sorunları için birçok çözüm mevcut ancak bir çöp yığınından farksız. Ne seviyedeki programcıların yazdığı, ne kadar doğru olduğu tartışmalı olan bir kaynak kütüphanesinden bahsediyorum. Maalesef herhangi bir düzen söz konusu değil. ASP.NET’te ise daha düzenli ve profesyonel bir kaynak kütüphanesi mevcut.
4- ASP.NET Nedir?
ASP.NET, ASP ve PHP’den sonra çıkan yeni bir teknolojidir. ASP.NET, .NET Framework altında Windows işletim sistemi ile bütünleşik çalışan bir yapıdadır. 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, Visual Basic ve C# gibi güçlü programlama dillerini kullanabileceğimiz bir çatıdır diyebiliriz. Eğer bu çatıdan yararlanmak istiyorsanız elinizin altında Visual Studio gibi bir IDE’nin olması gerekir. Visual Studio, birçok programlama dilini bünyesinde barındırır ve ASP.NET ile çalışabilmek için içerisindeki dillerden herhangi birini bilmeniz yeterli.
5- ASP.NET Öne Çıkan Özellikleri (Artıları)
ASP.NET PHP’ye göre daha çok kullanılan bir yazılımdır. ASP.NET ile Visual Studio sınırları içerisinde bulunan yazılım dillerinden herhangi biri ile çalışabilirsiniz. Sonuçta nesne yönelimli birçok dile destek veriyor. Maalesef PHP de birçok hata ile baş etmek zorunda kalıyoruz. Bitmeyen sorunlar için çözüm yolları konusunda sıkıntılarla karşı karşıya kalabiliyoruz. .NET’te ise tüm bunlar düşünülmüş. Her şey bir yana Visual Studio’yu oturup saatlerde konuşmak gerek bence. Çünkü biz yazılımcıların ihtiyacı olan en iyi yol arkadaşı kullandığımız IDE’lerdir. IDE denildiğinde ilk akla gelen Visual Studio oluyor. İçerisindeki özellikler programcılık harikası, anlatmaya dilim varmıyor. PHP’den sonra ASP.NET’e geçmiş birisi olarak söylüyorum: “Visual Studio ile oturup .NET yazmak Maldivler de denize girmek gibi bir şey oluyor”. İnanın Visual Studio ile kod yazmak inanılmaz eğlenceli, siz yanlış kod yazarak kaçarken, Visual Studio hata ve çözümü ile birlikte peşinizden koşuyor. Şurada şu şekilde bir hata yaptın, lütfen oradaki kodu düzelt diyerek danışmanlık yapıyor.
Kimileri Visual Studio’ya karşı. Yani programcı dediğin kodları kendi yazmalı denip, Visual Studio’ya olumsuz bakıyorlar. Bence bir programcı için önemli olan zamandır. Daha az zamanda ve daha kısa sürede proje hazırlamayı sağlayacak her türlü fırsat değerlendirilmeli bence. Oturup da işletim sistemi yazmıyoruz sonuçta. A programcısı NotePad de 3 ayda yazdığı kodu, X programcısı Visual Studio yardımı ile 3 haftada yazar sanırım. İşte ASP.NET, yazılımcıya bunu sağlıyor. Bu bakımdan ASP.NET, PHP den açık ara önde.
Hepsi bu mu? Hata ayıklama mekanizmasının konusunu dahi açmak istemiyorum, kısaca mükemmel. Windows, Office ve SharePoint dahil olmak üzere farklı platformlarda yüksek kaliteli uygulamalar oluşturulabilmesi ise ayrı bir yana.
ASP.NET derlenmiş kod ile hız kazanıyor. ASP.NET tarafından hazırlanmış bir kod, ziyaretçi tarafından hiçbir zaman ziyaret edilmese bile derleniyor. Kodları hafızaya alarak, kullanıcıya daha hızlı veriler yollayabiliyor. .NET ile program yazanlar yazdıkları sayfaları her kullanımda yeniden aratmak yerine bir kısmını ‘caching’ yani tamponlama yaparak daha hızlı erişilebilir hale getirebiliyorlar. Böylece veritabanını hızlı erişilebilen bir yapıya bürümüş oluyoruz. ASP.NET ile veritabanlarıyla etkileşimli web uygulamaları yapabiliriz. Ayrıca hafıza sızıntısı da ortadan kaldırılmış durumda.
Yazılımcılar 20’den fazla .NET dili ile ASP.NET’i kullanabilirler. Örnek vermek gerekirse bu dillerden bazıları VB.NET, C# ve Javascript NET. Geniş bir dil desteği sunuyor biz programcılara. .NET’in parçası olmak, önünüzde yapamayacağınız herhangi bir web uygulamasının olamayacağını gösteriyor (yinede kesin konuşmamak gerek tabi). Unutmadan .NET ile birlikte program için yazılan kod ile HTML kodu artık aynı sayfada değil. Yaklaşım tarzı ile profesyonelce projeler geliştirebiliyorsunuz.
ASP.NET’i kullanabilmeniz için C#’ı bilmeniz gerekiyor. Aslında ASP.NET ile kod yazıyorsanız demek ki beraberinde C#’ı da öğrenmişsiniz.
Üstelik PHP de kod güvenliğini sağlayan, ücretsiz bir araç bulunmamaktadır. Ancak .NETte durum bu şekilde işlemiyor. Çok iyi çalışan araçlar var ve bunların community edition’ları tamamen ücretsiz.
İş arama(kariyer) sitelerine bakarsanız, hep ASP.NET, .NET Platformunda dil/diller, MsSql Server bilen mühendisler ya da yazılımcılar ararlar.
6- ASP.NET’in Dezavantajları
İlk söyleyeceğim dezavantajın ne olduğunu sanırım herkes tahmin ediyordur. Açıklıyorum o zaman: Windows zorunluluğu. ASP.NET halen Windows işletim sistemi kullanan bir sunucu üzerinde çalışmak zorunda. Anlayacağınız platform halen bağımsız değil. Şunu da belirtmek istiyorum: her ne kadar ASP.NET’te Windows’a bağlıysan, PHP’de de bir o kadar geliştiricilere bağlısın.
Birçok kişi ASP.NET’teki güvenlik açıklarından bahsetse de aslında bu daha çok IIS’ten kaynaklanıyor. Maalesef IIS dünya çapındaki açıklarıyla ünlü. Microsoft mühendisleri bunu dezavantaj olmaktan çıkarmaya çalışıyor.
.NET bedava değil. Bilgisayarınızda ASP.NET kullanabilmek için (lisanslı) bir Windows işletim sistemine sahip olmanız gerekiyor. Bu da demek oluyor ki tam anlamıyla bedava değil. Ayrıca ASP.NET’in kimi eklentileri de ücretli olarak satılıyor.
Unutmadan, eğer dışarıdan herhangi bir hosting hizmetinden yararlanacaksanız biraz da olsa daha fazla para ödemeniz gerekiyor. Çünkü Windows hosting paketleri Linux’a oranla daha pahalı.
7- Her Söylenen Doğru mu Peki?
Tabiki de hayır. Mesela, .NET’te PHP’ye oranla daha fazla kod yazıldığı söylenir. Bunu bu şekilde söylemek pek doğru olmaz. Çünkü .NET’te fonksiyon sayısı çok fazla, buda PHP ye oranla yazılan kelime sayısının az da olsa fazla yazılmasına neden oluyor. Bana inanmadığınızı sezer gibiyim. En basitinden her iki programda ekrana “Merhaba Dünya” yazısını yazdıralım. Bakalım ne kadar bir fazlalık söz konusu:
PHP ile:
ASP .NET ile :
<% “Merhaba Dünya” %>
Sizin de gördüğünüz gibi iki yazım arasında pekte bir fazlalık yok. Yine söylüyorum, .NET’in fonksiyonları daha fazla ve bu özellik yazımda da kendini belli ediyor. Bunu olumlu veya olumsuz bir özellik olarak yorumlamakta size kalmış tabi ki de.
SONUÇ OLARAK
PHP, gündelik yaşamımızdaki basit projeleri gerçekleştirebilecek düzeydeki bilgilerinin daha anlaşılır ve daha kolay olması, geliştirici sayısının yüksek olması ve daha kullanışlı metotlar içermesi noktasında gerçekten güzel bir dil. ASP.NET noktasında ise, kendine özel geliştirme ortamının (Visual Studio) bulunması, IIS ve Mssql ile tam uyumlu bir şekilde kullanılabilmesi, kendine has güvenlik metotları ve kuralları ile daha derli toplu düzenli, sistematik bir kod olması ile önemli. Benim amacım PHP kötüdür bu yüzden ASP.NET kullanın veya ASP.NET’ten uzak durup PHP’ye yönelin demek değil. Ben sadece size haritanın yolunu çizmeye çalıştım. Hangi yoldan gideceğinize sonuçta siz karar vereceksiniz. Makaleyi yazan kişi olarak söylüyorum ki, ben şahsım adına her iki dili de biliyorum. Sizde aynısını yapabilirsiniz. Sadece daha fazla çalışmanız gerekecek. “Yok, bir tanesi bana yeter” diyorsanız karar sizin. Şimdiden kararını veren arkadaşlara kolay gelsin o zaman. Görüşmek üzere…