PHP veya ASP.NET ne zaman kullanılır? [kapalı]


46

PHP ve ASP.NET kullanarak web uygulamaları geliştirmek için yoğun bir şekilde çalıştım, ancak müşterilerim tarafından sürekli olarak sorduğum sorulardan biri bir php web sitesi veya bir asp.net web sitesiyle ilerlemek olup olmadığıdır.

Doğal olarak, akla gelen ilk şey, şu soruyu şu şekilde cevaplamaktır:

PHP açık kaynak kodlu ve ASP.NET Microsoft'tan.

Genellikle böyle bir şey söylendikten sonra, müşterinin orada yüzünde boş bir görünüm olduğu söylenir. Anlaşılan birinin bir açık kaynak ve diğerinin olmadığı gerçeği aslında onları desteklemiyor. Ve iyi bir sebepten dolayı, ilk duyduğumda bana pek bir şey söylemiyor.

Gelişen web siteleri söz konusu olduğunda her ikisinin de farklı olduğunu bildiğim için çalışıyorum.

Sorum şu ki, ASP.NET ve PHP arasındaki farklar nelerdir?

  1. Özellikleri
  2. Güvenlik
  3. extendability
  4. çerçeveler
  5. Ortalama Geliştirme Süresi

Uygun geliştirme platformunda bilinçli bir seçim yapılabilmesi için müşteriyle karşılaştırılabilecek gerçeklerin bir listesini derlemeye çalışıyorum.


7
İkisini de kullandım, sanırım Visual Studio ve ASP.NET çok daha sağlam. Yalnız IDE beni kazanıyor.
Muffin Man

7
PHP benim için her zaman yumuşak bir noktaya sahip olacak çünkü benim ilk web programlama dilimdi ... ama ASP.NET C # 2 yıl sonra geri dönebilmemin bir yolu yoktu .... Visual Studio IDE harika!
Dal,

Evet, php'nin bir çeşit ana IDE'ye sahip olmasını diliyorum, ancak bunun PHP'nin açık kaynaklı olması ruhunu öldüreceğini tahmin ediyorum. Kesinlikle dikkate alınması gereken bir faktör.
Edward

2
6. Projenin ömrü boyunca maliyet?
VirtuosiMedia

@VirtuosiMedia'da bahsetmediğim önemli bir faktör daha var.
Edward

Yanıtlar:


39

Özellikler , Güvenlik ve Uzatılabilirlik aşağı yukarı aynı olacaktır. PHP ile neler yapılabilir ASP.NET ile yapılabilir.

Çerçeveler - Yine, çerçevelerin özellikleri söz konusu olduğunda , aşağı yukarı aynı olacaktır. Bununla birlikte, dilin kendisinden daha spesifik olarak , şunu göz önünde bulundurmak istersiniz:

  • Geliştiricileriniz için en rahat olan şey. Bilgi = verimlilik .
  • Proje bazında, bir dilde bir çerçeve, diğer bir çerçeveye göre daha doğal bir uyum olabilir. Dilin kendisinden daha spesifik olmak, bir çerçevenin yardım edemeyeceği, ancak bazı görevlere uygun ve diğerlerine daha az uygun olacağı anlamına gelir.

Ortalama Geliştirme Süresi - Çok küçük bir proje için ortalama geliştirme süreniz PHP ile daha iyi olabilir , çünkü web barındırma programları bulmak çok kolaydır ve makineleri kurmak çok kolaydır. Ancak, iyi şeylere sahip olduğunuz ya da zaten ayarlanmış olduğu sürece daha büyük bir şeyle, muhtemelen bir yıkama olacaktır.


Yapmanız gereken en önemli husus , müşterinizin ileriye götürmek için hangi teknoloji yığınını kullanmak istediğidir. Her ikisi de diğerleriyle iyi bir şekilde karışmaz (kolayca). Birine veya diğerine aşina olan geliştiricileri olabilir.

  • Müşteriniz Microsoft'a bağlı olma fikrini seviyorsa, ASP.NET ile gidin . Bazı müşteriler MS ile gelecekteki destek, yükseltme vb. Konularda daha fazla rahatlığa sahip olacaktır.

  • Açık kaynak ve Linux sunucuları fikrini seviyorlarsa, PHP ile gidin . Bu, web istemcilerinin aktarılabilirliği, ücretsiz yazılım vb. Nedeniyle bazı müşterilerin ilgisini çekebilir.

Ve son olarak, umursamıyorlarsa, en rahatınızla birlikte gidin . Bunun ötesinde fazla bir şey yok.


8
+1 "Yapmanız gereken asıl husus, müşterinizin ileriye götürmek için hangi teknoloji yığınını kullanmak istediğidir."
Sistem

Güvenlikten uzaklaşmak Her platformun nasıl performans gösterdiğini görmek için kaynak yok mu?
Edward

3
@loyalpenguin - bu başlı başına bir sorudur. "Her bir platformun nasıl performans gösterdiğini" kastettiğinizden emin değilim, ancak platform güvenlik deliklerinden (neredeyse her zaman hızlı bir şekilde yamalanan) bahsediyorsanız , bu endişelerinizin en küçüğüdür. Çoğunlukla, her dil kodu yazan geliştirici kadar "güvenli" dir.
Nicole

iyi bir nokta.Sadece bir son soru O zaman daha güvenli olan sorudan nasıl çıkarım?
Edward

@loyalpenguin farklı bir soru olduğunu söylediğimde, sanırım soru şu: "Platform güvenliği sorunları web uygulamalarında kaygı için önemli bir neden midir? PHP, ASP.NET, Java, Ruby on Rails, vb. " Bana göre, o kadar emin aslında o değilim olduğu endişe için büyük nedenidir.
Nicole

29

Sadece cevaplarımı temel aldığım şeyin arka planını vermek için, PHP geliştirme sürecini 6 yıldan beri profesyonelce yaptım, ASP.NET MVC ile yaklaşık 3-4 aydır oynuyorum ve C # PHP programlama kadar programlama.

Benim için bu bir PHP vs C # argümanından daha çok PHP vs ASP.NET olanıdır.

Özellik / Genişletilebilirlik
ASP.NET'in burada kazandığını düşünüyorum ve bunun nedeni C # gibi bir dil kullanma yeteneğinden kaynaklanıyor. C #, OO desteğiyle birlikte PHP'den çok daha iyi bir dildir. Ayrıca statik olarak yazılmış bir dili tercih eden bir insanım (C # 4.0 ile bile olsa, dinamik olarak yazılmış değişkenleri yapabileceğinizi düşünüyorum). PHP'nin C # üzerinde bir dil özelliğine sahip olduğu tek şey isteğe bağlı parametrelerdi ancak bu C # 4.0'da eklenmiş olan başka bir şeydi (henüz denemediğim kadar iyi çalıştığından emin değilim).

Güvenlik
muhtemelen iki arasında bir yıkama olduğunu söyleyebilirim. Her ikisinin de güvenliğe yardımcı olacak işlevselliğe sahip olduğunu düşünüyorum ancak sonuçta uygulamalarının güvenli olduğundan emin olmak programcının işidir.

Altyapılar
PHP'nin çok daha yaygın ana çerçeveleri (CakePHP, Codeigniter, Symfony, Zend Framework) ve ASP.NET'ten çok daha küçük başka çerçeveleri var. ASP.NET, Microsoft, WebForms (tam bir saçmalık) ve ASP.NET MVC'den (ASP.NET geliştirmeye başlamamın nedeni) iki ana çerçeveye sahiptir. PHP daha fazla çerçeveye sahip olsa da, ASP.NET MVC 3 çerçevesinin PHP çerçevelerinden daha iyi olduğunu düşünüyorum.

Ortalama Geliştirme Süresi
Bence küçük projeler için geliştirme süresinin PHP'de çok daha iyi olduğunu, ancak projenizin büyüklüğü arttıkça C # bu konuda daha iyi ölçeklendiğini düşünüyorum.

Maliyet
Yükseltilmesi gereken bazıları maliyettir. PHP bu cephede kazanıyor. Linux'ta Mono'da ASP.NET'i çalıştırabilirken, kendi sorunları ile birlikte gelir.

Küçük ve orta ölçekli bir proje yapıyorsanız ve / veya maliyet bir faktör ise, PHP kazanır. Büyük ölçekli bir proje yapıyorsanız, ASP.NET w / C # ve ASP.NET MVC'yi tercih ediyorum.


3
Web Formları olsa yararları var. Örneğin, hızla web uygulamaları oluşturmak için kontrolleri kullanıma hazır olan binlerce kullanıcı, müşterimi bir web sitesinde satmanın bir avantajı oldu.
Edward

1
@Ryanzec WebForms’ın aynı şey olmadığını ve farklı bakış açılarından ASP.NET MVC kadar iyi olduğunu kabul ediyorum. Ticari bir ortamda ilk sürümün 2. Önizlemesinden bu yana ASP.NET MVC çerçevesini kullandım. Ayrıca son 7+ yıldır WebForms kullandım. Üstelik artık ASP.NET'in maliyetini tartışamazsınız, Microsoft ücretsiz araçlar sunar, şimdi PHP'nin sunduğundan daha iyidir. Ayrıca Microsoft, ücretsiz bir SQL Compact sürümü ve SQL Server sağlamaktadır. .NET için barındıran üçüncü taraf bugünlerde Linux ile karşılaştırılabilir.
Nickz,

ASP.NET'in barındırma maliyetinin daha iyi olduğunu kabul edersek de hala ucuz VPS LAMP Hosting'i bulabilirim.
ryanzec

Ayrıca WebForm hakkındaki noktaya göre, bunun saçma olduğunu söylemek zor olabilir, bu benim çayım değil. İşleri daha hızlı halledebileceğiniz doğrudur ancak bir kez bileşenlerden size sağlananları dışında bir şey yapmaya çalıştığınızda veya mevcut bir bileşeni ağır bir şekilde değiştirdikten sonra, üstel olarak daha zordur. Ayrıca sistemin tüm geri bildirimlerle çalışması ve web geliştirme için benim için sıkıntılı görünüyor. Ne yarattığımı ve web geliştirmeye uygun olanı% 100 denetleyici sağladığım için ASP.NET MVC'yi tercih ediyorum.
ryanzec

8

PHP vs ASP.NET, elma ve portakalları karşılaştırmak gibidir, orada farklı çözümler hedeflenmiştir.

PHP küçük ölçekli, başlangıç ​​çözümleri için daha uygun bir çerçevedir. PHP veya Linux, çok fazla gereksinim duymadan pencereleri çalıştıracak. Microsoft ASP.NET, hayal edebileceğiniz her şeye ve daha fazlasına sahip olan endüstriyel bir güç çerçevesidir. ASP.NET çok zengin özelliklere sahip bir ortamdır. Pek çok kişi, ASP.NET'in pahalı olduğunu ve bunun birkaç yıl önce olduğu, ancak artık olmadığını iddia edecek. İlk olarak araçlar ücretsiz (hızlı sürümler), veritabanı seçenekleri ücretsizdir (SQL Compact veya SQL Server 2005 veya üzeri Express). Satın Alma Barındırma artık çok ucuz, bu yüzden soru hangisi daha iyi değil, çözümünüze uygun ne. Şahsen ASP.NET'i tercih ediyorum, çünkü esneklik ve ölçeklenebilirliğin çok önemli olduğu kurumsal bir ortamda çalışıyorum, bu yüzden çözümler çerçeveyi belirliyor.

Çok önemli bir şey, en iyi hangi dilde olduğunuzdur? Bu karardaki son faktör olmalı.

Amacınız bir müşteriyi ikna etmekse, asp.net daha iyi bir seçenektir. Büyük şirketin adı bir dili desteklemesi, müşterinin kendisini rahat hissetmesini sağlar. Bu durumda en iyi seçenekler (Microsoft) ASP.NET ve (Oracle) Java JSP'dir.

EDIT: Zengin özellik - ASP.NET, bir web sitesi WebForms ve MVC yaklaşımı oluşturmak için iki alternatif sunar. .NET çerçevesi dışında, WF (iş akışı), DLR (dinamik Dil Çalışma Zamanı), Paralel Linq, Linq, yönlendirme, çeşitli veri durum yönetimi biçimleri: HTTPContext öğeleri, ViewState, Runtime Cache, sayfa gibi çok güçlü özelliklere sahip olmanız gerekir. çıktı önbelleği, üç farklı türde oturum uygulaması InProc, State ve SQL Server. ASP.NET, çeşitli güvenlik biçimleri uygular, örneğin Üyelik Sağlayıcı ve Rol Sağlayıcı. PHP almak istemiyorum ama ASP.NET farklı bir ligde.


5
Her zaman bir bahane olarak, "Microsoft = Pahalı" olduğunu duydum, bu yüzden önce PHP'yi öğrendim. Ama artık bunun gerçekten böyle olmadığına katılıyorum.
Edward

Evet, oyun alanı şimdi oldukça eşit, bugünlerde hangi dili kullanacağınızı bilmek zor.
Nickz

"Endüstriyel güç çerçevesi" tam olarak ne anlama geliyor ? "Hayal edebileceğiniz her şey ve daha fazlası"? "Çok özellikli, zengin bir ortam" ASP.NET, PHP olmadığı şekilde nasıl işler? Bunu açıklayana kadar, bu sadece Microsoft reklam dilidir.
Nicole

tasarım hedefleri- php başlangıçta kişisel ana sayfalar için geçerliydi ve basit sunucularda komut dosyası yazmayı kolaylaştıracak şekilde tasarlandı. asp.net, kurumsal düzeyde bir çözüm olarak Java / Java ee rekabet etmek için kuruldu. php yıllar boyunca birçok özelliği özümsemiştir, ancak bu "özellik denetimi" dil tutarsızlıklarında ve platform tuhaflıklarında geçer. Sık sık php kullanıyorum, ancak genel amaçlı bir programlama platformu değil, bir web dili olacak şekilde tasarlandı
bunglestink

6

Her ikisiyle de yoğun olarak çalıştıktan sonra, cevapların soruna ve müşteriye bağlı olarak farklı olacağını zaten biliyorsunuz. Çok genel anlamda:

  • PHP, bütçeyle çalışması gereken projeler için mükemmeldir. Örneğin, büyük veritabanı lisans ücretleri ile karşılaşmazsınız.
  • ASP.NET, Microsoft'un sağladığı destek türüne ve geliştirici kültürüne ihtiyaç duyan projeler için mükemmeldir.

Müşterileriniz için gerçeklerin bir listesini derliyorsanız, bildiklerinize dayandırın. Araştırmanız, bulgularınızı ne kadar önyargılı tutarsanız yapın, kurşun puanlarınızı almak için iyi.


8
Net otomatik olarak "büyük veritabanı lisans ücretleri" ile ilişkilendirildiğinde, bu beni rahatsız ediyor. Elbette bilmelisiniz ki. Net oldukça çeşitli RDBMS'lerle etkileşime girebilir, özgür ve olmasın, tabii ki PHP de özgür ve olmayabilir (ve Microsoft’un büyük lisans ücretlerine sahip tek popüler RDBMS olduğu gibi değildir).
quentin-starin

3
SQL Server'ın Express ve Web sürümlerinin çok daha fazla kabul edilebilir lisans ücretine sahip olduğunu belirtmeyin (Express için ücretsiz).
quentin-starin

Üzgünüm, irk demek istemedim. MS tam bir yığın olarak daha iyi satıyor gibi görünüyor ve Express'ten daha büyük bir DB motoru olduğunu varsayıyordum.
Fred Wilson

1
Şahsen alınmadı, sadece derneği sık sık yaptığını görüyorum.
quentin-starin

1
@loyalpenguin: Tecrübelerime göre, bir depolama motoru bulmak nadirdir değildir .NET destekledi. Bunun PHP ile doğru olup olmadığı konusunda yorum yapamam.
quentin-starin

1

.net kontrolleri bir PhP platformu ile bulabildiğinizden daha hoş. Örneğin Infragistics'e bakın, bir LAMP'ın karşılığı nedir?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.