Ex Microsoft Developer's Opinion
Ich habe in einem Kernteam für die MSDN-Website gearbeitet. Jetzt verwende ich c # razor für E-Commerce-Sites mit meinem Programmierteam und wir konzentrieren uns stark auf das jQuery-Front-End mit Back-End-c # -Razor-Seiten und die LINQ-Entity-Speicherdatenbank, sodass die Seiten selbst bei verschachtelten Schleifen mit Abfragen eine Antwortzeit von 1-2 Millisekunden haben und kein Seiten-Caching. Wir verwenden keine MVC, sondern nur ASP.NET mit Rasiermesserseiten, die mit dem URL Rewrite-Modul für IIS 7 zugeordnet sind, keine ASPX-Seiten oder ViewState oder serverseitige Ereignisprogrammierung. Es verfügt nicht über die zusätzlichen (unnötigen) Ebenen, die MVC in Codekonstrukte für den herausgeforderten regulären Ausdruck einfügt. Weniger ist mehr für uns. Es ist alles schlank und gemein, aber ich gebe MVC Requisiten für seine Testbarkeit, aber das ist alles.
Rasiermesserseiten haben keinen Ereignislebenszyklus wie ASPX-Seiten. Es wird nur als eine angeforderte Seite gerendert. C # ist eine großartige Sprache und Razor tut alles, um es seinen Job machen zu lassen. Das anonyme Tippen mit Generika und Linq macht das Leben mit C # - und Rasiermesserseiten so einfach. Die Verwendung von Razor-Seiten hilft Ihnen dabei, leichter zu denken und zu codieren.
Einer der Nachteile von Razor und MVC ist, dass es keine ViewState-ähnliche Persistenz gibt. Ich musste eine Lösung dafür implementieren, also schrieb ich hier ein jQuery-Plugin dafür -> http://www.jasonsebring.com/dumbFormState , ein von HTML 5 Offline-Speicher unterstütztes Plugin für den Formularstatus, das in allen wichtigen Funktionen funktioniert Browser jetzt. Es ist derzeit nur für den Formularstatus vorgesehen, aber Sie können window.sessionStorage oder window.localStorage ganz einfach verwenden, um jede Art von Status über Postbacks oder sogar Seitenanforderungen hinweg zu speichern. Ich habe mich nur darum gekümmert, ihn automatisch zu speichern und anhand der URL und des Formularindex zu benennen du musst nicht darüber nachdenken.