2010-06-01 5 views
5

Ich werde einen neuen asp.net Web Service (.NET Framework 2.0) erstellen, die Funktionalität des Web Service ist es XML Eingang zu erhalten, die entsprechende Operation durchzuführen (hinzufügen/ändern/löschen) basierend auf den Eingabe- und Rückgabecodes, die den Status der Operation angeben. Ich plane, eine Zweischichtarchitektur (Geschäftsschicht und Datenbankschicht) für diesen Webservice zu implementieren, könnte jemand beraten, ob dies die richtige Struktur ist oder irgendeine andere Struktur eine gute Leistung bringt. Grundsätzlich brauche ich einige Inputs zur Gestaltung des Webservice.ASP.NET Web Service Architektur/Struktur

Vielen Dank im Voraus.

Danke, Muru

Antwort

3

Das Domain Model sollte die Business-Logik in einer Weise auszudrücken, die unabhängig von Randtechnologien wie WCF oder ASP.NET Web-Services ist.

Dadurch wird die Anforderung einer dritten Schicht:

  • Dienst
  • Domain Model
  • Datenzugriff

Wenn Sie für die technologiespezifische Schnittstellen keine separate Schicht machen (Service), Sie könnten auch nur eine einzige, monolithische Anwendung erstellen, da Sie die Geschäftslogik sowieso nicht wiederverwenden könnten.

Während wir dabei sind: Verwenden Sie WCF, nicht ASMX, für Web-Services.

0

Ich würde einen Web-Service mit ASMX schreiben, weil es einfacher ist, mit dem Kopf herumzukommen.

Implementieren Sie DAL mit ADO oder LINQ (möglicherweise einfacher Option, da es alle Mapping für Sie macht und es ist gut, etwas Neues zu lernen).

Wie werden Sie einen Webservice anrufen? Haben Sie überlegt, wie Sie den Statuscode zurückgeben werden? Sie können in JavaScript und Ajax suchen, so dass Sie benutzerdefinierte Objekte an den Client zurückgeben können, oder Sie können in SOAP suchen, das XML basiert.

Kann auch eine gute lesen empfehlen - ASP.Net und Ajax: Architektur Web-Anwendungen. Könnte Ihnen eine bessere Vorstellung davon geben, welche Möglichkeiten Sie haben.

0

Ich benutze immer das gleiche Modell: Service/Business-Schicht und eine Datenbank-Schicht. Wenn es um Visual Studio geht, habe ich 4 oder 5 Projekte:

1 mit dem Webservice namens project.webservice (die Aufgabe ist es, Eingang zu erhalten und geben Sie diese Eingabe auf der Ebene, die das Denken (Business-Schicht), so Test easyly auf die Business-Schicht

1 mit der Dienstschicht namens project.service, die die eigentliche Arbeit sollte (entscheiden, was die Operation tut getan wird, rufen die richtigen db Methoden usw.)

1 mit die Datenbanklogik namens project.datalayer, die ADO.Net-Code oder das Entity-Framework sein könnte

1 mit den Datenklassen namens project.model. Diese Klassen werden vom ADO.Net-Code zurückgegeben und vom Dienst und vom Webservice-Projekt verwendet. Wenn ich ein Entity-Framework verwende, überspringe ich normalerweise dieses Projekt, weil die EF selbst mir Datenklassen gibt, die die EF generiert.Manchmal Kunden wollen nicht die EF dataclasses verwenden, erstellen Sie dann ich das project.model Projekt und lassen Sie den Datalayer die EF dataclasses übersetzen dataclasses project.model

1 mit dem Namen Testproject project.test

hop dies hilft,

Michel