Διαφορά μεταξύ WCF και Web API
Τι είναι το WCF;
Το WCF σημαίνει Windows Επικοινωνία Foundation. Χρησιμοποιείται για τη δημιουργία κατανεμημένων και διαλειτουργικών Εφαρμογών. Το WCF είναι μια αποτελεσματική πλατφόρμα για την ανάπτυξη εφαρμογών προσανατολισμένων στις υπηρεσίες. Επιτρέπει στους προγραμματιστές να δημιουργήσουν ασφαλείς, αξιόπιστες και υψηλού προφίλ λύσεις ανάπτυξης που μπορούν να ενσωματωθούν σε πλατφόρμες και να διαλειτουργήσουν με υπάρχουσες επενδύσεις.
Τι είναι το Web API;
Το ASP.NET Web API είναι ένα πλαίσιο που σας επιτρέπει να δημιουργήσετε υπηρεσίες HTTP για προγράμματα περιήγησης και κινητές συσκευές. Είναι μια ιδανική πλατφόρμα για ανάπτυξη Ξεκούραστες εφαρμογές στο ASP .NET Framework.
Το ASP.NET Web API είναι ένα επεκτάσιμο πλαίσιο για τη δημιουργία υπηρεσιών που βασίζονται στο HTTP, οι οποίες μπορούν να προσπελαστούν σε διαφορετικές εφαρμογές σε διαφορετικές πλατφόρμες, όπως web, παράθυρα, κινητές συσκευές κ.λπ.
ΒΑΣΙΚΗ ΔΙΑΦΟΡΑ
- Το WCF προσφέρει απάντηση αίτησης, μονής κατεύθυνσης ή διπλής όψης, ενώ το Web API είναι από προεπιλογή μόνο απάντηση αιτήματος.
- Το WCF χρησιμοποιείται για την ανάπτυξη υπηρεσιών που βασίζονται σε SOAP ενώ το Web API χρησιμοποιείται τόσο για υπηρεσίες που βασίζονται σε SOAP όσο και για υπηρεσίες RESTful.
- Το WCF δεν προσφέρει καμία υποστήριξη για λειτουργίες MVC, ενώ το Web API υποστηρίζει λειτουργίες MVC.
- Το WCF υποστηρίζει πρωτόκολλο HTTP, UDP και προσαρμοσμένο πρωτόκολλο μεταφοράς, ενώ το Web API υποστηρίζει μόνο πρωτόκολλο HTTP.
- Το WCF προσφέρει υποστήριξη κωδικοποίησης κειμένου, MTOM και δυαδικής κωδικοποίησης, ενώ το Web API υποστηρίζει τη μορφή κωδικοποίησης UTF-8.
- Το WCF υποστηρίζει ουρές μηνυμάτων, ασφάλεια μηνυμάτων, αμφίδρομη επικοινωνία, συναλλαγή, ενώ το Web API δεν υποστηρίζει.
- Το WCF σημαίνει Windows Επικοινωνία Foundation ενώ το API σημαίνει Διασύνδεση προγράμματος εφαρμογής.
Γιατί να χρησιμοποιήσετε το WCF;

Ακολουθούν τα πλεονεκτήματα/πλεονεκτήματα της χρήσης του WCF:
- Το WCF είναι μια ιδανική επιλογή εάν σκοπεύετε να χρησιμοποιήσετε .NET Framework 3.5.
- Το WCF υποστηρίζει πολλαπλά πρωτόκολλα όπως HTTP, TCP, Named pipe.
- Η υπηρεσία WCF είναι χρήσιμη εάν θέλετε να δημιουργήσετε υπηρεσία με πρότυπα όπως η ασφάλεια μηνυμάτων συναλλαγών και η αξιόπιστη ασφάλεια μηνυμάτων.
- Μπορείτε να χρησιμοποιήσετε μοτίβα ανταλλαγής μηνυμάτων Request-Reply, One Way και Duplex με το WCF.
Γιατί χρησιμοποιήσατε το Web API;
Ακολουθούν τα πλεονεκτήματα/πλεονεκτήματα της χρήσης του web API:
- Το Web API παρέχει υποστήριξη για ενέργειες CRUD που βασίζονται σε συμβάσεις, καθώς λειτουργεί με ρήματα HTTP (GET, PUT, POST και DELETE)
- Είναι εύκολο να τον ορίσετε, να τον εκθέσετε και να τον καταναλώσετε με τρόπο ανάπαυσης.
- Το ASP.Net Web API σάς επιτρέπει να προβάλλετε τα δεδομένα και τις υπηρεσίες σας σε διάφορες συσκευές.
- Το Web API είναι ανοιχτού κώδικα, επομένως αποτελεί ιδανική επιλογή για τη δημιουργία υπηρεσιών RESTful μέσω της πλατφόρμας .NET.
- Σας επιτρέπει την επεκτάσιμη, αποσυνδεδεμένη ανάπτυξη μιας υπηρεσίας Web, η οποία μπορεί να κοινοποιηθεί και να χρησιμοποιηθεί από άλλους προγραμματιστές για πρόσβαση σε υπηρεσίες Ιστού.
- Είναι επίσης χρήσιμο να δημιουργήσετε απλές υπηρεσίες HTTP που δεν βασίζονται σε SOAP.
Χαρακτηριστικά του WCF
- Μεταφορές με μεγάλη δυνατότητα διαμόρφωσης
- Καλύτερες επιλογές για σειριοποίηση
- Καλά ενσωματωμένο με τις υπηρεσίες IIS
- Εύκολο για αυτο-φιλοξενία
- Πολύ πλούσια μεταδεδομένα
- Σύνθετο μοντέλο για δημοσίευση
- Συμβόλαια εμπλουτισμένων δεδομένων
Χαρακτηριστικά του Web API
- Στενά συνδεδεμένο με το HTTP
- Εύκολο στη δοκιμή
- Προσφέρει υποστήριξη για διαπραγμάτευση περιεχομένου
- Επιτρέπει τη μορφοποίηση ανοιχτού τύπου
- Καμία εξάρτηση από μια πλατφόρμα
- Στερεός προσανατολισμός στους πόρους
- Εμπειρία επιπέδου 2 με υποστήριξη εκκολαπτόμενων υπερμέσων
WCF Vs Web Service
| Παράμετρος | WCF | API Web |
|---|---|---|
| Μοτίβο ανταλλαγής μηνυμάτων | Ζητήστε απάντηση, μονής κατεύθυνσης ή διπλής όψης. | Από προεπιλογή μόνο αίτημα-απάντηση. Ωστόσο, μπορεί να υποστηριχθεί πρόσθετο μοτίβο μηνυμάτων με την ενσωμάτωση διαδικτυακών υποδοχών. |
| Φιλοξενία | Υπηρεσίες φιλοξενίας IIS, Self-hosting & ενεργοποίησης έργων. | Self-hosting & IIS hosting. |
| Open Source | Δεν είναι λογισμικό ανοιχτού κώδικα. | Αποστέλλεται με.Net Framework. Διατίθεται επίσης ως ανεξάρτητη λήψη. |
| Υποστήριξη για λειτουργίες MVC | Το WCF δεν παρέχει καμία υποστήριξη για λειτουργίες MVC όπως ελεγκτές, δρομολόγηση, φίλτρο, αποτελέσματα δημοπρασιών κ.λπ. | Το ASP.NET Web API υποστηρίζει λειτουργίες MVC όπως δρομολόγηση, ελεγκτές, αποτελέσματα, φίλτρο, δράση κ.λπ. |
| Υποστήριξη κωδικοποίησης | Κείμενο, MTOM και δυαδικό. | Προεπιλεγμένη υποστήριξη για μορφή κωδικοποίησης UTF-8. |
| Υποστήριξη | Υποστήριξη για HTTP, UDP και προσαρμοσμένο πρωτόκολλο μεταφοράς. | Υποστηρίζει μόνο πρωτόκολλο HTTP |
| Χρήση μοντέλου | Μοντέλο προγραμματισμού με βάση το χρήστη. | Αντιστοιχίζει τα ρήματα HTTP σε μεθόδους |
| διαμόρφωση | Χρησιμοποιεί το web.config και τα χαρακτηριστικά για τη διαμόρφωση μιας κλάσης HttpConfiguration αλλά όχι στην Υπηρεσία web.config. | Το Web API μπορεί να διαμορφωθεί χρησιμοποιώντας την υπηρεσία web.config. |
| Ξεκούραστες υπηρεσίες | Προσφέρει υποστήριξη για την υπηρεσία RESTFUL αλλά με περιορισμούς. | Ιδανικό για την κατασκευή RESTFUL υπηρεσιών. |
Ο αποφασιστικός παράγοντας για το WCF έναντι του Web API
Ακολουθεί μια γρήγορη λίστα ελέγχου που θα σας βοηθήσει να προσδιορίσετε εάν θα χρησιμοποιήσετε το WCF ή το Web API
| σενάριο | WCF 4.5 | API Web ASP.NET |
|---|---|---|
| Απαιτεί υποστήριξη για σενάρια όπως ουρές μηνυμάτων, ασφάλεια μηνυμάτων από άκρο σε άκρο, επικοινωνία διπλής όψης, κατανεμημένες συναλλαγές κ.λπ. | Αγορά | ΜΗ Επιλέξτε |
| Όταν έχετε ήδη υπάρχουσες λειτουργικές υπηρεσίες WCF και Θέλει να προσθέσει επιπλέον υποστήριξη HTTP. | Αγορά | ΜΗ Επιλέξτε |
| Μία βάση κώδικα που παρέχει υποστήριξη τόσο SOAP όσο και RESTful τελικά σημεία. | Αγορά | ΜΗ Επιλέξτε |
| Θέλει να δημιουργήσει μια υπηρεσία προσανατολισμένη στους πόρους μέσω HTTP. | ΜΗ Επιλέξτε | Αγορά |
| Το έργο σας είναι μια εφαρμογή MVC και θέλει κάποια λειτουργικότητα μέσω HTTP. | ΜΗ Επιλέξτε | Αγορά |
| Θέλετε να δημιουργήσετε μόνο υπηρεσίες HTTP / RESTful | ΜΗ Επιλέξτε | Αγορά |

