Mi az a Windows Communication Foundation?
A Windows Communication Foundation (WCF) a szolgáltatásorientált alkalmazások kiépítésének keretrendszere. A WCF használatával aszinkron üzenetként küldhet adatokat az egyik szolgáltatásvégpontról a másikra. A szolgáltatásvégpont lehet az IIS által üzemeltetett, folyamatosan elérhető szolgáltatás része, vagy lehet egy alkalmazásban üzemeltetett szolgáltatás. A végpont lehet olyan szolgáltatás ügyfele, amely adatokat kér le egy szolgáltatásvégponttól. Az üzenetek lehetnek olyan egyszerűek, mint az XML-ként küldött egyetlen karakter vagy szó, vagy olyan összetettek, mint a bináris adatok adatfolyama. Néhány példaforgatókönyv:
Biztonságos szolgáltatás az üzleti tranzakciók feldolgozásához.
Olyan szolgáltatás, amely az aktuális adatokat látja el másokkal, például forgalmi jelentéssel vagy más figyelési szolgáltatással.
Egy csevegőszolgáltatás, amely lehetővé teszi, hogy két személy valós időben kommunikáljon vagy kicseréljen adatokat.
Egy irányítópult-alkalmazás, amely egy vagy több szolgáltatást kérdez le az adatokhoz, és egy logikai bemutatóban jeleníti meg.
A Windows Workflow Foundation használatával WCF-szolgáltatásként implementált munkafolyamat megjelenítése.
Bár az ilyen alkalmazások létrehozása a WCF megléte előtt lehetséges volt, a WCF minden eddiginél egyszerűbbé teszi a végpontok fejlesztését. Összefoglalva, a WCF úgy lett kialakítva, hogy kezelhető megközelítést kínáljon a webszolgáltatások és a webszolgáltatás-ügyfelek létrehozásához.
gRPC a WCF alternatívaként
A gRPC egy modern RPC-keretrendszer, amely a WCF népszerű alternatíva. A gRPC a HTTP/2-n alapul, amely számos előnyt biztosít a WCF-sel szemben, beleértve a következőket:
- Teljesítmény: a gRPC sokkal hatékonyabb, mint a WCF, különösen a hosszú ideig futó kapcsolatok esetében.
- Méretezhetőség: a gRPC nagy számú ügyfélre és kiszolgálóra skálázható.
- Biztonság: a gRPC számos biztonsági mechanizmust támogat, beleértve a TLS-t és a hitelesítést.
- Platformfüggetlen: a gRPC platformsemleges, és számos programozási nyelvvel használható.
A WCF-alkalmazások gRPC-be való fejlesztésével vagy migrálásával kapcsolatos további információkért lásd:
- Miért ajánljuk a gRPC-t WCF-fejlesztőknek?
- WCF és gRPC összehasonlítása
- A gRPC bemutatása WCF-fejlesztőknek
A WCF funkciói
A WCF a következő funkciókat tartalmazza. További információkért lásd a WCF szolgáltatás részleteit.
Szolgáltatás tájolása
A WS-szabványok használatának egyik következménye, hogy a WCF lehetővé teszi szolgáltatásorientált alkalmazások létrehozását. A szolgáltatásorientált architektúra (SOA) az adatok küldéséhez és fogadásához szükséges webszolgáltatásokra támaszkodik. A szolgáltatások általános előnye, hogy lazán össze vannak állítva, nem pedig az egyik alkalmazásból a másikba kódoltak. A lazán összekapcsolt kapcsolatok azt jelentik, hogy bármely platformon létrehozott ügyfél bármilyen szolgáltatáshoz csatlakozhat, amíg az alapvető szerződések teljesülnek.
Együttműködési lehetőség
A WCF modern iparági szabványokat vezet be a webszolgáltatások közötti együttműködéshez. A támogatott szabványokról további információt az együttműködési és integrációs cikkben talál.
Több üzenetminta
Az üzeneteket a rendszer több minta egyikében cseréli le. A leggyakoribb minta a kérés/válasz minta, ahol az egyik végpont egy második végponttól kér adatokat. A második végpont válaszol. Vannak más minták is, például egy egyirányú üzenetek, amelyekben egyetlen végpont válasz nélkül küld üzenetet. Összetettebb minta a kétoldalas csereminta, ahol két végpont létesít kapcsolatot, és adatokat küld oda-vissza, hasonlóan egy csevegőprogramhoz. További információ a különböző üzenetcsere-minták WCF használatával történő implementálásáról: Szerződések.
Szolgáltatás metaadatai
A WCF támogatja a szolgáltatás metaadatainak közzétételét olyan iparági szabványokban meghatározott formátumok használatával, mint a WSDL, az XML-séma és a WS-Policy. Ez a metaadatok segítségével automatikusan létrehozhat és konfigurálhat ügyfeleket a WCF-szolgáltatások eléréséhez. A metaadatok HTTP-en és HTTPS-en keresztül vagy a Web Service Metadata Exchange szabvány használatával tehetők közzé. További információ: Metaadatok.
Adatszerződések
Mivel a WCF a .NET-keretrendszer használatával készült, kódbarát módszereket is tartalmaz a kikényszeríteni kívánt szerződések megadására. A szerződések egyik univerzális típusa az adatszerződés. Lényegében, amikor a szolgáltatást Visual C# vagy Visual Basic használatával kódoljuk, az adatok kezelésének legegyszerűbb módja az, ha olyan osztályokat hozunk létre, amelyek egy adatentitást képviselnek az adatentitáshoz tartozó tulajdonságokkal. A WCF egy átfogó rendszert tartalmaz az adatok ilyen egyszerű kezeléséhez. Miután létrehozta az adatokat képviselő osztályokat, a szolgáltatás automatikusan létrehozza azokat a metaadatokat, amelyek lehetővé teszik az ügyfelek számára, hogy megfeleljenek a tervezett adattípusoknak. További információ: Adatszerződések használata.
Biztonság
Az üzenetek titkosíthatók az adatvédelem érdekében, és megkövetelheti a felhasználóktól, hogy hitelesítsék magukat, mielőtt engedélyezve lenne az üzenetek fogadása. A biztonság olyan ismert szabványok használatával valósítható meg, mint az SSL vagy a WS-SecureConversation. További információ: Biztonság.
Több átvitel és kódolás
Az üzenetek számos beépített átviteli protokollon és kódoláson keresztül küldhetők. A leggyakoribb protokoll és kódolás a szöveges kódolású SOAP-üzenetek küldése a HyperText Transfer Protocol (HTTP) használatával a világhálón való használatra. Másik lehetőségként a WCF lehetővé teszi, hogy TCP-n, elnevezett csöveken vagy MSMQ-n keresztül küldjön üzeneteket. Ezek az üzenetek szövegként vagy optimalizált bináris formátumban kódolhatók. A bináris adatok hatékonyan küldhetők el az MTOM szabvány használatával. Ha a megadott átvitelek vagy kódolások egyike sem felel meg az igényeinek, létrehozhatja saját egyéni átvitelét vagy kódolását. A WCF által támogatott átvitelekről és kódolásokról további információt a Transports (Szállítások) című témakörben talál.
Megbízható és üzenetsorba helyezett üzenetek
A WCF a WS-Reliable Messaging és az MSMQ használatával megvalósított megbízható munkamenetek használatával támogatja a megbízható üzenetcserét. A WCF megbízható és üzenetsoros üzenetküldési támogatásáról további információt az Üzenetsorok és a Megbízható munkamenetek című témakörben talál.
Tartós üzenetek
A tartós üzenet olyan üzenet, amely soha nem vesz el a kommunikáció megszakadása miatt. A tartós üzenetminta üzenetei mindig egy adatbázisba kerülnek. Ha megszakad a kapcsolat, az adatbázis lehetővé teszi az üzenetváltás folytatását a kapcsolat visszaállításakor. Tartós üzenetet a Windows Workflow Foundation (WF) használatával is létrehozhat. További információ: Munkafolyamat-szolgáltatások.
Tranzakciók
A WCF a három tranzakciómodell egyikét használó tranzakciókat is támogatja: a WS-AtomicTransactions, a névtér API-jai és a System.Transactions Microsoft Distributed Transaction Coordinator. A WCF tranzakciótámogatásával kapcsolatos további információkért lásd a Tranzakciók című témakört.
AJAX és REST-támogatás
A REST egy fejlődő Web 2.0-technológia példája. A WCF konfigurálható olyan "egyszerű" XML-adatok feldolgozására, amelyek nincsenek SOAP-borítékba csomagolva. A WCF kiterjeszthető bizonyos XML-formátumok, például az ATOM (népszerű RSS-szabvány) és a nem XML-formátumok, például a JavaScript Object Notation (JSON) támogatására is.
Bővíthetőség
A WCF-architektúra számos bővíthetőségi ponttal rendelkezik. Ha további képességekre van szükség, számos belépési pont van, amelyek lehetővé teszik a szolgáltatás viselkedésének testreszabását. Az elérhető bővíthetőségi pontokról további információt a WCF kiterjesztése című témakörben talál.
WCF-integráció más Microsoft-technológiákkal
A WCF egy rugalmas platform. Ezen rendkívüli rugalmasság miatt a WCF-et számos más Microsoft-termékben is használják. A WCF alapjainak megismerésével azonnali előnyt élvez, ha ezen termékek bármelyikét is használja.
A WCF-vel való párosítás első technológiája a Windows Workflow Foundation (WF) volt. A munkafolyamatok leegyszerűsítik az alkalmazásfejlesztést a munkafolyamat lépéseinek "tevékenységekként" való beágyazásával. A Windows Workflow Foundation első verziójában a fejlesztőnek létre kellett hoznia egy gazdagépet a munkafolyamathoz. A Windows Workflow Foundation következő verziója integrálva lett a WCF-sel. Ez lehetővé tette, hogy bármely munkafolyamat könnyen üzemeltethető legyen egy WCF-szolgáltatásban. Ezt úgy teheti meg, hogy automatikusan kiválasztja a WF/WCF projekttípust a Visual Studio 2012-ben vagy újabb verziójában.
A Microsoft BizTalk Server R2 kommunikációs technológiaként is használja a WCF-et. A BizTalk úgy lett kialakítva, hogy adatokat fogadjon és alakítson át egy szabványosított formátumból egy másikba. Az üzeneteket a központi üzenetmezőbe kell kézbesíteni, ahol az üzenet átalakítható szigorú leképezéssel vagy a BizTalk egyik funkciójával, például a munkafolyamat-motorjával. A BizTalk mostantól a WCF Üzletági (LOB) adapter használatával küldhet üzeneteket az üzenetmezőbe.
A Windows Server AppFabric alkalmazáskiszolgáló üzemeltetési funkciói kifejezetten a WCF-et kommunikációra használó alkalmazások üzembe helyezésére és kezelésére szolgálnak. Az üzemeltetési funkciók közé tartoznak a kifejezetten WCF-kompatibilis alkalmazásokhoz tervezett gazdag eszközök és konfigurációs lehetőségek.