Hallo,
einen großen Vorteil für C#/ASP.Net sehe ich im Bereich von Enterprise-Anwendungen. Ich mein damit Anwendungen, die primär von Unternehmen (und deren Angestellten) genutzt werden und nicht von Frau Müller von zu hause per Browser aufgerufen werden kann.
Unternehmensanwendungen (z.B. CRM tools) müssen häufig mit diversen anderen System zusammenarbeiten, andere Schnittstellen abfragen und selber entsprechende Schnittstellen anbieten.
Dieses per PHP zu erledigen ist lästig, da man dort oft nicht richtig unterstützt wird.
Da ist dieses per C#/ASP.Net zu erledigen deutlich angenehmer.
PHP hat eher so die 'Script'-Eigenschaften, d.h. man steuert ganz präzise wie die Seite aufgebaut wird usw. Zwar ist dies gut geeignet um schnell Ergebnisse zu bekommen, bei komplexen Business-Anwendungen wird es aber schwierig bis unmöglich mit PHP. Für eine normale Web 2.0 Anwendung kann man aber PHP weiterhin problemlos verwenden.
C#/ASP.Net ist dort ganz ganz anders. Ich find es schwierig zu beschreiben. Dort werden die Prinzipien der OOP stärker umgesetzt und man hat nicht so den Spagetti Code wie bei PHP. Es ist vom Gefühl eben sehr anders eine ASP.Net statt eine PHP Anwendung zu schreiben.
Bei PHP kenn ich den Kontrollfluss, dass Formular wird beim drücken des Submit Button an 'script.php' gesendet, dann frage ich dort die Daten ab, speichere diese Daten in der DB ab und gebe den HTML Code der Ergebnisseite zurück.
Bei ASP.Net ist dies eher verworrener und, in meinen Augen, stärker OOP basiert.
Dort programmiere ich nicht wie script.php aussieht, also nicht wie die $_POST/$_GET Daten abgefragt werden usw., sondern im C# Code reagiere ich auf ein onClick-Event eines Buttons, ähnlich wie bei JS, lassen dann meinen Code zum Speichern ablaufen und manipuliere evt. noch die Ausgabe.
Ist eben vom Konzept her sehr verschieden und auch erst einmal Gewöhnungsbedürftig, da man dort anfanglich scheinbar nicht so die totale Kontrolle über den Ablauf und den Aufbau einer Seite hat.
Für komplexe Business-Anwendungen, die mit vielen Subsystemen zusammenarbeiten, evt. SOAP Schnittstellen o.ä. anbieten müssen ist ASP.Net in meinen Augen deutlich zu befehlen. Insbesondere auch, weil man dort bereits recht leicht auf bestehende Bibliotheken oder Systemen zurückgreifen kann.
Hat man beispielsweise im Unternehmen bereits einen Dienst/Service/Schnittstelle, der automatisch die Bonität eines potenziellen Kunden überprüft, dann kann man i.d.R. per C# diesen Dienst sehr einfach abgreifen. Ebenso wenn man bereits irgendwo eine Buchungs-Funktion für das Unternehmen realisiert hat o.ä. Per PHP wird dies oft ne unangenehme Arbeit.
Was die Performance angeht, kann ich leider nicht so viel sagen. Aber die Performance hängt auch immer von der zugrunde liegenden Architektur ab. Facebook und Wikipedia setzen beispielsweise auch auf PHP, also kann man auch sehr große und stark besuchte Seiten per PHP realisieren.
Ob dies per ASP.Net mit weniger Performance geht, kann ich nicht sagen. Aber man sollte es sich schon mal angucken, ist schon spannend die Unterschiede zu erkennen. Und wenn man dann später webbasierte Unternehmensanwendungen erstellen möchte/muss, ähnliche wie die von SAP, dann kommt mit PHP oft nicht weit (bzw. nur schwierig).
Evt. mit dem ganz normalen C# und normalen Windows-Apps anfangen und dann erst zu ASP.Net wechseln.
Grüße
Klaus