Küçük ama Önemli Bir Önsöz
- Bu yazının sonunda php mi asp.net mi daha iyi diye genel bir yargıya varılmayacaktır. Yalnız size bu yazının benim için php mi asp.net mi hangisi daha iyi sorusunun cevabı hakkında birçok açıdan yardımcı olacağına inanıyorum.
- Asp.NET/Aspx ile Asp(Klasik Asp) arasında isim benzerliği dışında hatırı sayılır bir ilişki yoktur. Microsoft, .NET (dot net) platformunu piyasaya çıkarınca, .NET Platformunun Web için uyarlanmış haline sanki asp’nin yeni hali der gibi aspx ismini vermiş. Halbuki Asp ve Asp.NET çok farlı teknolojiler kullanmakta olup klasik asp, php’ye benzer bir script dili (scripting language)’dir. Asp.net için ise Microsoft’un .NET Platformu üzerinde çalışan bir web bileşeni diyebiliriz.
- Aşağıdaki bu iki web programlama dilinin kıyasını yaparken, kendi cüz’î/kısıtlı bilgilerimle yetinmeyerek internet üzerinde bir çok sayfa üzerinde bir kısmı uzmanlar tarafından yapılmış çok sayıda yorum ve makaleyi göz önünde bulundurdum.
Bu iki web programlama dillerini karşılaştırmaya başlamadan önce kısa ne olduklarına değinelim:
PHP Nedir?
PHP (Pre-Hypertext Processor);
- HTML içine gömülü olarak çalışabilen,
- Dinamik web sayfaları üretmeye yarayan,
- Geniş çapta kullanılan,
- Çok amaçlı,
- Sunucu (server) taraflı,
- Çok esnek yapıda olan
bir script (betik) dilidir. Ayrıntılı bilgi için resmi sitesindeki PHP Nedir? adlı yazıyı (türkçe) okuyunuz.
Asp.NET (Aspx) Nedir?
Asp.NET (Active Server Pages)
- IIS (Internet Information Services) sunucusu tarafından çalıştırılan,
- “.NET Programlama Platformu” bileşenlerine ve kütüphanelerine sahip,
- VB (Visual Basic), C# (Sî Şarp Okunur), J# (Cey Şarp Okunur) dillerini isteğinize göre kullanarak kod yazabileceğiniz,
- Visual Studio gibi çok gelişmiş bir kod düzenleyisi ve derleyicisine sahip
bir web uygulaması geliştirme ortamıdır. Ayrıntılı bilgi için resmi sitesindeki http://www.asp.net/get-started sayfasına (ingilizce) gidiniz.
Php vs Asp.NET Karşılaştırması
| Özelliklik | PHP | Asp.NET |
|---|---|---|
| Sunucu Taraflı (Server Side) Çalışma Hızları | PHP çalışma anında hem derlenip hem de çalıştırıldığı için sunucu tarafında işlenmesi daha uzun sürmektedir. Ama bu sunucu taraflıdır. [Kaynak] | Belirttiğim kaynakta yapılan teste göre asp.net linux ortamında bile php’den daha hızlı çalışmaktadır. Bunda şüphesiz asp.net kodlarının çalışmadan önce dll (dynamic language library) lere derlenerek çalışmaya hazır hale getirilip saklanmasıdır. [Kaynak] |
| Kullanıcı Taraflı (Client Side) Çalışma Hızları | Eğer bir PHP programcısı sitesini iyi bir modelleme ile, iyi bir javascript, html ve css optimizasyonu ile programlarsa modern tarayıcılarda (firefox, internet explorer, opera, chrome, vs..) maximum hıza ulaşabilir. | PHP için yazılanlar Asp.NET için de geçerlidir yalnız maximum tarayıcı hızına ulaşmak için bir çok Asp.NET’in hazır kontrollerinden vazgeçip gerektiğinde kendi kontrollerinizi kendiniz yazmanız gerekebilir ya da sunucu ile (hızlı bir şekilde) ajax etkileşimine girmek için php’de uğraştığınız süre ve gayretten daha fazlasını feda etmeniz gerekebilir. |
| Sayfa Yüklenme Hızları (PageLoad Speed) | Eğer bir PHP programcısı, caching (önbellekleme), sıkıştırma (gzip), sayfayı gereksiz html, css ve javascript kodlarından arındırarak gerekli optimizasyonları yaparsa, resimlerin tarayıcı taraflı önbelleklemeleri için son kullanma tarihlerini (expiration time) düzgün girerse sitenin yüklenme hızını ciddi oranda arttırabilir. | PHP için yazılanlar Asp.NET’te de geçerlidir. Hatta önbellekleme (tüm sayfa, değişken ve fonksiyon ) bir ya da birkaç satırla Asp.NET sayesinde kolayca yapılabilmektedir. (Php’de ise bu iş sizin marifetli parmaklarınıza kalmaktadır.) Bununla beraber, Asp.NET, viewstate yapısı, sayfanın boyutunu ciddi oranda etkileyebiliyor. Bu da sayfanın yüklenme hızına ciddi oranda olumsuz etki yapmaktadır. Yalnız istenirse bu viewstate yapısı kullanılmayabilir. Hatta Asp.NET MVC’de (Model-View-Controller Modeli) viewstate yönteminden uzaklaşılmıştır. |
| Websitesi Hazırlama Hızları | PHP’de sıfırdan ve en baştan veritabanı ilişkisi gerektiren güvenli(secure) ve sağlam(robost) büyük bir websitesi tasarlamak ve programlamak gerçekten zahmetli ve çok düşünme ya da tecrübe gerektiren bir iş olabilir. Bununla beraber neredeyse her web yazılımı ihtiyacı için ayrı ayrı yazılmış bir çok php tabanlı içerik yönetim sistemleri (joomla, drupal), blog sistemleri (wordpress), forumlar (smf, phpbb), e-ticaret site yazılımları (oscommerce, magento) bedava olarak internetten indirip php hosting alanınıza kurabilir ve kolayca ihtiyaçlarınıza göre geliştirebilirsiniz. | Asp.NET her türlü küçük projeniz için birebirdir. Fazla ayrıntılara girmedikçe mevcut kontrolleri sizin ortalama ihtiyaçlarınızı karşılayacaktır. Projeler büyüdükçe Asp.NET’in hazır kontrollerinin ne kadar da değişik türde sıkıntılar çıkarabildiklerini göreceksiniz. Çok büyük çaptaki site projelerinizde ise ciddi bir .NET deneyimine ihtiyaç ve bir takım çalışmasına ihtiyacınız olabilir. Team Foundation Server ile takım arkadaşlarınızla aynı proje üzerinde çakışma olmadan çalışabilir ve çalışmalarınızı yürütebilirsiniz. Yalnız bunun için de bir Team Server kiralanması gerekebilir. |
| Ücret | PHP’nin Asp.NET’i solda sıfır bıraktığı özelliği ücretsiz olmasıdır. İşte bu konuda tartışmasız PHP bir numaradır. Linux sürümleri ücretsizdir. PHP ücretsizdir. PHP üzerinde en yaygın kullanılan veritabanı olan MySQL ücretsizdir. Dünyanın ödüllere doymayan, MVC (Model-View-Controller) modelini kullanan ve binlerce gerekli ve faydalı eklentileri olan içerik yönetim sistemi Joomla ücretsizdir. Dünyanın en yaygın kullanılan blog yazılımı wordpress ücretsizdir. Ve ücretsiz olarak da sunulan birçok teması ve eklentisi de resmi sitesinde ücretsiz olarak yayınlanmaktadır. | .NET ücretsizdir yalnız Asp.NET sitenizi tasarlamanıza ve derlemenize yarayacak olan Visual Studio programı ücretlidir ve şu an (2011 Ocak) itibariyle Visual Studio 2010 Professional lisans ücreti $549, ve microsoftun veritabanı olan SQL Server 2008 Standard ise CPU başına lisans ücreti $7,171.00′dır. Fiyatlarındaki bu yükseklik doğal olarak hosting fiyatlarına ve ücretli asp.net yazılımlarına da yansımaktadır. [Kaynak1][Kaynak2] |
| Yazılım Geliştirme Ortamı | Adobe Dreamweaver CS5 $485 ya da Notepad++ | Microsoft Visual Studio 2010 Professional $549 |
| Dünya Üzerinde Kullanım Oranları (2010) | %59 – 3.998.425 [Kaynak] | %34 – 2.294.166 [Kaynak] |
| Meşhur Web Siteleri | PHP Kullanan Büyük İnternet Sitelerinden Birkaçı
| Asp.NET Kullanan Büyük İnternet Sitelerinden Birkaçı
|
| Açık Kaynak (Open Source) | Evet | Hayır |
| Desktek Sitesi | http://php.net/ sitesi üzerinde;
[Kaynak] | http://www.asp.net/ sitesi üzerinde;
[Kaynak] |
| Yazarın Kişisel Yorumu | PHP’de yazılım geliştirme çok daha ucuz, daha esnek ve daha kararlıdır. Eğer dreamweaver cs5 gibi bir program kullanmazsanız kod yazma aşaması sıkıntılı geçebilir. İnternet php ile ilgili örnek kod kaynamaktadır. Birçok bedava açık kaynak/open source yazılım (joomla, wordpress, smf, vb.. ) anında indirilebilir durumda internette mevcuttur. Asp.NET açık kaynak yazılım çeşitleri açısından PHP’nin yanından bile geçemez. Özgür bir ruh, program ve algoritma sevenler, bir site üzerinde neler olduğundan haberdar olup kontrolü elinde tutmayı isteyenler, kendi sistemini kurarak sunucuyu sadece gerekli işlemler için çalıştırıp gereksiz işlemlerle uğraşmaktan alıkoymaya baş koymuş, kodlamaktan zevk alan dimağlara php’yi tavsiye ederim. | Eğer C# ya da VB programlama dillerini zaten biliyorsanız, bu yeteneğinizi Asp.NET üzerinde kullanarak web sitenizi oluşturabilirsiniz. Asp.NET bilginiz ile birçok şirketin gözdesi haline gelebilirsiniz. Microsoft’un .NET platformu üzerindeki uygulamalarını geliştirmeye yardımcı olarak sunduğu Visual Studio 2010 ile ister masaüstü ister web uygulamaları oluşturabilirsiniz. Ayrıca Microsoft Team Server ile bir proje üzerinde takım halinde çalışabilirsiniz. (Tabi Bunların Hepsi Ücretli)İşin can sıkan tarafı Microsoft hangi işe el atarsa atsın görsellik ve kullanıcı dostluğu yönlerine odaklanırken teknik anlamda hep bir taraftan bir patlak veriyor. Sürekli teknoloji değişikliğine gidiyor.Microsoft .NET’te bence ortalama kullanıcının en az kod kullanarak en hızlı, sağlam ve en sistemli şekilde uygulama geliştirmesini hedefliyor. Bu büyük bir hedef ve bu hedefine büyük oranda ulaşmış durumda. Yalnız o küçük oranda karşılaştığınız sıkıntılar başınızı duvara vurup sonra saçlarınızı yolup gözleriniz kızarıncaya kadar ekrana anlamsızca bakmanıza yol açabilir. |
Yukarıda Kullanılan Bazı Terimler
ViewState: Hal-i hazırdaki aspx sayfasının tüm sunucu taraflı kontrollerinin verilerini (mesela bir input textbox’ının içinde gelen bir ismi, e-maili, ya da select list box içindeki şehir isimlerini ve değerlerini) bir sonraki sayfaya, gizli bir hidden form elementi ile post yoluyla aktarmaya yarayan şifreli veri taşıma yöntemi.
English
Türkçe
#1 by cihan on 30 Ocak 2011 - 00:14
çok güzel bir yazı olmuş yiğit tebrik ederim çok beğendim…
#2 by Yiğit Hacıefendioğlu on 30 Ocak 2011 - 00:27
teşekkür ederim
faydalı olması dileğiyle…
#3 by Recep Kul on 13 Şubat 2011 - 13:39
Kardeşim yazıların çok güzel böyle bir blog yaptığın ve bizi bilgilendirdiğin için tşk ederim.
Yazılarının devamını bekliyoruz
#4 by Kerem Gül on 09 Nisan 2011 - 15:47
Merhaba ben hem asp.net , C#.net ve Php yi kulllanan c# ve php yi ana dili gibi bilen bir yazılımcıyım ve yukarıda biraz .net platformunu kayırmışsınız ya o platformu seviyorsunuz yada onu biliyorsunuz php den habersiniz yok her neyse.
Php bi C türevidir ve kodlaması c# a benzer c# bilen bir kişi çok rahat php ile kodlama yapabilir. Ayrıca gerek microsoft olsun gerek diğer şirketlerin php için onlarca editoru mevcuttur ve asp.net gibi bağımlılık yaratmaz
Php-Gtk kutuphaneleri sayesinde php ile masaüstü uygulamaları geliştirebilirsiniz.
Ayrıca Asp.net kısıtlı veritabanı bağlantı işlemleri vb gibi sabit kodları ile küçük bir odada tıkılmış hissi uyandırır kodlarken.
Şuan php nin geldiği noktada dış donanımlarla irtibat kurulabiliyor robotik kollar , sensörler hareket ettirilebiliyor yapay zeka yazılımları yapılabiliyor.
Buradaki yanlış zaten şurada başlıyor PHP sizin sandığınız gibi asp.net html gibi bir web programlama dili değildir C# Delphi Phyton gibi bir Programlama dilidir ve makina tarafı da oldukca güçlüdür.
Bir diğer nokta ise hız konusunda bu konuda sayfalarca şey yazabilirim fakat Oracle Solaris işletim sistemlerinde asp değil php kullanılmasını tavsiye ediyor bu kadarı yeter galiba
Ben işim gereği asp.net ile de kodlama yapıyoruz ve dile hakimim ama php çok farklı bir dünya
sınırları yok C türevi oldugu için içine c# ta yazdığın kodları gomebiliyorsunuz soket programlıya biliyorsunuz
bence dediğim gibi php’yi hala 1.0.1 versiyonunda sanıyorsunuz fakat o zamandan bu zamana çok sular aktı ve akıyor
PHP artık hem web hemde masaüstü ortamında kullanabileceğiniz bir dil konumuna gelmiş durumda 
ha bide asp.net 
ve unutmayın PHP oğrenirseniz hem C hem c# hemde C++ ogrenmis olursunuz fakat c# ogrenirseniz sadece c# ogrenmiş olursunuz
Saygılarımla Kerem Gül
#5 by Kerem Gül on 09 Nisan 2011 - 15:49
Bir diğer konu da bildiğiniz gibi Microsoft Visual Studio’nun yeni sürümünde php de yer alıyor ki yaklaşık 3 Yıldır Microsoft Expression Studio ailesine microsoft php’yi dahil etti daha dogrusu bunu yapmak zorunda kaldı
#6 by Kerem Gül on 09 Nisan 2011 - 15:58
bir şey daha eklemek istiyorum bir link vermek istiyorum bu blogun okuyucuları için
PHP’nin esnekliği ve gücü açısından Php-Manual dan bir sayfa
http://www.php.net/manual/tr/intro-whatcando.php
Burada php nin desteklediği veritabanı sistemleri yazıyor
#7 by Yiğit Hacıefendioğlu on 09 Nisan 2011 - 17:07
@Kerem, teşekkür ederiz ayrıntılı yorumlarınız için, PHP-GTK eklentisini PHP ile Masaüstü Programcılığını duymamıştım. Şimdi verdiğiniz link üzerinde de bahsedilmiş. Yorumlarınızda sunduğunuz bilgiler gerçekten faydalı.
Yorumunuzda değindiğiniz gibi, asp.net’te küçük bir odada tıkılma hissini ben de yaşadım. Ve asp.net’in en sevmediğim yanı, hazır kütüphaneler kullanırken karşılaştığım bir bug/hata karşısında tamamen aciz kalmamdır. (Çünkü internette de benim gibi aciz kalanların yorumlarını da okudum.)
#8 by ferhat on 17 Mayıs 2011 - 00:36
arkadaşlar visual studio gerçekten bunalttı yav acaba php mi şimdi yolun başındayım
şunu seç diyin lütfen photoshop ile yapılan güzel bir sayfa tasarımı tövbe billah visual studio da olmuyor yani dreamwevar gayet güzel 5 dakikada hazırlanıyor gerçek web tasarımcıların hakkını yememek için yolun başındayken php mi visual s. mu
#9 by Mehmet H. on 04 Haziran 2011 - 02:14
yolun başında olan bir web tasarımcı olarak yazınızdan dolayı sizi tebrik ediyorum. hakikaten ihtiyacım olan bir karşılaştırmayı görmüş oldum.
#10 by zafer bozok on 27 Temmuz 2011 - 10:13
Hem .net (c# ) hem de php de ürün geliştiriyorum.
Ben size gerçek hayatta ne oluyor onu aktarmak isterim.
firmam için geliştirdiğim 4 tane proje var bunlardan biri php
diğerleri asp.net .Patron rapor isityor diyelim eğer proje asp.net ise projeye reportwizard ekleyerek olayı hemen çözüyorum excele aktar pdf ‘ e aktar derdim yok.Görsellik on numara patronda vay be ne iş çıkarmış diyor.
Aynı olay php projesinde olursa table yapısı ve bunu excele,pdf’e aktaracak componentler filan ciddi zaman kaybı.Görsellik için eklstra oynamam lazım
Sonuçta .net ‘ in arkasında visual studio ve şu delphi den transfer ettikleri adam olduğu sürece ürün geliştirmek çok kolay ve zevkli.
Ama birde yazılımın gerçek dünyası herşeyin kontrolü her satırda emek istiyorsanız php
Benim şahsi görüşüm .net biraz daha ağır basıyor nedeni ise sonuçta bu işi para için yapıyorsak zaman da önemli ise bence .net
#11 by ALi Fırat Güler on 04 Ağustos 2011 - 13:47
selam arkadaşlar. benim görüşüme göre microsoft .net dilini yaparken öyle birşey yapmışki sizin hatalarınızı kapatıyor, ufak kodlarlarla dünya kadar iş yapabiliyorsunuz. yani asp.net öğrenmek çocuk oyuncağı gibi bişey olmuş. Ellerine sağlık güzel de yapmışlar. fakat bu özellikleri taşıyan .net ile yapılan bir proğramlamada size bukadar kolaylık sunduğu için arka planda ne fırtınalar kopuyor
asp.net nelerle uğraşıp nelerle boğuşuyor. ve buda asp.net’i biraz yavaş kılıyor.
Fakat php daha temel bir dil. c türevi olarak biliyorum ben phpyi. php ninde esnekliği zaten temel olmasından geliyor. evet php gtk kütüphaneleri sayesinde masa üstü proğramına kadar yazılabiliyor. fakat gtk kütüphanesi desteği açıkçası pek iyi değil. yani destek yok. onun yerine c ile proğram yapmayı tercih ederim
.
Evet dediğim gibi php daha temel bir dil ve bu yüzle asp.net’e göre daha zor öğrenimli ve çok dikkat isteyen bir dil. ancak doğru algoritma izlendiğinde karşısında rakip tanımayan bir dil diyebilirim. haa bu arada php4- ile php5 arasında çok mükemmel farklar vardır onuda söyleyeyim.
sonuç olarak benim fikrim şu ;
kolaylık varsa hız ve esneklik,özgünlük yoktur
kolaylık yoksa hız , esneklik,özgünlük vardır… herkese iyi günler dilerim…
#12 by Yiğit Özdemir on 18 Ekim 2011 - 20:32
Visual Web Developer da ücretsizdir bu işi ticari olarak yapmıyorsanız. Ayrıca Microsoft Websitespark programı ile MsSql, VWD gibi yazılımları ücretsiz olarak firmalara sağlamaktaydı.