Nedirler neler yaparlar?
Asp.NET Microsoft’un .NET kütüphanesini (Microsoft’un ortak dil platformu) baz alarak geliştirdiği, hızlıca web siteleri oluşturmaya yarayan, C#.NET ve VB.NET gibi popüler diller ile sunucu taraflı çalışan bir teknolojisidir. Çalışması için IIS (Internet Information Server) gibi bir Windows servisine ve .NET Framework’e (.NET dillerinin çalışması için gerekli ortam) ihtiyaç duyar. Eski bir teknoloji olan classic ASP’den çok daha ileri bir teknoloji olan ASP.NET bugün dünyada birçok kullanımına ratlanmaktadır. Kodlama esnasındaki genel yapısı iki kısımdan oluşmakta. Web görünüm ve kod tarafıdır. Web tarafına (html kodları arasına) yerleştirdiğiniz kontroller (buton, dropdownlist, textbox gibi)’e cod tarafından rahatlıkla erişebilir, bunların özelliklerinde bildiğiniz .NET dilleri ile değişiklik yapabilirsiniz (C#.NET, VB.NET, J#.NET gibi).
PHP (Hypertext Preprocessor)
Açık kaynak koda sahip, kod yazmayı sevenler için geliştirilmiş bir web dilidir. HTML kodları arasına hızlıca sunucu taraflı kodlar yazıp çalıştırmanızı sağlayan bu dilin kullanım alanı oldukça çoktur. Linux ortamlarının bile rahatlıkla çalıştırabildiği bu dil kod yazmayı sevenlerin gözdesi olmayı başarmıştır. C ve Perl dillerine benzemesine rağmen çok daha kolaylıkla öğrenilebilen bir yapısı bulunmakadır. Daha öncesinde bir dil tecrübesi olanlar için öğrenim süresi temel düzey için birkaç haftayı almaktadır.
Asp ile php Arasındaki Farklar
Nerelerde kullanılırlar, hangi boyuttaki projelerde aktif olarak kullanılabilirler.
Asp.NET hızlı web sitesi geliştirilmesinin gerekli olduğu, kullanıcı sayısının çok fazla olmadığı projelerde rahatlıkla (hazır kontroller ile birlikte) kullanılabilir. Böylece kısa zamanda birçok işe yarayan web siteleri yapılabilir. Bugün e-ticaret, Cms (Content Management Sistem) ve blog sistemlerde bile kullanılmaktadır. Çok daha büyük projeler için geliştirilen Asp.NET MVC teknolojisi (MVC=Model View Controller, bir design pattern’dir ve Asp.NET için de adapte edilmiştir) kullanılmaktadır.
PHP, bugün birçok blog ve Cms (Content Management Sistem, Örnek Joomla) sistemlerinde kullanılmaktadır. Küçük ya da büyük ölçekli tüm projelerde rahatlıkla kullanımaktadır. Ancak HTML kodları arasına yazım çok büyük projelerde yönetilebilirliği azalttığından ve birden fazla programcının çalışması gereken projelerde farklı teknolojilere başvurulabilmektedir (PHP MVC).
Aralarındaki ücret farkları
Asp.NET geliştirme ortamı için şu an herhangi bir ücret gerekmemektedir. Visual Studio 2013 Community, Visual Studio 2015 Community versiyonları ücretsizdir. Bunlarla rahatlıkla geliştirme yapılabilir. Ayrıca Asp.NET ile tam uyumlu çalışan veritabanı sunucusu olan Microsoft SQL Server Express versiyonu da ücretsiz olarak kullanılabilir. Ancak çok büyük projeler için tercih edilen Microsoft SQL Server’in ücretli versiyonlarının lisans ücretleri oldukça yüksektir (Microsoft SQL Server Standart, Enterprise gibi).
PHP; open source (açık kaynak kod) bir dildir. PHP ile ilgili birçok şeye ücretsiz ulaşabilirsiniz. Geliştirme ortamı olarak birçok text editör (Notepad++ gibi) ücretsiz olarak kullanılabilir. Ancak büyük projeler için tercih edilen Adobe Dreamveawer gibi programlar ücrete tabidir. Tam uyumlu veritabanı sistemi olan MySQL tamamen ücretsizdir. Ancak çok büyük projeler için kullanılan Oracle gibi ileri düzey veritabanı sistemleri ücretlidir.
Geliştirme süreleri farkları
Asp.NET’de çok hızlı bir şekilde yazılım geliştirmek mümkündür. Özellikle geliştirme ortamının sağladığı kolaylıklar ile sürükle bırak yöntemi ile hazır kontrolleri web sitenize adapte edebilir ve kod tarafında bu kontrollerin özelliklerini değiştirebilirsiniz. Ayrıca ücretsiz indirilebilir özellikleri ile (Ajax Control Toolkit gibi) tek satır kod bile yazmadan uzmanların kullandığı teknolojileri projenizde kullanabilirsiniz.
PHP’de ise durumlar biraz daha çileli gelişmekte. Eğer ücretsiz bir text editör ile PHP kodu yazıyorsanız (notepad++ gibi) herşeyi elinizle yazmak zorunda olduğunuzdan proje geliştirme süreniz oldukça artıyor. Ayrıca herhangi bir sorun halinde bu sorunu bulmak ve düzeltmek oldukça zaman alan bir süreç. Ücretli editörlerde bu süre azalmasına rağmen hala PHP de web projesi geliştirmek zaman açısından gayet maliyetli.
Çalışma süreleri farkları
Her ikisi de sunucu tarafında çalıştığından, browser tabanlı dillere göre (Html, css, javascript gibi) çok yavaşlar. Ancak birçok karşılaştırma testlerinde Asp.NET’in çalışma hızının PHP’den daha az olduğu görülmekte (Karşılaştırma testleri sonuçları için Kaynak). Bunda Asp.NET kodlarının ilk çalışmada derlenmesi ve sonra tekrar tekrar kullanılması mantığı etkili bir faktör. Nitekim PHP de her kullanımda sunucu tarafında derlenir ve çalıştırılır. Oysaki Asp.NET’de bir sefer derlenen kodlar artık her sefer için kullanıma hazırdır. Bunlara rağmen büyük çaplı projelerde kullanılan Asp.NET hazır kontrolleri performans açısından kayıplara neden olabilmekte. Ayrıca Viewstate (asp.net’te kullanılan kontrollerin bilgilerinin tutulduğu, html kodlarına adapte olmuş şifreli kodlar) kullanımı da (projenin boyutu arttıkça) performans kayıplarına neden olabilmektedir. PHP’de ise bir kararlılık söz konusu. Usta ve deneyimli eller ile yazılmış PHP kodları büyük projelerde bile performansa büyük ölçekli olumsuz etkisi bulunmamakta.
Yazım farklılıkları
Asp.NET Web Forms projeleri geliştirilirken 2 bölüm yer almakta. HTML, css, javascript gibi tarayıcı taraflı kodlarımızın bulunduğu ve ziyaretçilerin gördüğü kodların bulunduğu Web sayfası bölümü ve C# gibi kodlarımızın kullandığı, her asp.net sayfası için var olan kod bölümü yer almaktadır. Web sayfası bölümüne yerleştirdiğiniz her bir kontrolün ismi ile kod bölümünden bu kontrole erişebilirsiniz. Böylece 2 ayrı sayfa ile çalışarak kod kalabalığından bir nebze kurtulmuş olursunuz. Ayrıca bu kontrollerin olaylarına(events) Properties(özellikler) penceresinden erişip hızlıca kod tarafında olaylar yazabilirsiniz. PHP tarafında ise bu işlerin tamamı HTML kodları arasında yazılır. tag’leri (etiketleri) PHP için yeterlidir ve bir HTML kodlarının herhangi bir yerinde yazmak yeterlidir.
Uyumluluk ve üzerinde çalışma ortamları farkları
Son gelişmelerle birlikte her ikisi de hem Windows ortamlarda hem de Linux ortamlarda çalışmaktadır. Veritabanı sistemleri olarak her ikisi de Mssql, Mysql, Oracle gibi veritabanı sistemleri ile çalışmaktadır.
Geliştirildikleri ortam farkları
Geliştirme ortamının (Visual Studio) sağladığı birçok kolaylık ile projenizi daha az sorunlu ve zahmetsiz geliştirebilirsiniz. Visual Studio’nun sağladığı birçok kolaylık ile kod yazarken bile birşeyler öğrenebilir ve hızlıca projenizi kodlayabilirsiniz. Kısayolların kullanımı ile projenizi daha okunaklı yapabilir, kod renklendirmeleri ile daha anlaşılır kodlar yazabilirsiniz. Visual studio’da bulunan extensions aracı ile projenize birçok ücretsiz paket ekleyip rahatlıkla kullanabilirsiniz. Ayrıca birçok geliştiricinin ortak çalışmasını destekleyen Team Foundation ile projeler geliştirebilirsiniz.
PHP’de ücretli bir editör kullanıyorsanız (Dreamveawer gibi) işler çok daha kolaylaşmaktadır. Kod renklendirmeleri(ücretsiz editörlerin çoğu da desteklemektedir), kod tahmini (kodun bir bölümünü yazarken kod seçeneklerini getirme) gibi seçenekler ile programcıya yardım eden özellikler PHP tarafında da vardır. Bu sayede bilmediğiniz kodları bile öğrenebilirsiniz.
Hatayı tespit etme ve müdahale etme farkları
Asp.NET projelerinde Visual Studio hata bulmada oldukça başarılı bir editör. Daha projeyi yazarken bile yaptığınız hatalar hakkında size bilgi veriyor. Kod satırlarınıza koyacağınız break pointler ile (programın o satıra geldiğinde beklemesini sağlayan işaretler) değişkenlerinizin o anki değeri gibi bir çok ayrıntılı bilgiyi görmenizi sağlıyor. Böylece nerede bir mantık hatası veya kod hatası yaptığınızı bulmada size yardımcı oluyor. Visual Studio 2015 ile birlikte performans monitörlerinin de eklenmesi ile performans değerlendirmeleri yapıp daha performanslı projeler nasıl yapılabilir bunu görebiliyorsunuz.
PHP tarafında hatalı kod bulmak biraz daha çileli. Ücretli editörler bu çileyi azaltmakla birlikte, break point gibi yapılar da sağlıyorlar. Çok büyük projelerde ise bu çile giderek büyüyor.
Yazarın Notu
Yıllardır tartışıla gelen Asp.NET mi iyi PHP mi sorusu daha uzun yıllar boyunca tartışılacak. Ancak “Asp.NET ücretli PHP ücretsiz” gibi bir durum eskiden (Visual studio lisansından dolayı) varolmasına karşın son birkaç yıldır bu da ortadan kalktı. Artık her ikisi de ücretsiz. Şu an PHP open source(açık kaynak, isteyen istediği gibi geliştirebilir) iken Asp.NET değil (Buradaki geliştirme Asp.NET’in ve PHP’nin kendisidir, bunlarla yazılmış web uygulamaları kastedilmiyor).