2009-02-03 7 views
11

Wer bereit ist, mir mit Pro/Contra auf .NET Remoting, Webdienste und WCF zu helfen? Ich habe ein wenig mit .NET Remoting und Web Services gearbeitet und ich erstelle eine neue ASP.NET 3.5 Web App, in der ich eine SQL 2008 DB verwenden werde. In erster Linie frage ich mich, ob es sich lohnen würde, wirklich in WCF nach dieser App zu suchen..NET Remoting im Vergleich zu Webdiensten vs. Windows Communication Foundation (WCF)

In diesem speziellen Fall, hier sind einige relevante Punkte:

  • meisten persistenten Daten werden Fehler und Nutzungsverfolgung sein.
  • Auch wenn ich mit .NET Remoting gehen, wird Verkehr keinen physischen Remoting-Server garantieren, aber ich würde gerne träumen, dass es eines Tages wird!
  • Zu diesem Zeitpunkt sehe ich nicht voraus, dass ich diese Daten aus anderen Web-Apps abrufen muss.

Allerdings würde ich noch gerne wissen:

  • Wann/warum würden Sie .NET Remoting in einer Web-Anwendung verwenden?
  • Wann/warum würden Sie Web Services in einer Web-App verwenden?
  • Wann/warum würden Sie WCF in einer Web-App verwenden?
  • Sollte ich eine Technologie wie LINQ to SQL in Betracht ziehen?
  • Gibt es noch andere bessere Möglichkeiten?

Antwort

7

Ich habe tatsächlich unsere Software von herkömmlichen .NET Remoting zu WCF gewechselt. Das Aufblähen der Kommunikation, die von Remoting aus erfolgte, war erstaunlich (schaue dir einfach eine Wireshark-Spur an). Bevor ich zu WCF wechselte, überlegte ich mir, nur einen herkömmlichen .NET-Webdienst zu verwenden, aber die Schnittstellen, die wir für unsere Remoting-Aufrufe implementiert haben, würden zu viel Modifikation erfordern. Wir hatten einige Out- und Ref-Parameter verwendet, die ein Asp.Net-Webdienst nicht tun kann falsch).

Wirklich, ich kann nicht an einen Grund denken, mit einem Asp.Net webservice zu gehen, aber ich bin kein Asp.Net-Typ. Für mich bietet es keine Vorteile gegenüber WCF. Es mag einfacher sein, mit einem Webservice zu arbeiten, aber die Flexibilität, die WCF bot, war das, was ich brauchte. Besonders im Bereich der Nachrichtenformatierung.

Ich mag meinen WCF-Dienst, weil ich mit einem Dienst entweder JSON oder SOAP/XML bereitstellen kann und alle Protokolle unterstützt werden (ipc, tcp und http).

Der Nachteil mit WCF ist, dass seine strikten Bindungen erfordern Sie einen Endpunkt für HTTP und HTTPS zu definieren, wenn Sie es in einem webbasierten Szenario verwenden möchten. Im Gegensatz zu einem herkömmlichen Webservice, der "einfach funktioniert" unabhängig davon, ob es sicher ist oder nicht.

2

Gute Frage! Wie Sie selbst habe ich WCF nicht schon einmal angeschaut und mich gefragt, ob Web Services mehr oder weniger veraltet sind?

Auf Ihren Punkt über Linq2SQL - vorausgesetzt, das ist eine spanky neue App und Sie werden wahrscheinlich die Codebasis für ein paar Jahre pflegen - persönlich (und auf das Risiko der downvoted dafür - aber denken Sie daran, es ist eine gültige Sichtweise!) Ich würde geneigt sein, auf das Entity Framework zu schauen.

Ich bin mir seiner Fehler bewusst, das Größte für mich ist, dass es zu eng an die DAL gekoppelt ist - daher kann es nicht einfach getestet werden (glaub mir, das ist ein großes Problem für mich, obwohl ich eine Bauchgefühl gibt es ein Workaround um dies zu erreichen).

Meine persönliche Meinung ist jedoch, dass MS diese Technologie nicht auf der Strecke bleiben lassen, und ich würde die Gerüchte berücksichtigen müssen, dass es L2S ERSETZT. Die Kehrseite davon ist, dass L2S eine viel ausgereiftere Technologie und eine sicherere Wette ist.

Vielleicht naiv ich bin, aber ich glaube, Dan Simmons, wenn er sagt, dass sie auf die Bereitstellung der EF (schließlich) als vollständig persistent-ignorant Architektur arbeiten - http://blogs.msdn.com/dsimmons/pages/ef-faq-entity-classes.aspx#_Does_Entity_Framework

0

ich eher in EF dann aussehen würde L2SQL auch.

Die Idee, nur mit MSSQL in Verbindung zu treten, war der Grund, warum ich L2SQL nie übernommen habe. Von diesem Zeitpunkt an war klar, dass MS eines Tages aufgeben würde.

Verwandte Themen