Qual è la differenza tra un metodo web asp.net e un servizio wcf?

Sono nuovo di. Net e non capisco la differenza. Qualcuno può indicarmi la giusta direzione?

I servizi Web ASP.NET sono stati sviluppati per la creazione di applicazioni che inviano e ricevono messaggi utilizzando il protocollo SOAP (Simple Object Access Protocol) su HTTP.

WCF consente di abilitare le applicazioni .NET Framework per scambiare messaggi con altre quadro software. SOAP viene utilizzato per impostazione predefinita, ma i messaggi possono essere in qualsiasi formato e convogliati utilizzando qualsiasi protocollo di trasporto.

È ansible visualizzare i servizi Web ASP.NET come un sottoinsieme di servizi WCF.

Ecco un link che confronta i due framework.

è abbastanza facile conoscere le differenze.

Il metodo Web ASP.NET si chiama ASMX [a causa dell’estensione del file] (controlla 4GuysFromRolla a riguardo, hanno un buon tutorial )

Questa tecnologia ti consente di esporre le funzioni come un servizio Web in modo da poterlo connettere ovunque e utilizzarlo. Ma … non puoi proteggere i dati tra server e client, puoi inviare grossi file chiari e sapere cosa succede, ecc …

[Nota] puoi proteggere l’accesso al servizio web usando i certificati, ma è complicato ma normalmente, in ASMX usiamo username / password.

in WCF, ci si trova nel mondo diverso dei servizi Web, e questa è la migliore tecnologia in .NET per esporre i servizi ( puoi vedere la differenza … Servizi , non servizi Web ), WCF non ha bisogno di IIS per essere eseguito, può essere eseguito come servizio di sistema sul server, usando una console ambient (come la riga di comando), ecc., quindi diciamo che WCF è un servizio non servizio web. Ricorda che ASMX ha bisogno di IIS per funzionare.

con WCF è ansible utilizzare SSL per crittografare la comunicazione (per farlo in ASMX è necessario utilizzare WSE – Miglioramenti dei servizi Web), è ansible inviare file di grandi dimensioni e in modo sicuro (per farlo in ASMX è necessario utilizzare MTOM – Message Transmission Optimization Mechanism ).

puoi impostare le preferenze di trasmissione semplicemente cambiando una riga di codice, la sicurezza è molto più alta, ecc, ecc 🙂

spero che tu abbia una visione generale migliore con questo, ma c’è molto di più.

linea di fondo: per esporre servizi Web che non è necessario proteggere, è ansible utilizzare ASMX, nessun problema, ma se è necessario proteggere la comunicazione in qualche modo, farlo in WCF!

link : puoi leggere qui alcuni risultati comparativi tra i 2 servizi

Sono due diversi quadri per i servizi di scrittura. WCF è generalmente più flessibile e offre opzioni configurabili per quali protocolli vengono utilizzati, come è ospitato il servizio e una varietà di opzioni di sicurezza. ASMX offre servizi basati su SOAP. Generalmente, WCF è anche più performante . In generale ASMX è più facile da usare e generalmente ha meno di una curva di apprendimento.

Ecco una discussione sul forum MSDN sull’argomento. Ecco le pagine di avvio per ASMX e WCF .

Oltre alle risposte di cui sopra, WCF è stato creato per sostituire .NET Remoting in .NET 3.0 e oltre. Oltre a servizi Web SOAP, REST, POX, ecc. In vari formati (ad es. XML e JSON), WCF offre anche MSMQ e Named Pipes. ASMX, come detto sopra, fornisce solo servizi Web XML basati su SOAP.

Dovresti approfondire .NET Remoting per altri tipi di protocolli di comunicazione. Per ulteriori informazioni, è necessario consultare Pro C # 2008 e .NET 3.5 Framework . È una grande risorsa e puoi ottenere i capitoli dei libri precedenti che riguardano .NET Remoting e altre funzioni sostituite.

Ecco una nuova, grande, differenza: Microsoft ora considera i servizi Web ASMX come tecnologia “legacy”. Vedere ” Servizi Web XML creati utilizzando ASP.NET e client di servizi Web XML “.

Servizi web

  1. È accessibile solo via HTTP
  2. Funziona in un ambiente senza stato

WCF

WCF è flessibile perché i suoi servizi possono essere ospitati in diversi tipi di applicazioni. Di seguito sono elencati diversi scenari comuni per l’hosting dei servizi WCF:

  • IIS
  • ERA
  • Self-hosting
  • Managed Windows Service

Sono due cose diverse tutte insieme. WCF è un framework più generico attraverso il quale è ansible scrivere un componente del tipo di servizio e distribuirlo in molti modi (anche come un servizio Web Asp.Net).

Ecco una breve discussione su questo http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/2d6a7ff2-f15c-4599-a389-a81cfffcc852/

Ho avuto lo stesso problema.

Ho trovato il libro Microsoft Windows Communication Foundation Step by Step per essere veramente buono.

Se vuoi solo fare la cosa tradizionale del servizio web usando WCF, allora il Capitolo 1 di quel libro ti mostrerà esattamente come farlo (scrivi servizio, prova, distribuisci, usa il servizio).

È scritto per VS2005, ma sto usando vs2008 e l’ho trovato ancora più facile.

C’è molto di più in WCF, ma quel libro è un buon inizio.

Le principali differenze tra servizio Web e WCF sono elencate di seguito.

Servizio Web : il servizio Web è un’applicazione progettata per interagire direttamente con altre applicazioni su Internet.

1) Gli attributi [WebService] e [WebMethod] definiscono un servizio Web e metodi.
2) È accessibile solo via HTTP.
3) Hosted in IIS.
4) Supporto dei servizi di sicurezza.
5) Non può essere multithread.
6) Solo soap usato o XML.
7) Spazio dei nomi System.Xml.serialization viene utilizzato per la serializzazione

WCF : Windows Communication Foundation (codice denominato Indigo) è una piattaforma di programmazione e un sistema di runtime per la creazione, la configurazione e la distribuzione di servizi distribuiti in rete.

1) Gli attributi [ServiceContract] e [OperationContract] definiscono un servizio Web e metodi.
2) Accesso tramite HTTP, TCP, MSMQ, P2P, named pipe
3) Hosted in IIS, Self-Hosting, WAS e Windows Service.
4) Può essere multithreading tramite class di comportamento del servizio.
5) Spazio dei nomi System.Runtime.Serialization viene utilizzato per la serializzazione
6) Supporta diversi tipi di binding come BasicHttpBinding, WSHttpBinding, WSDualHttpBinding ecc.
7) Supporto dei servizi di sicurezza, messaggistica affidabile, transazioni, supporto AJAX e REST