Unser Team versucht, einige Richtlinien für die Verwendung von Seitenmethoden im Vergleich zu einem tatsächlichen asmx-Webdienst zu finden. Scheint mir, dass pagemethods in erster Linie für one-off-Typ-Aufrufe sind, die spezifisch für die Seite sind, wo asmx beabsichtigt sind, sollen eher eine wiederverwendbare Gruppe von Operationen und Diensten darstellen. Klingt das richtig?Wann sollte eine Seitenmethode im Gegensatz zu einem Webdienst verwendet werden?
Antwort
Ja. Wenn Sie beabsichtigen, etwas zu haben, das von mehreren Anwendungen verwendet wird, ist es ratsam, es als separaten Dienst zu erstellen, so dass Sie Code zwischen Anwendungen nicht wiederholen und auch wenn Sie Änderungen an einem einzigen Ort ändern müssen.
Einfaches Beispiel, Wenn Sie haben sagen, eine Authentifizierung benötigen, und Sie haben 2 App, ein Web und ein Windows. Wenn die Benutzerbasis die gleiche sein wird, macht es keinen Sinn, in der Web App einen Authentifizierungscode/eine Seite zu erstellen, die Windows-App zu gehen und das Gleiche noch einmal zu tun. Der Grund ist, was ist, wenn Sie den Hash-Code zum Beispiel ändern müssen, müssten Sie ins Web gehen, ihn ändern, dann zu Windows wechseln und das Fenster erneut bereitstellen, jetzt Wenn Sie einen Dienst haben, gehen Sie zum Service ändern Sie es, und alles funktioniert jetzt mit dem neuen Modell, und ein großes Plus, müssen Sie die Windows-App nicht erneut bereitstellen.
Das ist alle Völker ...
Selbst wenn Sie nur auf einer Seite arbeiten und die Funktionalität in Frage nur auf, dass eine Seite verwendet wird, manchmal ist es besser, um die Funktionalität zu einem separaten Web-Service zu bewegen, um Performance. Ich habe vor kurzem auf einer Seite gearbeitet, die Hunderte von Aufrufen zu einer einzelnen Seite Methode machen würde. Ich bemerkte eine enorme Leistungssteigerung, als ich sie zu einem Web-Service verlagerte, einfach weil Sie nicht den gesamten Lebenszyklus der Seite betrafen. Wenn Sie etwas Kleines machen, verwenden Sie Seitenmethoden, um alles einfach zu halten.
Update: ArmedMonkey ist korrekt und Seitenmethoden gehen nicht durch den Seitenlebenszyklus.
Nun, was Sie in diesem Fall tun können, ist eine Klassenbibliothek erstellen. – Oakcool
Ich weiß, das ist alt, aber Ihr Kommentar ist absolut falsch und leicht widerlegt. PageMethods * NICHT * durchlaufen den Seitenlebenszyklus. Es ist einfach zu testen. – Kir
@ArmedMonkey Sie sind richtig, Sir, und ich habe die Antwort aktualisiert. In dem speziellen Fall, den ich erwähnte, muss es einen anderen Grund für die Änderung der Leistung gegeben haben. – gehsekky