Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Webservice mit eigenem Interface

Empfohlene Antworten

Veröffentlicht

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 von stonezz

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.

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.