Laden...

Programm als Desktop- *und* Web-Client schreiben

Erstellt von ingemar vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.067 Views
I
ingemar Themenstarter:in
194 Beiträge seit 2005
vor 15 Jahren
Programm als Desktop- *und* Web-Client schreiben

Hallo Leute,

eine Frage: ich soll eine Applikation schreiben welche als Desktop- und Web-Client anwendbar sein soll. Beide beinhalten die komplett gleiche Logik. Wie soll ich das am besten anstellen? Eine Geschäftslogik programmieren und dann das jeweilige Frontend ändern? Beide kommunizieren mit einer zentralen Datenbank und ich wollte fragen, ob ich hier WCF einsetzen soll? Bwz. wann ist es sinnvoll diese zu verwenden?

Danke für eure Hilfe!

LG Ingemar

Gelöschter Account
vor 15 Jahren

also wenn du wcf einsetzten willst, dann setze ich mal vorraus das du überall minimum .net 3.5 vorraussetzen möchtest.

in dem fall lohnt es sich mal silverlight (als webclient) und wpf (als desktop-client) für die gui anzusehen. die logik kannst du bei korrekter auftrennung in eine gemeinsam zu nutzende dll packen.

das einzige wo es evtl stress geben könnte, ist die etwas unterschiedliche server-client kommunikation von silverlight und desktop clients.

hier solltest du evtl erwägen nur einen thin-client zu entwickeln. in jedem fall musst du die kommunikation in eine separate dll packen um die unterschiede zwischen silverlight und desktopclients sauber behandeln zu können.

1.200 Beiträge seit 2007
vor 15 Jahren

WCF wäre durchaus eine Option. Hier könntest du die Geschäftslogik einheitlich für beide Frontends in einer Service Schicht realisieren.

Zudem würden dann Anpassungen an der Logik nicht zwangsweise ein neues Deployment des Desktop-Clients erfordern.

Ein weiterer Vorteil wäre auch, dass sich die Authentifizierung besser handhaben lässt.

Ein Nachteil ist allerdings, dass du dir unter Umständen ein Bottleneck schaffen kannst. Ob du das einsetzt, hängt also auch von der verfügbaren Infrastruktur ab.

Eine Geschäftslogik programmieren und dann das jeweilige Frontend ändern?

Grundsätzlich sollte die Geschäftslogik IMMER unabhängig vom UI sein. Wenn du einen Fat Client für den Desktop willst, wirst du aber wahrscheinlich stellenweise nicht drumrum kommen, auch einen Teil der Geschäftslogik dort abzulegen.

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

I
ingemar Themenstarter:in
194 Beiträge seit 2005
vor 15 Jahren

hmm, mit silverlight bzw. der wpf hab ich noch keine erfahrungen. interessieren würde es mich schon sehr, weiß aber nicht wieviel aufwand das einlesen bedeuten würde. mit normalen win forms und web forms kenne ich mich aber aus. ich dachte mir eigentlich, dass ich durch den einsatz von wcf das unterschiedliche verhalten der kommunikation abhandeln könnte... wann genau sollte man wcf einsetzen?

thanx

3.971 Beiträge seit 2006
vor 15 Jahren

WCF sehe ich genauso wie die beiden vorposter. Als alternative zu WCF könntest du auch noch Remoting verwenden, wenn sich die Kommunikation auf das vertrauenswürdige Intranet beschränkt. WCF funktioniert aber bereits schon mit .NET-Version 3.0.

Wenn deine Desktop-Applikation die selben Funktionen haben soll wie die Wep-App, dann wäre WPF und Silverlight eine entsprechende Option. Aupfassen musst du nur mit Silverlight, da es nur einen Teil von den WPF-Funktionen unterstützt.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

Gelöschter Account
vor 15 Jahren

es kommt immer auf die anforderung an, was du einsetzen solltest.

silverlight hat den vorteil das du geschäftslogik auf dem client ausführen lassen kannst, was den server entlastet. ist das aber keine anforderung und die geschäftslogik wird ohnehin auf dem server ausgeführt, so ist es auch nciht nötig diesen weg zu gehen. wenn du ohnehin nut einen thin-client machen möchtest (also eigendlich nur eine gui und einen dal am client) dann kannst du genausogut nur eine webapplikation entwickeln und der desktopclient ist dann nur ein webbrowsercontrol. wenn du aber die anforderung hast, das der desktopclient noch x features zusätzlich bieten muss und du um separate gui-designs nicht herum kommst, so musst du dann in der gui den doppelten aufwand treiben, web und desktop frontend zu pflegen.

wie genau sehen denn eigendlich deine anforderungen aus?

I
ingemar Themenstarter:in
194 Beiträge seit 2005
vor 15 Jahren

OK, es ist keine sehr komplexe anwendung. es geht um eine inventarverwaltung. anzeigen und bearbeiten von informationen. primär geht es um eine web-app. als alternative soll aber auch ein desktop-client zur verfügung gestellt werden. als datenbank wird sql sever 2005 verwendet. als controls werden wahrscheinlich grids von devexpress verwendet. das ermöglicht ein einfaches filtern und sortieren.

hättet ihr ein gutes tutorial oder eine buchempfehlung für silverlight und wpf ? und welchen o/r mapper würdet ihr mir empfehlen?

vielen dank für eure hilfe!

Gelöschter Account
vor 15 Jahren

hättet ihr ein gutes tutorial oder eine buchempfehlung für silverlight und wpf ?

	[[Artikel] Einführung in die WPF(Windows Presentation Foundation) - aktuell Teil 3: Beispielanwendung ](http://www.mycsharp.de/wbb2/thread.php?threadid=27971)  

bücher findest du im bücherforum hier auf mycsharp

und welchen o/r mapper würdet ihr mir empfehlen?

wenn niemals offline-bearbeitung erforderlich sein soll bietet sich nhibernate an. um maximal flexibel zu bleiben bietet sich
|Aisys| O/R Mapper
an.

I
ingemar Themenstarter:in
194 Beiträge seit 2005
vor 15 Jahren

hier solltest du evtl erwägen nur einen thin-client zu entwickeln. in jedem fall musst du die kommunikation in eine separate dll packen um die unterschiede zwischen silverlight und desktopclients sauber behandeln zu können.

ich hoffte, das könnte ich über die WCF machenG

Gelöschter Account
vor 15 Jahren

soweit ich weiß kann silverlight nur über einen bestimmten weg mit dem server kommunizieren aber ich habe damit keinerlei erfahrung. ausprobieren sollte aber helfen.

I
ingemar Themenstarter:in
194 Beiträge seit 2005
vor 15 Jahren

alles klar!

auf jeden fall vielen dank!

wünsch noch einen angenehmen start in die neue arbeitswoche 😉

lg ingemar

3.971 Beiträge seit 2006
vor 15 Jahren

primär geht es um eine web-app. als alternative soll aber auch ein desktop-client zur verfügung gestellt werden.

Hier würde ich gänzlich auf Silverlight oder WPF verzichten und das ganze tradioniell mit Html und bei Bedarf auch mit Ajax umsetzen. Genauso wenn du einen Offline-fähigen Client zur Verfügung stellen willst, kannst du den selben Html, Ajax, JavaScript Code verwenden. Im Hintergrund deines Programmes arbeitet ein kleiner Http-Server der die Anfragen entsprechend annimmt und bearbeitet. Die Businesschicht wäre in beiden Fällen die selbe.

Unabhängige Client-Tools würde ich nur für entsprechende administrative Aufgaben oder entsprechende Dienste anbieten.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...