Wann benutzt man PHP oder ASP.NET? [geschlossen]

46

Ich habe intensiv an der Entwicklung von Webanwendungen mit PHP und ASP.NET gearbeitet, aber eine der Fragen, die mir Kunden ständig stellen, ist, ob ich mit einer PHP-Website oder einer Asp.net-Website weitermachen soll.

Das erste, was mir in den Sinn kommt, ist natürlich die Beantwortung der Frage wie folgt:

PHP ist Open Source und ASP.NET ist von Microsoft.

Normalerweise hat der Kunde, nachdem so etwas gesagt wurde, einen leeren Gesichtsausdruck. Offensichtlich ist die Tatsache, dass einer Open Source ist und der andere nicht, nicht wirklich beunruhigend für sie. Und das aus gutem Grund, denn als ich es zum ersten Mal hörte, sagt es mir wirklich nicht viel.

Ich weiß aus der Zusammenarbeit mit beiden, dass jeder seine Unterschiede bei der Entwicklung von Websites hat.

Meine Frage ist, was sind die Unterschiede zwischen ASP.NET und PHP so weit

  1. Eigenschaften
  2. Sicherheit
  3. Erweiterbarkeit
  4. Frameworks
  5. Durchschnittliche Entwicklungszeit

Ich versuche, eine Liste mit Fakten zusammenzustellen, um mit dem Kunden vergleichen zu können, damit eine fundierte Auswahl auf der entsprechenden Entwicklungsplattform getroffen werden kann.

Edward
quelle
7
Ich habe beide verwendet, ich denke, Visual Studio und ASP.NET sind viel robuster. Die IDE allein überzeugt mich.
The Muffin Man
7
PHP wird immer eine Schwäche für mich haben, weil es meine erste Web-Programmiersprache war ... aber nach 2 Jahren von ASP.NET C # gibt es einfach keine Möglichkeit, zurück zu gehen ... Visual Studio IDE ist wunderbar!
Dal
Ja, ich wünschte, PHP hätte eine Art Haupt-IDE, aber ich denke, das würde den Geist von PHP, Open Source zu sein, zerstören. Auf jeden Fall ein zu berücksichtigender Faktor.
Edward
2
6. Kosten über die Laufzeit des Projekts?
VirtuosiMedia
@VirtuosiMedia ein weiterer wichtiger Faktor, den ich nicht erwähnt habe.
Edward

Antworten:

39

Funktionen , Sicherheit und Erweiterbarkeit werden mehr oder weniger gleich sein. Was mit PHP gemacht werden kann, kann mit ASP.NET gemacht werden.

Frameworks - Auch in Bezug auf Features von Frameworks wird es mehr oder weniger dasselbe sein. Da Sie jedoch spezifischer sind als die Sprache selbst, sollten Sie Folgendes berücksichtigen:

  • Womit sich Ihre Entwickler am wohlsten fühlen. Wissen = Effizienz .
  • Projektweise kann ein Framework in einer Sprache besser zu einem Framework in einer anderen Sprache passen. Spezifischer als die Sprache selbst zu sein, bedeutet, dass ein Rahmen nicht anders kann, als für einige Aufgaben gut und für andere weniger gut geeignet zu sein.

Durchschnittliche Entwicklungszeit - Ihre durchschnittliche Entwicklungszeit für ein sehr kleines Projekt ist mit PHP möglicherweise besser, da Webhosts so einfach zu finden und Entwicklungsmaschinen so einfach einzurichten sind. Wenn Sie jedoch etwas Größeres haben, solange Sie gute Entwickler haben oder für beides bereits eingerichtet sind, wird es wahrscheinlich eine Wäsche sein.


Die wichtigste Überlegung, die Sie anstellen sollten, ist, an welchen Technologie-Stack Ihr Kunde zukünftig gebunden sein möchte. Keiner mischt sich gut (leicht) mit dem anderen. Sie können Entwickler haben, die mit dem einen oder anderen vertraut sind.

  • Wenn Ihr Client die Idee mag, mit Microsoft verbunden zu sein, entscheiden Sie sich für ASP.NET. Einige Kunden werden mehr Komfort bezüglich zukünftiger Unterstützung, Upgrades usw. mit MS haben.

  • Wenn sie die Idee von Open Source- und Linux-Servern mögen, entscheiden Sie sich für PHP . Dies kann einige Kunden aufgrund der Übertragbarkeit von Webhosts, freier Software usw. interessieren.

Und wenn es ihnen egal ist, dann entscheiden Sie sich für das, womit Sie sich am wohlsten fühlen . Darüber hinaus steckt nicht viel dahinter.

Nicole
quelle
8
+1 für "Die wichtigste Überlegung, die Sie anstellen sollten, ist, mit welchem ​​Technologie-Stack Ihr Kunde künftig verbunden sein möchte."
System Down
Verzweigung der Sicherheit Gibt es keine Ressource, um zu sehen, wie sich die einzelnen Plattformen verhalten haben?
Edward
3
@loyalpenguin - das ist eine Frage an sich. Ich bin mir nicht sicher, was Sie unter "Leistung jeder Plattform" verstehen, aber wenn Sie von Sicherheitslücken der Plattform sprechen (die fast immer schnell behoben werden), ist das die geringste Sorge für Sie. Zum größten Teil ist jede Sprache so "sicher" wie der Entwickler, der den Code schreibt.
Nicole
guter Punkt. Nur eine letzte Frage Wie komme ich aus der Frage heraus, die dann sicherer ist?
Edward
@loyalpenguin Wenn ich sage, dass es sich um eine andere Frage handelt, meine ich, dass die Frage lautet: "Sind Plattformsicherheitsprobleme ein wichtiger Grund zur Besorgnis in Web-Apps? Wenn ja, wie analysiere ich, welche Plattformen eine bessere Historie aufweisen, z PHP, ASP.NET, Java, Ruby on Rails usw.? " Für mich, sie ist nicht so sicher , dass es tatsächlich ist ein großer Anlass zur Sorge.
Nicole
29

Um einen Hintergrund zu geben, worauf ich meine Antworten stütze, habe ich über 6 Jahre lang professionell PHP entwickelt. Ich habe in den letzten 3 bis 4 Monaten mit ASP.NET MVC herumgespielt und C # gemacht. Programmierung ungefähr so ​​lange wie PHP-Programmierung.

Für mich ist dies eher ein PHP-gegen-C # -Argument als ein PHP-gegen-ASP.NET-Argument.

Feature / Erweiterbarkeit
Ich denke, das ASP.NET gewinnt hier und das liegt eher an der Fähigkeit, eine Sprache wie C # zu verwenden. C # ist eine weitaus bessere Sprache als PHP, da es OO-Unterstützung bietet. Ich bin auch eine Person, die eine statisch typisierte Sprache bevorzugt (obwohl ich mit C # 4.0 glaube, dass Sie dynamisch typisierte Variablen erstellen können). Das einzige, was PHP als Sprachfeature über C # hatte, waren optionale Parameter, aber das ist eine weitere Sache, die in C # 4.0 hinzugefügt wurde (nicht sicher, wie gut es funktioniert, da ich es noch nicht ausprobiert habe).

Sicherheit
Ich würde wahrscheinlich sagen, dass es eine Wäsche zwischen den beiden ist. Ich denke, dass beide Funktionen vorhanden sind, um die Sicherheit zu verbessern, aber es ist letztendlich Aufgabe des Programmierers, sicherzustellen, dass ihre Anwendung sicher ist.

Frameworks
Nun, PHP scheint viel mehr Mainstream-Frameworks (CakePHP, Codeigniter, Symfony, Zend Framework) und viele andere kleinere Frameworks als ASP.NET zu haben. ASP.NET hat 2 Haupt-Frameworks von Microsoft, WebForms (ein absoluter Mist) und ASP.NET MVC (der Grund, warum ich mich mit der ASP.NET-Entwicklung befasst habe). Während PHP mehr Frameworks hat, finde ich, dass ASP.NET MVC 3-Framework besser ist als jedes der PHP-Frameworks.

Durchschnittliche Entwicklungszeit
Ich denke, dass für kleinere Projekte die Entwicklungszeit in PHP viel besser ist, aber wenn Ihr Projekt größer wird, skaliert C # diesbezüglich besser.

Kosten
Einige, die erzogen werden sollten, sind Kosten. PHP gewinnt zweifellos an dieser Front. Sie können ASP.NET unter Linux unter Mono ausführen, es gibt jedoch auch eigene Probleme.

Wenn Sie ein kleines bis mittelgroßes Projekt durchführen und / oder die Kosten eine Rolle spielen, gewinnt PHP. Wenn Sie ein umfangreiches Projekt durchführen, würde ich ASP.NET mit C # und ASP.NET MVC auswählen.

Ryanzec
quelle
3
Web Forms bietet jedoch Vorteile. Zum Beispiel waren die Tausenden von gebrauchsfertigen Steuerelementen zum schnellen Erstellen von Web-Apps ein Plus für den Verkauf meiner Kunden auf einer Website.
Edward
1
Ich bin damit einverstanden, dass @ryanzec WebForms kein Mist ist und aus einer anderen Perspektive so gut wie ASP.NET MVC ist. Ich habe ASP.NET MVC Framework seit Vorschau 2 der ersten Version in einer kommerziellen Umgebung verwendet. Außerdem habe ich in den letzten 7 Jahren WebForms verwendet. Darüber hinaus können Sie sich nicht mehr über die Kosten für ASP.NET streiten. Microsoft bietet kostenlose Tools an. Das ist jetzt besser als das, was PHP anbietet. Microsoft bietet auch eine kostenlose Version von SQL Compact und SQL Server an. Drittanbieter-Hosting für .NET ist heutzutage mit Linux vergleichbar.
Nickz
Obwohl ich zustimme, dass die Kosten für das Hosten von ASP.NET gestiegen sind, kann ich immer noch billigeres VPS LAMP Hosting finden, das viel einfacher ist als das Hosten von VPS Windows.
Ryanzec
Auch zu dem Punkt über WebForm, zu sagen, dass es Mist ist, kann hart gewesen sein, es ist einfach nicht meine Tasse Tee. Es ist wahr, dass Sie die Dinge schneller erledigen können, wenn Sie jedoch versuchen, etwas zu tun, das außerhalb der von den Komponenten bereitgestellten Möglichkeiten liegt, oder wenn Sie eine vorhandene Komponente stark modifizieren, ist dies exponentiell schwieriger. Auch die ganze Art und Weise, wie das System mit den Postbacks und Sachen arbeitet, scheint mir für die Webentwicklung zu klobig. Ich bevorzuge ASP.NET MVC, da es mir 100% Kontrolle darüber gibt, was erstellt wurde und meiner Meinung nach viel besser für die Webentwicklung geeignet ist.
Ryanzec
8

PHP vs ASP.NET ist wie der Vergleich von Äpfeln und Apfelsinen, da gezielt nach unterschiedlichen Lösungen gesucht wird.

PHP ist ein besser geeignetes Framework für kleine Startup-Lösungen. PHP läuft oder Linux, Windows ohne zu viele Anforderungen. Microsoft ASP.NET ist ein leistungsfähiges Framework, das alles bietet, was Sie sich vorstellen können. ASP.NET ist eine funktionsreiche, sofort einsatzbereite Umgebung. Viele werden argumentieren, dass ASP.NET teuer ist, was vor ein paar Jahren der Fall war, aber nicht mehr. Zunächst sind die Tools kostenlos (Express-Editionen), die Datenbankoptionen sind kostenlos (SQL Compact oder SQL Server 2005 oder höher Express). Der Kauf von Hosting ist jetzt sehr günstig. Die Frage ist also nicht, welches besser ist, sondern welches für Ihre Lösung geeignet ist. Persönlich bevorzuge ich ASP.NET, aber das liegt daran, dass ich in einer Unternehmensumgebung arbeite, in der Flexibilität und Skalierbarkeit sehr wichtig sind. Daher bestimmen die Lösungen das Framework.

Eine sehr wichtige Sache ist, in welcher Sprache bist du am besten? Dies sollte der letzte Faktor bei der Entscheidung sein.

Wenn Sie einen Kunden überzeugen möchten, ist asp.net die bessere Option. Wenn ein großer Firmenname eine Sprache unterstützt, fühlt sich ein Kunde wohl. In diesem Fall sind die besten Optionen (Microsoft) ASP.NET und (Oracle) Java JSP.

BEARBEITEN: Reich an Funktionen - ASP.NET bietet zwei Alternativen zum Erstellen einer Website mit WebForms und dem MVC-Ansatz. Neben dem .NET-Framework stehen sehr leistungsfähige Funktionen zur Verfügung, z. B. WF (Workflow), DLR (Dynamic Language Runtime), paralleles Linq, Linq, Routing und verschiedene Formen der Verwaltung des Datenzustands: HTTPContext-Elemente, ViewState, Runtime-Cache, Seite Ausgabecache, drei verschiedene Arten der Sitzungsimplementierung InProc, State und SQL Server. ASP.NET implementiert verschiedene Formen der Sicherheit, z. B. Mitgliedschaftsanbieter und Rollenanbieter. Ich möchte PHP nicht verkaufen, aber ASP.NET spielt in einer anderen Liga.

Nickz
quelle
5
Ich habe das immer als Ausrede gehört, dass "Microsoft = Expensive", weshalb ich zuerst PHP gelernt habe. Aber ich muss zustimmen, dass das wirklich nicht mehr der Fall ist.
Edward
Ja, das Spielfeld ist noch ziemlich gut, es ist heutzutage schwer zu sagen, welche Sprache man verwenden soll.
Nickz
Was genau bedeutet „industrielle Stärke Rahmen“ Mittelwert ? "Alles was du dir jemals vorstellen kannst und noch mehr"? "Sehr funktionsreiche Umgebung"? Wie ist ASP.NET mit diesen Dingen umzugehen, anders als mit PHP? Bis Sie das erklärt haben, ist dies nur die Microsoft-Werbesprache.
Nicole
design goals- php stand ursprünglich für persönliche Homepages und wurde entwickelt, um einfaches serverseitiges Scripting zu vereinfachen. asp.net wurde entwickelt, um mit Java als Unternehmenslösung mithalten zu können. PHP hat im Laufe der Jahre viele Features übernommen, aber dieses "Feature Tacking" schlägt sich in Sprachinkonsistenzen und Plattform-Macken nieder. Ich benutze PHP oft, aber es ist und wurde entwickelt, um eine Web-Sprache zu sein, keine Allzweck-Programmierplattform
bunglestink
6

Nachdem Sie ausgiebig mit beiden gearbeitet haben, wissen Sie bereits, dass die Antworten je nach Problem und Kunde unterschiedlich ausfallen werden. In einem sehr allgemeinen Sinne:

  • PHP eignet sich hervorragend für Projekte, die ein begrenztes Budget benötigen. Zum Beispiel werden Sie nicht mit hohen Lizenzgebühren für Datenbanken belastet.
  • ASP.NET eignet sich hervorragend für Projekte, die die Unterstützung und Entwicklerkultur von Microsoft benötigen.

Wenn Sie eine Liste mit Fakten für Ihre Kunden erstellen, stützen Sie sich auf das, was Sie wissen. Ihre Nachforschungen, egal wie voreingenommen Ihre Ergebnisse sind, sind in Ordnung, um Ihre Stichpunkte zu erhalten.

Fred Wilson
quelle
8
Es ärgert mich irgendwie, wenn .Net automatisch mit "großen Lizenzgebühren für Datenbanken" in Verbindung gebracht wird. Sie müssen natürlich wissen, dass .Net mit einer Vielzahl von RDBMSs kompatibel ist, kostenlos und nicht, und natürlich auch mit PHP, kostenlos und nicht (und es ist nicht so, dass Microsoft das einzige beliebte RDBMS mit hohen Lizenzgebühren ist).
Quentin-Starin
3
Ganz zu schweigen davon, dass für die Express- und Web-Versionen von SQL Server deutlich höhere Lizenzgebühren anfallen (kostenlos im Falle von Express).
Quentin-Starin
Sorry, soll nicht ärgern. MS scheint sich als Full Stack einfach besser zu verkaufen, und ich ging von einer größeren DB-Engine als Express aus.
Fred Wilson
1
Nicht persönlich genommen, ich scheine nur zu sehen, dass die Assoziation ziemlich oft gemacht wurde.
Quentin-Starin
1
@loyalpenguin: Nach meiner Erfahrung ist es selten, eine Speicher-Engine zu finden, die in .Net nicht unterstützt wird. Ich kann nicht beurteilen, ob dies bei PHP der Fall ist oder nicht.
Quentin-Starin
1

.net-Steuerelemente sind viel besser als das, was Sie mit einer PhP-Plattform finden können. Schauen Sie sich zum Beispiel Infragistics an, was ist das Äquivalent für eine LAMPE?

Totor
quelle