Laden...

Was sind die modernen Netzwerktechnologien in C# ?

Erstellt von BeZi vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.364 Views
B
BeZi Themenstarter:in
153 Beiträge seit 2007
vor 7 Jahren
Was sind die modernen Netzwerktechnologien in C# ?

Erst einmal einen schönen Sonntag,

nachdem ich jetzt (Naja ich will nicht sagen) ewig gesucht habe und auch hier im Forum anscheinend immer wieder die Fragen gestellt werden wie mache ich folgendes in Bezug auf Server Client wollte ich mal nachfragen welche Technologien aktuell eingesetzt werden. Ich selbst schreibe aktuell nur Desktop-Anwendungen und greife auf DBs zu. Wollte aber mein Wissen erweitern.

Wann nehme ich was: 🤔

  • Wann setze ich auf ASP.Net ?
  • Wann benutze ich einen Service ?
  • Was ist mit Rest und was mit WCF ?
  • Wann nehme ich Nod.js ?
  • Wie versende ich heutzutage Daten am besten? Serialisiere ich ganze Klassen(Listen) oder wann -nehme ich eine "nur" einen einfachen Byte-Stream?
  • Was nehme ich für ein modernes Chat-Programm ?
  • Wie sagt der Client dem Server Ich brauche folgende Daten?
  • Was verwende ich als Server wenn ich sowohl mit einem WPF-Client als auch per Browser zugreifen möchte, oder sogar mit einer Handy-App zugreifen möchte?
    -Wo liegen die Unterschiede der eingesetzten Technologien?

Ich glaube das würde vielen schon helfen sich in die richtige Technologie einzulesen.
Falls es das schon geben sollte. Vielleicht könnte man den Link hier teilen.

Wenn man eine Übersicht über die verschiedenen Technologien erstellt würde das hier bestimmt schon einigen helfen. Kein Quellcode sondern nur über die eingesetzten Technologien.

Mich selbst interessiert es z.B. (siehe Anhang)

Ich habe ein Client-Programm das mit einem Server kommunizieren soll. Der Client schickt eine Anfrage an den Server, der die entsprechenden Daten an den Client sendet. Was verwende ich für die Kommunikation TCP? Wahrscheinlich - Aber wie sehen die Daten aus die ich versende? Wie sagt der Client dem Server - Ich brauche diese Daten. Der Server kann nicht einfach eine DB sein in diesem Fall. Dazu finden zu viele Berechnungen statt.
Vielleicht will ich auch mal Ergebnisse vom Server Ergebnisse per Handy abfragen. Was braucht der Server dafür ? Wie sieht hier die Kommunikation aus. Wie ich schon sagt kein Code sondern moderne Technologien interessieren mich.

Vielen Dank vielleicht bringt das einigen hier was. Mir würde es was bringen.

16.842 Beiträge seit 2008
vor 7 Jahren

Das wird Dich jetzt nicht erfreuen, aber diese Fragen sind - bis auf die letzte bzgl. der Unterschiede - auf dieser Ebene meiner Meinung nach nicht beantwortbar.

Es gibt hier keinen Ja-Nein-Wizard, der am Schluss sagt A ist besser oder B ist besser geeignet.
Es gibt Jobs wie Architekten und Technical Engineers, die teilweise über Wochen eine entsprechende technologische Evaluierung eines Projekts durchführen.
Da spielen dann auch Themen mit wie "habe ich überhaupt Zugriff auf Personal oder muss ich dieses für eine Technologie erst schulen"?

Deine Frage mit Deinem konkreten Problem ist was anderes; aber da gibt es halt zig verschiedene Möglichkeiten.
Es führt in der Entwicklung nicht nur ein Weg nach Rom.
Es geht sowohl mit Variante A, wie auch mit Variante B. Und dann kann man Variante A nach Y umsetzen oder eben nach X.

Was Du da gezeichnet hast ist nichts anderes als eine simple Client-Server-Architektur.
Spielt für eine Architektur keine Rolle, ob das nun ein Browser ist oder eine App.
Es kann auch gut sein, dass Du zB. keine Technologie für alle Devices finden wirst, sondern in so einer Umgebung auch oft genug - bzw. in der Regel - mehrere Client Anwendungen hast (Handy, Desktop, Tablet, Web..).

Sorry, dass ich Dich enttäuschen muss, dass so ein Thema nicht mit einem Beitrag beantwortet werden kann.
Da ich dies so sehe, habe ich das Thema auch in den Smalltalk Bereich verschoben, der für Diskussionen u.a. dieser Art gedacht ist.

Edit:
nen Tipp meinerseits, da ich eben meistens als Software Architekt in den Projekten bin:
Wenn Du selbst die Technologieauswahl machst (oft genug sagt auch der Kunde: wir wollen das damit machen. Punkt.):

Such Dir Technologie aus, mit denen Du ein kurzfristiges, mittelfristiges und langfristiges Ziel erreichst.

  • Kurz ist zum Beispiel ein Proof of Concept, oder ein MVP
  • Mittel die erste Version
  • Lang eben der Betrieb

Ich hab damit schon einige Male viel Zeit gespart, in dem ich zuerst etwas mit einer Technologie prinzipiell ausprobiert habe und dann gemerkt habe: Mist, muss anders gehen.
Oder der Kunde eben dann doch noch andere Features haben wollte.

Geh aber nicht vor:

  • Was sind die Unterschiede, und was ist 1-vs-1 besser?

Denn was besser ist kommt auf Dich und das Projekt an, denn evtl. sind die Vorteile für Dich überhaupt nicht relevant.
Also erstmal evaluieren, was Du überhaupt brauchst.