Sdílet prostřednictvím


Služby Windows Communication Foundation a služby WCF Data Services v sadě Visual Studio

 

Publikováno: duben 2016

Visual Studio poskytuje nástroje pro práci s Windows Communication Foundation (WCF) a WCF Data Services, technologie společnosti Microsoft pro vytváření distribuovaných aplikací. Toto téma obsahuje úvod do služeb z Visual Studio perspektivy. Úplné dokumentaci v tématu WCF Data Services 4.5.

Co je WCF?

Windows Communication Foundation (WCF) je jednotná architektura pro vytváření zabezpečenou, spolehlivou, zpracované a interoperabilní distribuovaných aplikací. Nahradí starší verze technologií meziprocesová komunikace například ASMX webové služby, .NET Remoting, Enterprise Services (DCOM) a služby MSMQ. WCF spojuje funkce všech těchto technologií v rámci jednotný programovací model. To zjednodušuje možnosti vývoje distribuovaných aplikací.

Co jsou WCF Data Services

WCF Data Services jsou služby, které komunikují přímo s databází, což vám umožní vrátit data, jako je například pomocí standardních operací protokolu HTTP GET, POST, PUT nebo odstranit. Obecně platí WCF Data Services jsou vhodná pro aplikace, které slouží k vytváření, aktualizaci nebo odstranění záznamů z databáze. Další informace naleznete v tématu WCF Data Services 4.5.

Model programování WCF

Programovací model WCF je založen na komunikaci mezi dvěma entitami: klienta WCF a služby WCF. Programovací model je zapouzdřený v System.ServiceModel oboru názvů v .NET Framework.

Služby WCF

Služby WCF je založena na rozhraní, které definuje kontrakt mezi službou a klienta. Je označena ServiceContractAttribute atribut, jak je znázorněno v následujícím kódu:

    [ServiceContract]
    public interface IService1
<ServiceContract()>
Public Interface IService1
        [OperationContract]
        string GetData(string value);
    <OperationContract()>
    Function GetData(ByVal value As String) As String

Definovat funkce nebo metody, které jsou vystaveny službou WCF jejich označením OperationContractAttribute atributu. Kromě toho můžete vystavit serializovaná data označením složeného typu DataContractAttribute atributu. To umožňuje datové vazby v klientovi.

Po definování rozhraní a jeho metody jsou zapouzdřeny ve třídě, která implementuje rozhraní. Jediná třída služby WCF můžete implementovat více kontraktů služby.

Služba WCF je vystavena pro užívání prostřednictvím co je označován jako koncový bod. Koncový bod poskytuje jediný způsob, jak komunikovat se službou; službu nelze přistupovat prostřednictvím přímého odkazu, stejně jako u jiných tříd.

Koncový bod se skládá z adresy, vazby a kontraktu. Adresa definuje, kde se služba nachází; To může být adresa URL, adresy FTP nebo sítě nebo místní cestu. Vazba definuje způsob, jakým komunikovat se službou. Vazby WCF poskytují univerzální modelu pro zadání protokolem HTTP nebo FTP, jako je například ověřování systému Windows nebo uživatelská jména a hesla, mechanismus zabezpečení a mnohem více. Kontrakt obsahuje operace, které jsou vystaveny třídou služby WCF.

Víc koncových bodů může být odhalen jedné služby WCF. To umožňuje různé klienty komunikovat se stejnou službou různými způsoby. Bankovní služba může například poskytnout jeden koncový bod pro zaměstnance a jiný pro externí zákazníky, každý pomocí jiné adresy, vazby, anebo smlouvy.

Klienta WCF

Klient WCF se skládá z proxy který umožňuje aplikaci komunikovat se službou WCF a koncový bod, který odpovídá koncovému bodu definovanému pro službu. Server proxy je generována na straně klienta v souboru app.config a obsahuje informace o typy a metody, které jsou vystaveny službou. Pro služby, které vystavují více koncových bodů může klient vybrat ten, který nejlépe odpovídá jeho potřebám, například komunikaci přes protokol HTTP a použití ověřování systému Windows.

Po vytvoření klienta WCF odkazujete na službu ve vašem kódu stejně jako jakýkoli jiný objekt. Například volání GetData Metoda uvedena výše, byste měli psát kód, který se podobá následující:

        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;
        }
    Private Sub Button1_Click(ByVal sender As System.Object, _
  ByVal e As System.EventArgs) Handles Button1.Click
        Dim client As New ServiceReference1.Service1Client
        Dim returnString As String

        returnString = client.GetData(TextBox1.Text)
        Label1.Text = returnString
    End Sub

Nástroje WCF v sadě Visual Studio

Visual Studio poskytuje nástroje, které vám pomohou vytvořit služby WCF i klienty WCF. Návod, který ukazuje nástroje, najdete v části Návod: Vytvoření jednoduché služby WCF ve Windows Forms.

Vytvoření a testování služeb WCF

Můžete použít WCF Visual Studio šablony jako základ k rychlému vytvoření vlastní služby. Ladění a testování služby lze pak použít automatického hostitele služby WCF a testovacího klienta WCF. Tyto nástroje společně poskytují rychlý a pohodlný ladicí a testovací cyklus a eliminuje požadavek na potvrzení model hostování včas.

Šablony WCF

WCF Visual Studio šablony poskytují základní strukturu třídy pro vývoj služby. Několik šablon WCF je k dispozici v Přidat nový projekt dialogové okno. Mezi ně patří projektů knihovny služby WCF, webové servery služby WCF a šablony položek služby WCF.

Když vyberete šablonu, soubory budou přidány pro smlouvy o poskytování služeb, implementaci služby a konfigurace služby. Všechny nezbytné atributy jsou již přidány, vytvoření jednoduchého typu "Hello World" služby, a není nutné psát jakýkoli kód. Samozřejmě můžete přidat kód k poskytnutí funkcí a metod pro skutečnou službu, ale šablony poskytují základ.

Další informace o šablonách WCF naleznete v tématu Šablony Visual Studia pro WCF.

Hostitel služby WCF

Při spuštění Visual Studio ladicího programu (stisknutím klávesy F5) pro projekt služby WCF, hostitel služby WCF, nástroj se automaticky spustí k hostování služby místně. Hostitel služby WCF vytvoří výčet služeb v projektu služby WCF, načte konfiguraci projektu a vytvoří instanci hostitele pro každou službu, kterou najde.

Pomocí hostitele služby WCF můžete testovat službu WCF bez psaní dalšího kódu nebo odeslání na konkrétním hostiteli během vývoje.

Další informace o hostiteli služby WCF naleznete v tématu Hostitel služby WCF (WcfSvcHost.exe).

Testovací klient WCF

Nástroj testovacího klienta WCF umožňuje zadat vstupní parametry, odeslat tento vstup do služby WCF a zobrazit odpověď, kterou služba odešle zpět. Poskytuje pohodlný službu testování zkušeností při kombinaci s hostitelem služby WCF. Nástroj lze nalézt ve složce \Common7\IDE, která pro Visual Studio 2015 nainstalován v jednotce C: je zde: C:\Program Files (x86) \Microsoft Visual Studio 14.0\Common7\IDE\.

Když stisknete klávesu F5 k ladění projektu služby WCF, Testovací klient WCF otevře a zobrazí seznam koncových bodů služby, které jsou definovány v konfiguračním souboru. Můžete testovat parametry a spustit službu a opakujte tento postup nepřetržitě testování a ověření služby.

Další informace o testovací klient WCF naleznete v tématu WCF Test Client (WcfTestClient.exe).

Přístup ke službám WCF v sadě Visual Studio

Visual Studio zjednodušuje vytváření klientů WCF, automatické generování proxy a koncového bodu služeb, které můžete přidat pomocí Přidat odkaz na službu dialogové okno. Všechny potřebné informace o konfiguraci je přidán do souboru app.config. Většinu času, vše, co je nutné provést je vytvořit instanci služby, aby bylo možné jej použít.

Přidat odkaz na službu dialogové okno umožňuje zadat adresu služby nebo vyhledat službu, která je definována v rámci vašeho řešení. Dialogové okno vrací seznam služby a operace poskytují tyto služby. Také vám umožňuje definovat obor názvů, pomocí kterého bude odkazovat na službu v kódu.

Nastavit odkazy na služby dialogové okno umožňuje přizpůsobit konfiguraci služby. Můžete změnit adresu pro službu, určit úroveň přístupu, asynchronní chování a typy kontraktů zpráv a nakonfigurovat opětovné použití typu.

Postupy: Vyberte koncový bod služby

Některé služby Windows Communication Foundation (WCF) vystavují více koncových bodů, pomocí kterých klient může komunikovat se službou. Například služba může vystavit jeden koncový bod, který používá protokol HTTP vazby a uživatelské jméno nebo heslo zabezpečení a druhý koncový bod, který používá FTP a ověřování systému Windows. První koncový bod by mohly používat aplikace, které přístup ke službě mimo bránu firewall, zatímco druhý mohou být použity v síti intranet.

V takovém případě můžete zadat endpointConfigurationName jako parametr do konstruktoru pro odkaz na službu.

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Chcete-li vybrat koncový bod služby

  1. Přidat odkaz na službu WCF pravým tlačítkem myši na uzel projektu v Průzkumníku řešení a zvolíte Přidání odkazu na službu

  2. V editoru kódu přidejte konstruktor pro odkaz na službu:

    Dim proxy As New ServiceReference.Service1Client(  
    
    ServiceReference.Service1Client proxy = new ServiceReference.Service1Client(  
    

    Poznámka

    Nahraďte ServiceReference s obor názvů pro odkaz na službu a nahradit Service1Client s názvem služby.

  3. Zobrazí se seznam technologie IntelliSense s přetíženími pro konstruktor. Vyberte endpointConfigurationName As String přetížení.

  4. Po přetížení zadejte = ConfigurationName, kde ConfigurationName je název koncového bodu, který chcete použít.

    Poznámka

    Pokud neznáte názvy koncové body k dispozici, najdete je v souboru app.config.

Chcete-li najít koncové body k dispozici pro službu WCF

  1. V Průzkumníku řešení, klikněte pravým tlačítkem na soubor app.config pro projekt, který obsahuje odkaz na službu a poté klikněte na tlačítko Otevřete. Soubor se zobrazí v editoru kódu.

  2. Hledat <Client> značky v souboru.

  3. Vyhledejte pod <Client> značka pro značku, která začíná textem <Endpoint>.

    Pokud odkaz na službu poskytuje více koncových bodů, bude existovat dvě nebo více <Endpoint značky.

  4. Uvnitř <EndPoint> Značka najdete name="SomeService" parametr (kde SomeService představuje název koncového bodu). Toto je název koncového bodu, který lze předat endpointConfigurationName As String přetížení konstruktoru pro odkaz na službu.

Postupy: asynchronní volání metody služby

Většina metod ve službě Windows Communication Foundation (WCF) může být volána synchronně nebo asynchronně. Volání metody asynchronně umožňuje aplikaci pokračovat v práci, zatímco metoda je volána při funguje s pomalým připojením.

Ve výchozím nastavení pokud je přidán odkaz na službu do projektu je nakonfigurován k volání metod synchronně. Můžete změnit chování volání metody asynchronně změnou nastavení v Nastavit odkaz na službu dialogové okno.

Poznámka

Tato možnost nastavena na základě služby. Pokud jedna metoda služby volána asynchronně, všechny metody musí být volána asynchronně.

Poznámka

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Chcete-li volat metodu služby asynchronně

  1. V Průzkumníku řešení, vyberte odkaz na službu.

  2. Na projektu nabídce klikněte na tlačítko Nastavit odkaz na službu.

  3. V Nastavit odkaz na službu dialogové okno, vyberte Generovat asynchronní operace zaškrtávací políčko.

Postupy: svázání dat vrácených pomocí služby

Můžete svázat data vrácená službou Windows Communication Foundation (WCF) do ovládacího prvku, stejně jako jakýkoli jiný zdroj dat. můžete svázat do ovládacího prvku. Když přidáte odkaz na službu WCF, pokud služba obsahuje složené typy, které vracejí data, jsou automaticky přidány do zdroje dat okna.

K vytvoření vazby ovládacího prvku do jednoho datového pole vrácené služby WCF

  1. Na Data nabídky, klikněte na tlačítko Zobrazit zdroje dat.Zdroje dat zobrazí se okno.

  2. V zdroje dat okna, rozbalte uzel pro odkaz na službu. Zobrazí se všechny složené typy vrácené službou.

  3. Rozbalte uzel pro typ. Pole data pro tento typ se zobrazí.

  4. Vyberte pole a klepněte na rozevírací šipku zobrazte seznam ovládacích prvků, které jsou k dispozici pro datový typ.

  5. Klikněte na typ ovládacího prvku, který chcete vytvořit vazbu.

  6. Přetáhněte pole do formuláře. Ovládací prvek bude přidán do formuláře společně s BindingSource komponenty a BindingNavigator komponenty.

  7. Opakujte kroky 4 až 6 pro jakékoli jiné pole, které chcete vytvořit vazbu.

Chcete-li vytvořit vazbu ovládacího prvku složeného typu vráceného službou WCF

  1. Na Data klepněte na příkaz Zobrazit zdroje dat.Zdroje dat zobrazí se okno.

  2. V zdroje dat okna, rozbalte uzel pro odkaz na službu. Zobrazí se všechny složené typy vrácené službou.

  3. Vyberte uzel pro typ a klikněte na šipku rozevíracího seznamu a zobrazit seznam dostupných možností.

  4. Klikněte na možnost DataGridView k zobrazení dat v mřížce nebo Podrobnosti k zobrazení dat v jednotlivých ovládacích prvků.

  5. Přetáhněte uzel do formuláře. Ovládací prvky budou přidány do formuláře společně s BindingSource komponenty a BindingNavigator komponenty.

Postupy: Konfigurace služby pro opakované použití existující typy

Při odkazu na službu se přidá do projektu, všechny typy definované v rámci služby jsou generovány v místním projektu. V mnoha případech to vytvoří duplicitní typy, když služba používá běžné .NET Framework typy nebo když jsou typy definovány ve sdílené knihovně.

Chcete-li se tomuto problému vyhnout, typy v odkazovaných sestaveních jsou sdíleny ve výchozím nastavení. Pokud chcete zakázat sdílení typu pro jedno nebo více sestavení, můžete tak učinit tak v Nastavit odkazy na služby dialogové okno.

Chcete-li zakázat sdílení typu ve jednoho sestavení

  1. V Průzkumníku řešení, vyberte odkaz na službu.

  2. Na projektu nabídce klikněte na tlačítko Nastavit odkaz na službu.

  3. V Nastavit odkazy na služby dialogové okno, vyberte možnost znovu použít typy v odkazovaných sestaveních.

  4. Zaškrtněte políčko pro každé sestavení, ve kterém chcete povolit sdílení typu. Chcete-li zakázat sdílení typu pro sestavení, ponechejte políčko zaškrtnuto.

Chcete-li zakázat sdílení typu ve všech sestavení

  1. V Průzkumníku řešení, vyberte odkaz na službu.

  2. Na projektu nabídce klikněte na tlačítko Nastavit odkaz na službu.

  3. V Nastavit odkazy na služby dialogové okno, zrušte znovu použít typy v odkazovaných sestaveních zaškrtávací políčko.

Související témata

Nadpis Popis
Návod: Vytvoření jednoduché služby WCF ve Windows Forms Poskytuje podrobnou demonstraci vytvoření a použití služeb WCF v Visual Studio.
Návod: Vytvoření datové služby WCF pomocí grafického subsystému WPF a Entity Framework Poskytuje podrobnou demonstraci vytvoření a použití WCF Data Services v Visual Studio.
Používání vývojářských nástrojů WCF Popisuje postup vytvoření a testování služeb WCF v Visual Studio.
How to: Add, Update, or Remove a Service Reference Popisuje, jak přidat, aktualizovat nebo odebrat z projektu služby WCF.
How to: Add, Update, or Remove a WCF Data Service Reference Popisuje, jak odkazovat a používat WCF Data Services v Visual Studio.
Troubleshooting Service References Uvádí některé běžné chyby, které se mohou vyskytnout s odkazy na služby a jak jim zabránit.
Ladění služeb WCF Popisuje běžné problémy ladění a techniky, které mohou nastat při ladění služeb WCF.
Windows Communication Foundation Authentication Service Overview Popisuje, jak používat WCF k poskytnutí služby role webového serveru.
Návod: Vytvoření víceúrovňové datové aplikace Obsahuje podrobné pokyny pro vytvoření typové datové sady a oddělení kódu TableAdapter a datové sady do více projektů.
Configure Service Reference Dialog Box Popisuje prvky uživatelského rozhraní Nastavit odkaz na službu dialogové okno.

Odkaz

System.ServiceModel

System.Data.Services

Viz také

Visual Studio tools dat pro rozhraní .NET