Ja, ViewState ist ein Fluch und Segen zugleich. Wenn man es nicht braucht, schaltet man es ab. Fertig.
Wenn man es braucht, etwas wenn Seiten Daten an sich selbst zurücksenden (Postback an sich selbst), dann ist ViewState eine enorme Vereinfachung. Das ist bei allen Technologien so, dass man sie einzusetzen vermögen muss.
- IMO ist ASP.NET ist wesentlich leichter zu erlernen als etwa php
- Es ist wesentlich leichter eine ASP.NET-Anwendung sicher zu machen, als etwa eine PHP-Anwendung.
Es gibt kaum eine größere PHP-Anwendung, die nicht öfter gepatch werden muss. Es gibt aber kaum Anwendungen basierend auf ASP.NET die man öfter mal patchen muss. Das liegt sicher an der noch immer geringeren Verbreitung, aber eben auch an der höheren integrierten Sicherheit. Es gibt sehr wohl etwa leistungsfähige Forensoftware(s), auf Basis von ASP.NET - aber kaum Sicherheitslücken für diese. Auch Cross-Site-Scripting kommt kaum vor - dies wird einerseits durch Techniken im Framework verhindert und andererseits kann der Entwickler dies durch simple Massnahmen verhindern
- ASP.NET ist eine objektorientierte Technologiebasis. Die Wiederverwendbarkeit von Code ist dabei das Zauberwort. Ich schreibe eine Funktion, etwa zum zerlegen einer Zeichenkette, genau einmal und binde diese an jeder erdenklichen Stelle problemlos ein. Ich definiere eigene Datentypen, etwa eine Klasse mit Vorname + Nachname, die mir aus einer Textbox meinen Datentyp zurückliefert, etc - die Möglichkeiten sind unüberschaubar.
- ASP.NET befindet sich in einem Container, dem Framework. Das Framework läuft mit eingeschränkten Rechten auf dem Server, so ist eine etwaige Sicherheitslücke bei weitem nicht so "gefährlich" wie etwa eine Sicherheitslücke in php
- ASP.NET (dafür bekomm ich bestimmt Haue) ist performanter als PHP. Für die genau gleiche Aufgabe, bei hinreichender Komplexität, benötige ich weniger Ressourcen. Ursächlich dafür sind Objektorientierung (und zwar echte, keine nachträglich reingebastelte), Typsicherheit, Vorkompilierung, das mächtige Framework mit hochoptimiertem Code, etc
- ASP.NET kennt mächtige Schnittstellen für Datenoperationen, erleichtert den Umgang mit XML und ist durch diverse Erweiterungen (AJAX, DLinq, XLinq, etc) erheblich zu erweitern
- Die Entwicklungszeit ist erheblich kürzer als bei den meisten anderen technologien, insbesondere bei Webservices, APIs, etc. Bei Standard-Aufgaben liefert das Framework Lösungen aus einer Art Best Practice - so sind etwa Vorgänge wie eine Benutzerverwaltung so gut, sicher und umfassend gelöst (Rollenverwaltung, Authentifizierung über verschlüsselte Cookies, etc), dass man selbst nur wenig entwickeln muss
.....
.....
Vorteile gibts genug, und ja: es gibt wesentlich weniger Hoster als für LAMP - aber mittlerweile ist der Markt für ASP.NET so gut gesättigt, dass es wirklich reichlich Auswahl gibt. Selbst bei Keyweb, 1und1, Strato und wie sie alle heißen bekommt man geeignetes Hosting.