Megosztás a következőn keresztül:


Windows Communication Foundation Services és WCF Data Services a Visual Studióban

A Visual Studio eszközöket biztosít a Windows Communication Foundation (WCF) és a WCF Data Services, a Microsoft elosztott alkalmazások létrehozására szolgáló technológiáinak használatához. Ez a cikk a Visual Studio szempontjából nyújt bevezetést a szolgáltatásokba. A teljes dokumentációt a WCF Data Services 4.5-ös verziójában találja.

A Windows Communication Foundation (WCF) egy egységes keretrendszer biztonságos, megbízható, átjárható és interoperálható elosztott alkalmazások létrehozásához. Lecseréli a régebbi folyamatközi kommunikációs technológiákat, például az ASMX-webszolgáltatásokat, a .NET-remotingot, az Enterprise Servicest (elosztott összetevőobjektum-modell (DCOM) és a Microsoft Üzenetsort (MSMQ). A WCF egységes programozási modellben egyesíti ezen technológiák funkcióit. Ez a megközelítés leegyszerűsíti az elosztott alkalmazások fejlesztésének tapasztalatait.

WCF Data Services

A WCF Data Services az Open Data (Open Data Protocol (OData)) protokoll szabvány implementációja. A WCF Data Services lehetővé teszi táblázatos adatok közzétételét REST API-k készleteként, amely lehetővé teszi az adatok visszaadását szabványos HTTP-parancsokkal, például GET, POSTés PUTDELETE. A kiszolgálóoldalon a ASP.NET Web API felülírja a WCF Data Servicest az új OData-szolgáltatások létrehozásához. A WCF Data Services ügyféloldali kódtára továbbra is jó választás oData-szolgáltatások Visual Studióból származó .NET-alkalmazásokban való használatához (Project>Add Service Reference). További információ: WCF Data Services 4.5.

WCF programozási modell

A WCF programozási modell két entitás közötti kommunikáción alapul: egy WCF-szolgáltatáson és egy WCF-ügyfélen. A programozási modell a .NET névterébe System.ServiceModel van beágyazva.

WCF szolgáltatás

A WCF-szolgáltatások olyan interfészen alapulnak, amely meghatározza a szolgáltatás és az ügyfél közötti szerződést. A szolgáltatás attribútummal ServiceContractAttribute van megjelölve, ahogy az a következő kódban is látható:

[ServiceContract]
public interface IService1

A WCF-szolgáltatás által közzétett függvényeket vagy metódusokat attribútummal OperationContractAttribute jelölheti meg.

[OperationContract]
string GetData(string value);

A szerializált adatokat úgy is közzéteheti, hogy egy összetett típust attribútummal DataContractAttribute jelöl meg, amely lehetővé teszi az ügyfél adatkötését.

Az interfész és a metódusok definiálása után a rendszer egy olyan osztályba foglalja őket, amely megvalósítja az interfészt. Egyetlen WCF-szolgáltatásosztály több szolgáltatási szerződést is megvalósíthat.

A WCF-szolgáltatás egy végponton keresztül érhető el használat céljából. A végpont biztosítja az egyetlen módot a szolgáltatással való kommunikációra. Más osztályokhoz hasonlóan nem férhet hozzá a szolgáltatáshoz közvetlen hivatkozással.

A végpont egy címből, egy kötésből és egy szerződésből áll. A cím határozza meg a szolgáltatás helyét, például URL-címet, FTP-címet vagy hálózati vagy helyi elérési utat. A kötés határozza meg a szolgáltatással való kommunikáció módját. A WCF-kötések sokoldalú modellt biztosítanak egy olyan protokoll megadásához, mint a HTTP vagy az FTP egy olyan biztonsági mechanizmussal, mint a Windows-hitelesítés vagy a felhasználónevek és jelszavak. A szerződés tartalmazza a WCF szolgáltatásosztály által közzétett műveleteket.

Egyetlen WCF-szolgáltatáshoz több végpont is elérhető. Ez a megközelítés lehetővé teszi, hogy a különböző ügyfelek különböző módokon kommunikáljanak ugyanazzal a szolgáltatással. Egy banki szolgáltatás például egy végpontot biztosíthat az alkalmazottaknak, egy másikat pedig külső ügyfeleknek, ahol mindegyik más címet, kötést vagy szerződést használ.

WCF-ügyfél

A WCF-ügyfél egy proxyból áll, amely lehetővé teszi, hogy az alkalmazás kommunikáljon egy WCF-szolgáltatással, és egy olyan végpontból, amely megfelel a szolgáltatáshoz definiált végpontnak. A proxy az ügyféloldalon jön létre a app.config fájlban, és információkat tartalmaz a szolgáltatás által közzétett típusokról és metódusokról. A több végpontot elérhetővé tevő szolgáltatások esetében az ügyfél kiválaszthatja az igényeinek leginkább megfelelőt, például HTTP-en keresztüli kommunikációhoz és a Windows-hitelesítés használatához.

A WCF-ügyfél létrehozása után ugyanúgy hivatkozhat a szolgáltatásra a kódban, mint bármely más objektumban. A korábban bemutatott metódus meghívásához GetData például az alábbi példához hasonló kódot kell írnia:

private void button1_Click(System.Object sender, System.EventArgs e)
{
    ServiceReference1.Service1Client client = new
        ServiceReference1.Service1Client();
    string returnString;

    returnString = client.GetData(textBox1.Text);
    label1.Text = returnString;
}

WCF-eszközök a Visual Studióban

A Visual Studio eszközöket biztosít a WCF-szolgáltatások és a WCF-ügyfelek létrehozásához. További információ : Útmutató: Egyszerű WCF-szolgáltatás létrehozása a Windows Formsban.

WCF-szolgáltatások létrehozása és tesztelése

A WCF Visual Studio-sablonokkal gyorsan létrehozhatja saját szolgáltatását. Ezután használhatja a WCF szolgáltatás automatikus gazdagépét és a WCF-tesztügyfélt a szolgáltatás hibakereséséhez és teszteléséhez. Ezek az eszközök gyors és kényelmes hibakeresési és tesztelési ciklust biztosítanak, és kiküszöbölik azt a követelményt, hogy korai szakaszban kötelezze el magát egy üzemeltetési modell mellett.

WCF-sablonok

A WCF Visual Studio-sablonok alapszintű osztálystruktúrát biztosítanak a szolgáltatásfejlesztéshez. Az Új projekt hozzáadása párbeszédpanelen számos WCF-sablon érhető el, beleértve a WCF szolgáltatástár-projektjeit, a WCF szolgáltatás webhelyeit és a WCF szolgáltatáselem-sablonokat.

Amikor kiválaszt egy sablont, a rendszer fájlokat ad hozzá egy szolgáltatási szerződéshez, egy szolgáltatás-implementációhoz és egy szolgáltatáskonfigurációhoz. Az összes szükséges attribútum már hozzáadva, létrehozva egy egyszerű "Hello World" típusú szolgáltatást, és nem kellett kódot írnia. A valós szolgáltatáshoz függvényeket és metódusokat biztosító kódot adhat hozzá, de a sablonok biztosítják az alapvető alapokat.

További információ: WCF Visual Studio-sablonok.

WCF-szolgáltatásgazda

Amikor elindítja a Visual Studio Hibakeresőt (az F5 kiválasztásával) egy WCF-szolgáltatásprojekthez, a WCF szolgáltatásgazda eszköz automatikusan elindul a szolgáltatás helyi üzemeltetéséhez. Az eszköz számba adja a WCF szolgáltatásprojekt szolgáltatásait, betölti a projekt konfigurációját, és minden egyes megtalált szolgáltatáshoz létrehoz egy gazdagépet.

Az eszköz segítséget nyújt a WCF-szolgáltatások tesztelésében anélkül, hogy további kódot írnál vagy elköteleződnél egy adott gazdagép mellett a fejlesztés során. További információ: WCF szolgáltatásgazda (WcfSvcHost.exe).

WCF-tesztügyfél

A WCF tesztügyfél eszköz lehetővé teszi a tesztparaméterek bevitelét, a bemenet elküldését egy WCF-szolgáltatásnak, és megtekintheti a szolgáltatás válaszát. Az eszköz kényelmes szolgáltatástesztelési élményt nyújt, amikor kombinálja a WCF szolgáltatásgazda szolgáltatással. Az eszköz helye Common7\IDE a Visual Studio telepítési mappájában.

Amikor egy WCF-szolgáltatásprojekt hibakereséséhez az F5 lehetőséget választja, a WCF-tesztügyfél megnyílik, és megjeleníti a konfigurációs fájlban definiált szolgáltatásvégpontok listáját. Tesztelheti a paramétereket, és elindíthatja a szolgáltatást, és megismételheti ezt a folyamatot a szolgáltatás folyamatos teszteléséhez és érvényesítéséhez. További információ: WCF Test Client (WcfTestClient.exe).

WCF-szolgáltatások elérése a Visual Studióban

A Visual Studio leegyszerűsíti a WCF-ügyfelek létrehozásának feladatát azáltal, hogy automatikusan létrehoz egy proxyt és végpontot a Szolgáltatások hozzáadása párbeszédpanelen hozzáadott szolgáltatásokhoz. Minden szükséges konfigurációs információ hozzá lesz adva a app.config fájlhoz. Az idő nagy részében mindössze annyit kell tennie, hogy példányosítja a szolgáltatást a használat megkezdéséhez.

A Szolgáltatás hozzáadása párbeszédpanelen megadhatja egy szolgáltatás címét, vagy megkeresheti a megoldásban definiált szolgáltatást. A rendszer a szolgáltatások által biztosított szolgáltatások és műveletek listáját adja vissza. A szolgáltatások kódban való hivatkozásához is megadhatja a névteret.

A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen testre szabhatja egy szolgáltatás konfigurációját. Módosíthatja a szolgáltatás címét, megadhatja a hozzáférési szintet, az aszinkron viselkedést és az üzenetszerződés típusát, és konfigurálhatja a típus újrafelhasználását.

Szolgáltatásvégpont

Egyes WCF-szolgáltatások több végpontot is elérhetővé tehetnek, amelyeken keresztül az ügyfelek kommunikálhatnak a szolgáltatással. Egy szolgáltatás egy HTTP-kötést használó végpontot tehet közzé felhasználónévvel és jelszóval, valamint egy második végpontot, amely FTP-t használ Windows-hitelesítéssel. Az első végpontot az alkalmazások használják a szolgáltatás tűzfalon kívüli elérésére, míg a második az intraneten használható.

Ebben a forgatókönyvben a endpointConfigurationName paramétert a szolgáltatáshivatkozás konstruktorának megadásával adja meg.

Megjegyzés:

A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.

Szolgáltatásvégpont kiválasztása

Válasszon ki egy szolgáltatásvégpontot az alábbi lépések végrehajtásával:

  1. Egy WCF-szolgáltatásra mutató hivatkozás hozzáadásához kattintson a jobb gombbal a projektcsomópontra a Megoldáskezelőben , és válassza a Szolgáltatáshivatkozás hozzáadása lehetőséget.

  2. A Kódszerkesztőben adjon hozzá egy konstruktort a szolgáltatáshivatkozáshoz. Cserélje le ServiceReference a szolgáltatáshivatkozás névterére, és cserélje le Service1Client a szolgáltatás nevére.

    ServiceReference.Service1Client proxy = new ServiceReference.Service1Client(
    

  1. A kód megadásakor megjelenik egy IntelliSense-lista, amely tartalmazza a konstruktor túlterheléseit. Válassza ki a túlterhelést endpointConfigurationName As String.

  2. A túlterhelés kiválasztása után adja meg az ="<ServiceEndpoint>" értéket, ahol az <ServiceEndpoint> a használni kívánt végpontszolgáltatás neve.

    Jótanács

    Az elérhető végpontok nevei a app.config fájlban vannak definiálva.

A WCF szolgáltatáshoz elérhető végpontok keresése

A WCF-szolgáltatáshoz elérhető végpontok megkereséséhez kövesse az alábbi lépéseket:

  1. A Megoldáskezelőben kattintson a jobb gombbal a szolgáltatáshivatkozást tartalmazó projekt app.config fájljára, majd válassza a Megnyitás lehetőséget. A fájl megnyílik a Kódszerkesztőben.

  2. Keresse meg a <Client> címkét a fájlban.

  3. <Client> A címkeszakaszban keressen egy beágyazott címkét, amely <Endpoint>-vel kezdődik.

    Ha a szolgáltatáshivatkozás több végpontot is biztosít, két vagy több <Endpoint> címke van.

  4. <EndPoint> A címkedefinícióban keresse meg a name="<ServiceEndpoint>" paramétert (ahol <ServiceEndpoint> a szolgáltatás végpontjának neve látható). Ez az érték annak a szolgáltatásvégpontnak a neve, amelyet át lehet adni a endpointConfigurationName As String konstruktor túlterhelésének, szolgáltatáshivatkozás céljából.

Szolgáltatásmódszerek aszinkron meghívása

A WCF-szolgáltatások legtöbb metódusa szinkron vagy aszinkron módon hívható meg. Amikor aszinkron módon hív meg egy metódust, az alkalmazás továbbra is dolgozhat a metódus meghívása közben. Ez a megközelítés akkor hasznos, ha a rendszer lassú kapcsolaton keresztül működik.

Amikor szolgáltatáshivatkozást ad hozzá egy projekthez, az alapértelmezett konfiguráció a metódusok szinkron meghívása. A szolgáltatáshivatkozás konfigurálása párbeszédpanelen módosíthatja a metódusok aszinkron meghívásának viselkedését.

A beállítás szolgáltatásonként van beállítva. Ha egy szolgáltatás egyik metódusát aszinkronnak nevezzük, az összes metódust aszinkron módon kell meghívni.

Megjegyzés:

A cikkben található utasítások a Visual Studióban elérhető interaktív fejlesztési felület (IDE) legújabb verzióját mutatják be. Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a felhasználói felület egyes elemeihez. Előfordulhat, hogy a Visual Studio egy másik verzióját vagy különböző környezeti beállításokat használ. További információ: Ideszemélyre szabása.

Metódus aszinkron meghívása

Ha aszinkron módon szeretne meghívni egy szolgáltatásmetódust, kövesse az alábbi lépéseket:

  1. A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.

  2. Válassza a ProjectConfigure Service Reference (Szolgáltatás konfigurálása)> referenciát.

  3. A Szolgáltatáshivatkozás konfigurálása párbeszédpanelen jelölje be az Aszinkron műveletek létrehozása jelölőnégyzetet.

Szolgáltatás által visszaadott kötési adatok

A WCF-szolgáltatás által visszaadott adatokat ugyanúgy kötheti egy vezérlőhöz, mint bármely más adatforrást egy vezérlőhöz. Ha egy WCF-szolgáltatásra mutató hivatkozást ad hozzá, ha a szolgáltatás olyan összetett típusokat tartalmaz, amelyek adatokat adnak vissza, azok automatikusan bekerülnek az Adatforrások ablakba.

A vezérlő kötése a WCF szolgáltatás által visszaadott adatmezőhöz

Ha egy vezérlőt egy WCF-szolgáltatás által visszaadott egyetlen adatmezőhöz szeretne kötni, kövesse az alábbi lépéseket:

  1. Válassza az Adatforrások>megjelenítése lehetőséget. Megnyílik az Adatforrások ablak.

  2. Az Adatforrások ablakban bontsa ki a szolgáltatáshivatkozás csomópontját. A szolgáltatásmegjelenítés által visszaadott összes összetett típus.

  3. Bontsa ki a típuscsomópontot, és tekintse meg a típus adatmezőit.

  4. Jelöljön ki egy mezőt, és bontsa ki a legördülő listát az adattípushoz elérhető vezérlők listájának megtekintéséhez.

  5. Válassza ki azt a vezérlőtípust, amelyhez kötést szeretne kötni.

  6. Húzza a mezőt egy űrlapra. A vezérlő hozzáadódik az űrlaphoz egy BindingSource összetevővel és egy BindingNavigator összetevővel együtt.

  7. Ismételje meg a 4–6. lépést, és kösse össze a többi mezőt.

Kötésvezérlés a WCF szolgáltatás által visszaadott összetett típushoz

Ha egy vezérlőt egy WCF-szolgáltatás által visszaadott összetett típushoz szeretne kötni, kövesse az alábbi lépéseket:

  1. Válassza az Adatforrások>megjelenítése lehetőséget. Megnyílik az Adatforrások ablak.

  2. Az Adatforrások ablakban bontsa ki a szolgáltatáshivatkozás csomópontját. A szolgáltatásmegjelenítés által visszaadott összes összetett típus.

  3. Válasszon ki egy csomópontot egy típushoz, és bontsa ki a legördülő listát az elérhető lehetőségek listájának megtekintéséhez.

  4. Válassza a DataGridView lehetőséget, és tekintse meg az adatokat egy rácson, vagy válassza a Részletek lehetőséget, és tekintse meg az adatokat egyéni vezérlőkkel.

  5. Húzza a csomópontot az űrlapra. A vezérlők hozzáadódnak az űrlaphoz egy BindingSource összetevővel és egy BindingNavigator összetevővel együtt.

Szolgáltatások konfigurálása meglévő típusok újrafelhasználására

Amikor szolgáltatáshivatkozást ad hozzá egy projekthez, a szolgáltatásban definiált összes típus a helyi projektben jön létre. Ez a megközelítés sok esetben duplikált típusokat hoz létre, amikor egy szolgáltatás általános .NET-típusokat használ, vagy amikor a típusok egy megosztott tárban vannak definiálva.

A probléma elkerülése érdekében a hivatkozott szerelvények típusai alapértelmezés szerint meg vannak osztva. Ha le szeretné tiltani a típusmegosztást egy vagy több összeállítás esetében, módosítsa a beállításokat a Szolgáltatáshivatkozások konfigurálása párbeszédpanelen.

Típusmegosztás letiltása egy szerelvényben

Az alábbi lépések végrehajtásával letilthatja a típusmegosztást egyetlen szerelvényben:

  1. A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.

  2. Válassza a Projekt>Szolgáltatás referencia konfigurálása.

  3. A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen jelölje be a megadott hivatkozott szerelvények újrafelhasználási típusait .

  4. Jelölje be minden olyan szerelvény jelölőnégyzetét, ahol engedélyezni szeretné a típusmegosztást. Ha le szeretné tiltani egy szerelvény típusmegosztását, hagyja üresen a jelölőnégyzetet.

Típusmegosztás letiltása az összes szerelvényekben

A típusmegosztást az alábbi lépésekkel is letilthatja az összes szerelvényekben:

  1. A Megoldáskezelőben válassza ki a szolgáltatáshivatkozást.

  2. Válassza a Project>Szolgáltatás-referencia konfigurálása lehetőséget.

  3. A Szolgáltatáshivatkozások konfigurálása párbeszédpanelen törölje a jelet a hivatkozott szerelvények típusainak újrafelhasználása jelölőnégyzetből.

Hasonló fogalmak felfedezése

Az alábbi cikkek a WCF-szolgáltatásokkal és a WCF-adatszolgáltatásokkal kapcsolatos fogalmakat és eljárásokat ismertetik.

Cím Leírás
Útmutató: Alapszintű WCF-szolgáltatás létrehozása a Windows Formsban Részletes bemutatót nyújt a WCF-szolgáltatások Visual Studióban való létrehozásáról és használatáról.
Útmutató: WCF-adatszolgáltatás létrehozása WPF és Entity Framework használatával Részletes bemutatót nyújt a WCF Data Services Visual Studióban való létrehozásáról és használatáról.
A WCF fejlesztői eszközeinek használata Ismerteti, hogyan hozhat létre és tesztelhet WCF-szolgáltatásokat a Visual Studióban.
Útmutató: WCF-adatszolgáltatás-referencia hozzáadása, frissítése vagy eltávolítása Ismerteti, hogyan keresheti meg a WCF Data Services szolgáltatást a megoldásban a Szolgáltatás hozzáadása párbeszédpanel használatával.
Szolgáltatáshivatkozások hibaelhárítása A szolgáltatáshivatkozásokkal és azok megelőzésével kapcsolatos gyakori hibákat mutatja be.
WCF-szolgáltatások hibakeresése A WCF-szolgáltatások hibakeresése során előforduló gyakori hibakeresési problémákat és technikákat ismerteti.
Útmutató: N szintű adatalkalmazás létrehozása Részletes útmutatást nyújt egy gépelt adatkészlet létrehozásához, valamint a TableAdapter és az adatkészlet kódjának több projektre való elkülönítéséhez.
Tekintse át a Szolgáltatáshivatkozás konfigurálása párbeszédpanelt A Szolgáltatáshivatkozás konfigurálása párbeszédpanel felhasználói felületi elemeit ismerteti.