Služby Windows Communication Foundation a datové služby WCF v sadě Visual Studio
Visual Studio 2008 poskytuje nástroje pro práci s Windows Communication Foundation (WCF) a WCF Data Services, technologie společnosti Microsoft k vytváření distribuovaných aplikací.Toto téma obsahuje úvod do služeb z perspektivy Visual Studio.
Co je WCF?
Windows Communication Foundation (WCF) je jednotná architektura pro vytváření bezpečných, spolehlivých, s podporou transakcí a interoperabilních distribuovaných aplikací.V dřívějších verzích Visual Studio bylo k dispozici několik technologií, které mohly být využity pro komunikaci mezi aplikacemi.
Pokud jste chtěli sdílet informace tak, aby byly povoleny k přístupu z libovolné platformy, použili byste webovou službu (označovanou také jako ASMX webová služba).Pokud jste chtěli pouze přesunout data mezi klientem a serverem, kteří byli spuštěni v operačním systému Windows, použili byste .NET Remoting.Pokud jste chtěli transakční komunikaci, použili byste Enterprise Services (DCOM) nebo pokud jste chtěli model ve frontě, použili byste službu Řízení front zpráv (také známo jako služba MSMQ).
WCF spojuje funkce všech těchto technologií v rámci jednotného programovacího modelu.To zjednodušuje možnosti vývoje distribuovaných aplikací.
Co jsou WCF datové služby
WCF Data Services jsou služby, které spolupracují přímo s databází, což vám umožní vrátit data, například pomocí standardních operací protokolu HTTP jako jsou GET, POST, PUT nebo DELETE.Obecně jsou WCF Data Services vhodné pro aplikace, které slouží k vytvoření, aktualizaci nebo odstranění záznamů v databázi.Další informace naleznete v ADO.Framework NET Data Services.
Programovací model WCF
Model programování WCF je založen na komunikaci mezi dvěma subjekty: klient WCF a služby WCF.Programovací model je zapouzdřený v oboru názvů System.ServiceModel v .NET Framework.
Služba WCF
Služba WCF je založena na rozhraní, které definuje kontrakt mezi klientem a službou.Je označeno atributem ServiceContractAttribute, jak je ukázáno v následujícím kódu:
<ServiceContract()>
Public Interface IService1
[ServiceContract]
public interface IService1
<OperationContract()>
Function GetData(ByVal value As String) As String
[OperationContract]
string GetData(string value);
Definujete-li funkce nebo metody, které jsou vystaveny službou WCF jejich označením atributem OperationContractAttribute.Navíc můžete vystavit serializovaná data označením složeného typu atributem DataContractAttribute.Toto umožňuje vázání dat v klientovi.
Potom, co jsou rozhraní a jeho metody definovány, jsou zapouzdřeny ve třídě, která implementuje rozhraní.Jediná třída služby WCF může implementovat více kontraktů služby.
Služba WCF je vystavena pro užívání prostřednictvím toho, co se nazývá koncový bod.Koncový bod poskytuje jediný způsob, jak lze komunikovat se službou; nelze získat přístup k službě prostřednictvím přímého odkazu, jako byste to udělali s jinými třídami.
Koncový bod se skládá z adresy, vazby a kontraktu.Adresa definuje, kde je služba umístěna; to by mohla být adresa URL, adresa protokolu FTP, síťová nebo místní cesta.Vazba definuje způsob, jakým komunikujete se službou.Vazby WCF poskytují všestranný model pro určující protokol jako například protokol HTTP nebo protokol FTP, bezpečnostní mechanismus, jako je například ověřování systému Windows nebo uživatelské jména a hesla a mnohem více.Kontrakt obsahuje operace, které jsou vystaveny třídou služby WCF.
Více koncových bodů může být vystaveno jedinou službou WCF.To umožňuje různým klientům komunikovat různými způsoby se stejnou službou.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 a/nebo kontraktu.
Klient WCF
Klient WCF se skládá z proxy serveru, která umožňuje aplikaci komunikovat se službou WCF a koncového bodu, který odpovídá koncovému bodu definovanému pro službu.Proxy server je generován na straně klienta v souboru app.config a obsahuje informace o typech a metodách, které jsou vystaveny službou.Pro služby, které vystavují více koncových bodů může klient vybrat ten, který nejlépe vyhovuje jeho potřebám, například pro komunikaci přes protokol HTTP a použití ověřování systému Windows.
Po vytvoření klienta WCF odkazujete na službu ve svém kódu stejným způsobem jako libovolný jiný objekt.Chcete-li například volat metodu GetData, jak bylo ukázáno dříve, zapsali byste kód podobný následujícímu:
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
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;
}
Nástroje WCF v sadě Visual Studio
Visual Studio 2008 poskytuje nástroje, které vám pomůžou vytvořit služby WCF i klienty WCF.Podrobný návod, který demonstruje nástroje, naleznete v tématu Názorný postup: Vytváření a přístup ke službám WCF.
Vytváření a testování služeb WCF
Můžete použít šablony WCF Visual Studio jako základ k rychlému vytvoření vlastní služby.Potom můžete použít automatického hostitele služby WCF a testovacího klienta WCF k ladění a testování služby.Tyto nástroje společně poskytují rychlý a pohodlný ladicí a testovací cyklus a odstraňují požadavky na zápis do hostitelských modelů v počátečních fázích.
Šablony WCF
Šablony WCF Visual Studio poskytují základní strukturu třídy pro vývoj služby.Několik šablon WCF je k dispozici v dialogovém okně Přidat nový projekt.Toto zahrnuje projekty knihovny služby WCF, webové servery služby WCF a šablony položek služby WCF.
Když vyberete šablonu, soubory jsou přidány pro kontrakt služby, implementaci služby a konfiguraci služby.Všechny nezbytné atributy jsou již přidány, vytvoření jednoduchého typu služby "Ahoj světe", a nemusíte psát jakýkoli kód.Budete samozřejmě chtít 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 WCF Visual Studio Templates.
Hostitel služby WCF
Když spustíte ladicí program Visual Studio (stisknutím klávesy F5) pro projekt služby WCF, nástroj hostitele služby WCF se automaticky spustí k hostování služby místně.Hostitel služby WCF vyčte služby 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, aniž byste museli psát další kód nebo byli během vývoje vázáni na konkrétního hostitele.
Další informace o hostiteli služby WCF naleznete v tématu WCF Service Host (WcfSvcHost.exe).
Testovací klient WCF
Nástroj testovacího klienta WCF vám umožňuje zadat vstupní parametry, odeslat tento vstup do služby WCF a zobrazit odpověď, kterou služba odešle zpět.Poskytuje zkušenost pohodlného testování služby při kombinaci s hostitelem služby WCF.
Po stisknutí klávesy F5 k ladění projektu služby WCF se otevře testovací klient WCF a zobrazí seznam koncových bodů služby, které jsou definovány v konfiguračním souboru.Je možné testovat parametry a spustit službu a opakovat tento proces nepřetržitě k testování a ověřování vaší služby.
Další informace o testovacích klientech WCF naleznete v tématu WCF Test Client (WcfTestClient.exe).
Přístup k službám WCF v sadě Visual Studio
Visual Studiozjednodušuje vytváření klientů WCF, automatické generování proxy a koncový bod pro služby, které můžete přidat pomocí Přidat odkaz na službu dialogové okno.Všechny potřebné informace o konfiguraci jsou přidány do souboru app.config. Ve většině případů, vše, co je nutné provést, je vytvořit instanci služby, aby bylo možné ji použít.
Dialogové okno Přidat odkaz na službu umožňuje zadat adresu služby nebo vyhledat službu, která je definována ve vašem řešení.Dialogové okno vrací seznam služeb a operací, které poskytují tyto služby.Také vám to umožňuje definovat obor názvů, podle kterého budete odkazovat na službu v kódu.
Dialogové okno Nastavit odkaz na službu umožňuje přizpůsobit konfiguraci služby.Můžete změnit adresu služby, určit úroveň přístupu, asynchronní chování a typy kontraktů zpráv a nakonfigurovat opětovné použití typu.
Jak: Vyberte koncový bod služby
Některé služby Windows Communication Foundation (WCF) vystavují více koncových bodů, přes které klient může komunikovat se službou.Například služba může vystavit jeden koncový bod, který používá vazbu HTTP a zabezpečení uživatelské jméno / heslo a druhý koncový bod používající ověřování systému Windows protokolu FTP.První koncový bod se může používat aplikacemi, které přistupují ke službě mimo bránu firewall, vzhledem k tomu, že druhý může být používaný v síti intranet.
V takovém případě můžete určit endpointConfigurationName jako parametr do konstruktoru pro službu.
[!POZNÁMKA]
Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Vybrat koncový bod služby
Přidání odkazu do služby WCF.Další informace naleznete v tématu Jak: přidání, aktualizaci nebo odebrání odkazu služby.
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 oborem názvů pro odkaz na službu a nahraďte Service1Client názvem služby.
Zobrazí se seznam technologie IntelliSense s přetíženími pro konstruktor.Vyberte přetížení endpointConfigurationName As String.
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ých bodů, které jsou k dispozici, můžete je nalézt v souboru app.config.
Najít koncové body k dispozici pro službu WCF
V Průzkumníku řešení klikněte pravým tlačítkem myši na soubor app.config projektu, který obsahuje odkaz na službu a klikněte na tlačítko Otevřít.Soubor se zobrazí editoru kódu.
Vyhledejte značku <Client> v souboru.
Vyhledejte pod značkou <Client> tag, který začíná <Endpoint>.
Pokud odkaz na službu poskytuje více koncových bodů, bude zde dvě nebo více značek <Endpoint.
Uvnitř značky <EndPoint> najdete parametr name="SomeService" (kde SomeService představuje název koncového bodu).Toto je název koncového bodu, který může být předán do přetížení konstruktoru endpointConfigurationName As String pro odkaz na službu.
Jak: volání metody služby asynchronně
Většina metod ve službách 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 práci přes pomalé připojení.
Ve výchozím nastavení, když 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í metod na asynchronní změnou nastavení v dialogovém okně Nastavit odkaz na službu.
[!POZNÁMKA]
Tato možnost je nastavena na základě služby.Pokud je jedna metoda služby volána asynchronně, všechny metody musí být volány asynchronně.
[!POZNÁMKA]
Ve vašem počítači se pro některé z prvků uživatelského rozhraní sady Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedeny v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Nastavení aplikace Visual Studio.
Volat metodu služby asynchronně
V Průzkumníku řešení vyberte odkaz na službu.
V nabídce Projekt klikněte na tlačítko Nastavit odkaz na službu.
V dialogovém okně Nastavit odkaz na službu vyberte zaškrtávací políčko Generovat asynchronní operace.
Jak: vázání dat vrácených služby
Můžete svázat data vrácená službou Windows Communication Foundation (WCF) na ovládací prvek stejně jako na ovládací prvek vážete libovolný zdroj dat.Když přidáte odkaz na službu WCF, tak pokud služba obsahuje složené typy, které vracejí data, jsou automaticky přidány do okna Zdroje dat.
Svázat ovládací prvek s jediným datovým polem vráceným službou WCF
V nabídce Data klikněte na tlačítko Zobrazit zdroje dat.Zobrazí se okno Zdroje dat.
V okně Zdroje dat rozbalte uzel pro váš odkaz na službu.Zobrazí se všechny složené typy vrácené službou.
Rozbalit uzel pro typ.Datové pole pro tento typ budou zobrazeny.
Vyberte pole a klikněte na rozevírací šipku k zobrazení seznamu ovládacích prvků, které jsou k dispozici pro datový typ.
Klikněte na typ ovládacího prvku, na který chcete vázat.
Přetáhněte pole do formuláře.Ovládací prvek bude přidán do formuláře společně s komponentou BindingSource a BindingNavigator.
Opakujte kroky 4 až 6 pro jakékoli jiné pole, které chcete svázat.
Svázat ovládací prvek složeného typu vráceného službou WCF
V nabídce Data vyberte Zobrazit zdroje dat.Zobrazí se okno Zdroje dat.
V okně Zdroje dat rozbalte uzel pro váš odkaz na službu.Zobrazí se všechny složené typy vrácené službou.
Vyberte uzel pro typ a klikněte na šipku rozevíracího seznamu k zobrazení seznamu dostupných možností.
Klikněte buď na tlačítko DataGridView k zobrazení dat v mřížce nebo Podrobnosti k zobrazení dat v jednotlivých ovládacích prvcích.
Přetáhněte uzel do formuláře.Ovládací prveky budou přidány do formuláře společně s komponentou BindingSource a BindingNavigator.
Jak: Konfigurace služby znovu použít existující typy
Když je odkaz na službu přidán 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é typy .NET Framework nebo když jsou typy definovány ve sdílené knihovně.
Chcete-li se tomuto problému vyhnout, typy v odkazovaných sestaveních jsou ve výchozím nastavení sdíleny.Pokud chcete zakázat sdílení typu pro jedno nebo více sestavení, můžete tak učinit v dialogovém okně Nastavit odkazy na služby.
Zakázat sdílení typu v jednom sestavení
V Průzkumníku řešení vyberte odkaz na službu.
V nabídce Projekt klikněte na tlačítko Nastavit odkaz na službu.
V dialogovém okně Nastavit odkazy na služby vyberte Znovu použít typy v zadaných odkazovaných sestaveních.
Vyberte zaškrtávací políčko pro každé sestavení, ve kterém chcete povolit sdílení typu.Chcete-li zakázat sdílení typu pro sestavení, ponechejte zaškrtávací políčko nezaškrtnuto.
Zakázat sdílení typu ve všech sestavení
V Průzkumníku řešení vyberte odkaz na službu.
V nabídce Projekt klikněte na tlačítko Nastavit odkaz na službu.
V dialogovém okně Nastavit odkazy na služby zrušte výběr zaškrtávacího políčka Znovu použít typy v zadaných odkazovaných sestaveních.
Příbuzná témata
Title |
Description |
---|---|
Poskytuje podrobnou demonstraci vytváření a používání služby WCF v Visual Studio. |
|
Názorný postup: Vytváření a přístup k datové služby WCF v aplikaci Visual Studio |
Poskytuje podrobnou demonstraci vytvoření a použití WCF Data Services v Visual Studio. |
Tento článek popisuje vytvoření a testování služeb WCF v Visual Studio. |
|
Popisuje, jak přidat, aktualizovat nebo odebrat služby WCF z projektu. |
|
Tento článek popisuje, jak odkazovat a používat WCF Data Services v Visual Studio. |
|
Popisuje, jak přidat do projektu odkaz na XML (ASMX) webovou službu. |
|
Uvádí některé běžné chyby, které se mohou vyskytnout s odkazy na služby a jak jim zabránit. |
|
Popisuje běžné problémy ladění a techniky, se kterými se můžete setkat při ladění služeb WCF. |
|
Windows Communication Foundation Authentication Service Overview |
Popisuje způsob, jak použít WCF k poskytnutí služby rolí pro web. |
Popisuje podporu pro vrstvu zasílání zpráv WCF v prostředí .NET Compact Framework. |
|
Toto téma obsahuje podrobné pokyny pro vytváření definované datové sady a oddělení kódu TableAdapter a datové sady do více projektů. |
|
Popisuje prvky uživatelského rozhraní dialogového okna Přidat odkaz na službu. |
|
Popisuje prvky uživatelského rozhraní dialogového okna Nastavit odkaz na službu. |