none
WPF - Windows Communication Foundation (WCF) - WinForms C# RRS feed

  • Frage

  • Hallo!

    Kann mir jemand folgende Fragen kurz und prägnant beantworten?

    Wo liegen die Vor-/Nachteile zu C# Winforms?

    Wann bietet es sich an auf WPF, WCF zu nehmen?

    Hat man da auch Vorteile plattformunabhängig, MAC? Windows?

    Danke für die Erläuterungen.

    Viele Grüße Sandra



    • Bearbeitet Sandra Maier Mittwoch, 27. Mai 2015 06:44 Format
    Mittwoch, 27. Mai 2015 06:43

Antworten

  • Hallo Sandra,

    ganz so einfach ist es nicht. Ich bin mal zu meinen Bücherregel gegangen und hab zu den Themen passende Bücher her ausgeholt (Nun gut die ich da habe sind auch schon älter sind).

    Windows Forms ca. 650 Seiten
    Einstig in WPF ca. 600 Seiten
    WCF ca. 400 Seiten

    Im Internet wirst du größtenteils Beispiele finden die sich auf einzelne Aspekte beziehen. Umfangreichere Sachen kannst du z.B. bei Galileo Press (wenn ich es richtig sehe mittlerweile Reihnwerk) teilweise kostenlos Online finden (Bücher). Oder die Microsoft Virtual Akademi ist ein anderer Ort wo du einiges findest.
    Bei Wikipedia kannst du einen groben Überblick bekommen und google wird dir bei Englischen Suchbegriffen auch eine grobe Auflistung bieten (z.b."C# WPF vs. WindowsForms").

    Das alles hier wieder zu geben würde einfach den Rahmen des Forums sprengen. Und ja zwischen VS 2008 und 2012 hat sich einiges getan. Und nicht nur in der IDE (Entwicklungsumgebung) auch in den Features der Sprache. ;)

    MFG

    Björn

    p.s.  Hab selbst mal an der RWTH Aachen studiert.

    • Als Antwort markiert Sandra Maier Freitag, 29. Mai 2015 06:30
    Donnerstag, 28. Mai 2015 17:14

Alle Antworten

  • Hallo Sandra,
    WCF steht für Windows Communication Foundation, das hat mit dem Erstellen von UI basierenden Anwendungen nichts zu tun. Damit kannst du zum Beispiel Webdienste erstellen und veröffentlichen.

    Bei WPF handelt es sich um die Nachfolgetechnologie von Windows Forms. WPF bietet deutlich mehr Möglichkeiten beim Bauen GUIs. Zudem bringt WPF von Haus aus die Möglichkeit der Schichtentrennung mit. Das trennen von Schichten bringt zum Beispiel den Benefit, dass du Geschäftslogik automatisiert (d.h. ohne ein UI dafür bedienen zu müssen) testen kannst. WPF basiert auf Vektorgrafik und ist somit verlustfrei skalierbar. Kannst mal bei deinem VS testen. Teile von VS sind mit der WPF realisert.

    WinForms hat ggü. WPF eigentlich nur die Vorteile: Die Implementierung damit ist meist simpler, es ist mit vielen technologien kompatibel ist (z.B. Citrix) und dass es von der Hard- bzw. Softwareumgebung recht anspruchslos ist.

    Was die Plattformunabhängigkeit betrifft, geht .net ja diesen Weg. Leider ist mir nicht bekannt ob damit alle technologien portabel werden. Da Windows Form auf der Win32 API basiert könnte es durchaus sein, dass es auf die Windows Plattform beschränkt bleibt.


    Viele Grüße Holger M. Rößler

    Mittwoch, 27. Mai 2015 07:20
  • Bei WPF handelt es sich um die Nachfolgetechnologie von Windows Forms. WPF bietet deutlich mehr Möglichkeiten beim Bauen GUIs. Zudem bringt WPF von Haus aus die Möglichkeit der Schichtentrennung mit. Das trennen von Schichten bringt zum Beispiel den Benefit, dass du Geschäftslogik automatisiert (d.h. ohne ein UI dafür bedienen zu müssen) testen kannst. WPF basiert auf Vektorgrafik und ist somit verlustfrei skalierbar. Kannst mal bei deinem VS testen. Teile von VS sind mit der WPF realisert.


    Hallo Holger,

    OK, heißt das mit WPF baue ich die Oberfläche, egal wie die aussieht und dahinter ist die Logik.

    D.h. wenn ich Drittanbieter mir eine SDK, Assembly etc. liefert, würde ich mir mit WPF leichter tun, ja?

    Brauchich da HTML Kenntnisse oder geht das Meiste mit Editor?

    -------

    WCF Dienst, kannst Du das noch etwas erläutern, was macht der Dienst?

       WPF -- Schicht --- Logik

    Wie kommt jetzt da die WCF, der Service ins Spiel?

    Grüße Sandra

    Mittwoch, 27. Mai 2015 07:45
  • Hallo Sandra,
    richtig, mit WPF kannst du die Oberfläche bauen, die Logik KANNST du trennen, MUSST du aber nicht. Aber es macht definitiv Sinn.

    Nicht unbedingt. Der Mechanismus zum Einbinden ist ja der selbe. Es wird ja nicht auf die GUI eingebunden. Hier sehe ich bei den WPF nicht unbedingt Vorteile ggü. Forms.

    WPF benutzt zum Beschreiben von Oberflächen XAML. Ein XML-Dialekt der HTML recht ähnlich ist. Der WPF-Editor ist zwischenzeitlich ganz brauchbar: Ich allerdings benutze ich ihn nur selten. Ich kodiere das meiste von Hand. Ist meiner Ansicht nach einfacher und schneller als per Editor.

    Mit einem Dienst kommuniziert deine Anwendung mit anderen Diensten, z.B. mit anderen Programmen die Anfragen über einen Webdienst ermöglichen.

    Wo die WCF ins Spiel kommt, hängt von der Architektur der Anwendung ab. Aber hoffentlich niemals direkt im UI ;-)

    @Edit: Hier noch einige Infos zu WCF --> https://msdn.microsoft.com/de-de/library/bb907578.aspx


    Viele Grüße Holger M. Rößler



    Mittwoch, 27. Mai 2015 09:30
  • Hallo Sandra,

    zu den Schichten kannst du dir mal den Link durchlesen: http://www.mycsharp.de/wbb2/thread.php?threadid=111860

    Bei WPF ist der Einarbeitungsaufwand deutlich höher als bei WindowsForms. Danach ist durch die verbesserten Bindungsmöglichkeiten Schichtentrennung aber mit weniger Aufwand umgesetzt (Mal nach "C# MVVM Pattern" googeln). Wenn du bis jetzt noch keine UI Technologie verwendest bietet sich WPF an. Mit der Assemblys einen 3. Anbieters hat es jetzt nicht direkt was zu tun.

    HTML Kenntnisse brauchst du für WPF nicht. 

    WCF dient zur Kommunikation zwischen 2 Computern. Wenn z.B. ein Client nicht direkt auf eine Datenbank zugreifen soll (er müsste ja User und Password kennen), kannst du den zugriff über einen WCF Service bereitstellen.

    MFG

    Björn

    Mittwoch, 27. Mai 2015 09:37

  • HTML Kenntnisse brauchst du für WPF nicht. 

    WCF dient zur Kommunikation zwischen 2 Computern. Wenn z.B. ein Client nicht direkt auf eine Datenbank zugreifen soll (er müsste ja User und Password kennen), kannst du den zugriff über einen WCF Service bereitstellen.


    Hallo Björn,

    schön, man kann also das meiste über den Editor erschlagen, ja?

    Besser wie Holger sagt, evtl. HTML Kenntnisse, jedoch nicht zwingend.

    Hast Du mal ein überschaubares kleines Beispiel WPF -- Logik --- WCF Dienst

                                                          PC1  .........................................PC2

    Danke im Voraus.

    Grüße Sandra


    • Bearbeitet Sandra Maier Mittwoch, 27. Mai 2015 10:23 Format
    Mittwoch, 27. Mai 2015 10:22
  • Grundlegend kannst du schon vieles mit dem Editor im VS machen (einfach mal ausprobieren), mit Blend kannst du dann noch einiges mehr. Es gibt aber auch einfach Sachen die besser im Code funktionieren. Ob man mehr im Editor oder im Code macht, ist Geschmackssache. Die meisten Entwickler, die ich kenne, bevorzugen den Code, da sie mit der Zeit da einfach schneller sind als mit dem Editor.

    Ein einfaches Beispiel WPF WCF hab ich hier gefunden. Man sollte aber im Kopf behalten, das es nur ein Beispiel ist um gewisse Sachverhalte darzustellen. Bei einer "Realen" Anwendung kommen meist noch mehr Anforderungen hinzu, so das sie sich einiges von den Beispielen unterscheidet. 

     
    Mittwoch, 27. Mai 2015 10:40

  • Ein einfaches Beispiel WPF WCF hab ich hier gefunden. Man sollte aber im Kopf behalten, das es nur ein Beispiel ist um gewisse Sachverhalte darzustellen. Bei einer "Realen" Anwendung kommen meist noch mehr Anforderungen hinzu, so das sie sich einiges von den Beispielen unterscheidet. 

     

    Hallo Björn,

    ok.Danke. Gibt es da noch eine finalle Version?

    Beispiel

    Viele Grüße Sandra


    • Bearbeitet Sandra Maier Mittwoch, 27. Mai 2015 12:08 Format
    Mittwoch, 27. Mai 2015 11:46
  • Wo von?
    Mittwoch, 27. Mai 2015 12:35
  • Wo von?

    Dateianhang:zipProductCatalogue.zip (97,36 KB, 58 mal heruntergeladen)

    Ich dachte, das bist evtl. Du, ist von Dir.

    Grüße Sandra

    Donnerstag, 28. Mai 2015 06:14
  • Ja die Version ist von mir und eine weitere Version gibt es nicht.

    Es ist einfach ein simples Beispiel um darzustellen, dass es keinen sehr großen Aufwand erfordert eine mehrschichtige Softwarearchitektur umzusetzen. Grundlage war ein gegebenes Projekt, welches möglichst einfach umgestellt wurde. Bei größeren Anwendungen, kann es sinnvoll sein die einzelnen Schichten in eigene Assemblies zu packen, gegen Interfaces zu Programmieren und die Abhängigkeiten durch einen IoC-Container aufzulösen. Diese Erweiterungen kann ich aber auch später noch mit etwas Aufwand machen, wenn ich vorher schon eine saubere Trennung habe. Wenn die nicht Trennung besteht muss man meist sehr Aufwändig die Abhängigkeiten einzeln auflösen.       

    MFG

    Björn

    Donnerstag, 28. Mai 2015 09:00
  • Hallo Björn,

    ja ok.

    Ich suche einfach ein kleines Beispielprojekt, wo die Features ersichtlich sind.

    Ähnlich dem, leider kein Code dabei. Und dann noch für VS2012, evtl hat sich zu VS2008 was getan.

    Script

    Suche

    Vielleicht weißt Du noch was Gutes. Danke im Voraus.

    Grüße Sandra

    Donnerstag, 28. Mai 2015 15:18
  • Hallo Sandra,

    ganz so einfach ist es nicht. Ich bin mal zu meinen Bücherregel gegangen und hab zu den Themen passende Bücher her ausgeholt (Nun gut die ich da habe sind auch schon älter sind).

    Windows Forms ca. 650 Seiten
    Einstig in WPF ca. 600 Seiten
    WCF ca. 400 Seiten

    Im Internet wirst du größtenteils Beispiele finden die sich auf einzelne Aspekte beziehen. Umfangreichere Sachen kannst du z.B. bei Galileo Press (wenn ich es richtig sehe mittlerweile Reihnwerk) teilweise kostenlos Online finden (Bücher). Oder die Microsoft Virtual Akademi ist ein anderer Ort wo du einiges findest.
    Bei Wikipedia kannst du einen groben Überblick bekommen und google wird dir bei Englischen Suchbegriffen auch eine grobe Auflistung bieten (z.b."C# WPF vs. WindowsForms").

    Das alles hier wieder zu geben würde einfach den Rahmen des Forums sprengen. Und ja zwischen VS 2008 und 2012 hat sich einiges getan. Und nicht nur in der IDE (Entwicklungsumgebung) auch in den Features der Sprache. ;)

    MFG

    Björn

    p.s.  Hab selbst mal an der RWTH Aachen studiert.

    • Als Antwort markiert Sandra Maier Freitag, 29. Mai 2015 06:30
    Donnerstag, 28. Mai 2015 17:14


  • p.s.  Hab selbst mal an der RWTH Aachen studiert.

    Hallo Björn,

    ok Danke. Man lernt halt teils viel, nur die Praxis sieht meist etwas anders aus.

    Wie viel kannst Du vom Studium noch brauchen....?

    Frage mal beantwortet.

    Grüße Sandra

    Freitag, 29. Mai 2015 06:30
  • Da ich Mathe/Physik/Maschinenbau studiert habe nicht so viel.

    Aus der Informatikvorlesung ein gutes Verständnis der OOP (Vererbung usw.) aus meinen Hiwi Job (wo unter anderen ein Programm zu Modell Generierung für Simulationen in Fortran geschrieben habe), man sollte nicht eine Quellcode schreiben ohne einmal zu Compilieren. ;)

    Grundlegend einfach ein Strukturiertes vorgehen. Das ist bei mir aber auch schon 15 Jahre her.

    Ich hatte jetzt auf EdX mir noch mal eine Vorlesung von Berkeley angesehen. Bei der in zusammen Arbeit mit Microsoft und Apple sachen wie Code Qualität und Unit Test eingeführt wurden. Was in der Praxis, dann doch mal häufiger gebraucht wird. ;)

    MFG

    Björn   

    Freitag, 29. Mai 2015 07:39