stonezz Geschrieben 26. Januar 2009 Geschrieben 26. Januar 2009 (bearbeitet) Hallo Zusammen Ich möchte einen Webservice erstellen, welcher von einem eigenen Interface (BusinessLogic Interface ableitet). Also bspw: public class MyService: System.Web.Services.WebService, IManageMyService Die Idee ist, dass der Webservice an ein BL Modul die Calls nur delegiert, wobei das BL Modul dann die eigentliche Methoden implementiert; dabei sollten beide das gleiche Interface implementieren. Die BusinessLogik greift dann über einen AccessLayer auf die DB zu und bereitet die Daten auf. Für das OR Mapping wollte ich NHibernate einsetzen. Der Webservice sollte dann die POJO's zurückliefern. Der Client ist eine Windows-Form Anwendung, welcher dann die Webservices aufruft. Ist dies architektonisch ein guter Ansatz? Danke und Grüsse Pascal Bearbeitet 26. Januar 2009 von stonezz Zitieren
Argbeil Geschrieben 27. Januar 2009 Geschrieben 27. Januar 2009 Klingt gut. Es ist immer besser nach dem "Contract" First Design die Schnittstelle in ein Interface zu verlagern. Dann sollte dein Client aber auch eine eigene Schicht haben in der die Webservice-Calls ausgeführt werden um das wirklich austauschbar zu machen. Zitieren
stonezz Geschrieben 27. Januar 2009 Autor Geschrieben 27. Januar 2009 Hallo Argbeil Danke für die Antwort. Ja, dies ist eine gute Idee - ich werde eine eigene Schicht (Proxy) haben, welche die Webservice Calls ausführt. Ich habe nun einen ersten Wurf der Architektur gemacht, dabei ist mir folgendes aufgefallen. Der Proxy (die Klasse, welche den Webservice aufruft) liefert mir nicht die gleichen Typen (Objekte) zurück, sondern generiert eigene mit den gleichen Attributen. Ich möchte aber meine eigenen Objekte auf der Clientseite weiterverwenden und nicht die generierten. Also bspw. Service mit return value: ch.hbs.kmu.architecture.vo.impl.DefaultKontaktVo liefert mir: ch.hbs.kmu.client.ServiceKontakt.DefaultKontaktVo Gibt es da eine Möglichkeit, das Generat so einzustellen, dass meine definierten Objekte genommen werden? Dachte zuerst, es wäre die Option "Reuse types in all referenced assenblies" bei der Konfiguration des Webservices. Bringt aber auch nichts, wenn ich dies markiere. Danke & Gruss Pascal Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.