1 / 19

Haladó Programozás

Haladó Programozás. Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése. Haladó Programozás. Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése. Windows Communication Foundation.

Download Presentation

Haladó Programozás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése OE-NIK HP

  2. Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése OE-NIK HP

  3. Windows Communication Foundation • Elosztott rendszerek készítéséhez kifejlesztett API • A .NET 3.0-ban jelent meg • A korábbi, egymástól független elosztott technológiákat integrálja • DCOM, .NET remoting, XML-webszolgáltatások stb. Jellemzői • Erősen típusos és típus nélküli üzenetek • Így a .NET egyedi típusai könnyen megoszthatók • Többféle kötés • HTTP, TCP, MSMQ, named pipe-ok • Legújabb webszolgáltatások specifikációjának támogatása • Teljesen integrált biztonsági modell • Munkamenetszerű állapotkezelési módszerek és egyirányú, állapot nélküli üzenetek támogatása OE-NIK HP

  4. A WCF-alkalmazás részei • WCF szolgáltatás • Általában egy DLL, amely a funkcionalitást képviselő osztályokat és interfészeket tartalmaz • WCF szolgáltatás hoszt • Ez hosztolja a szolgáltatást • Bármilyen .NET végrehajtható állomány lehet • WCF-ügyfél • Hozzáfér és használja a szolgáltatás funkcionalitását egy közbeépülő proxyn keresztül • Bármilyen .NET alkalmazás lehet OE-NIK HP

  5. A WCF-alkalmazás részei Kliens alkalmazás WCF-hoszt Proxy WCF-szolgáltatás Konfigurációs állomány Konfigurációs állomány Érdemes az összeköttetéssel kapcsolatos információkat *.config fájlban tárolni, hiszen ebben az esetben a kapcsolat megváltoztatása csak a fájl átírását jelenti. Ha IIS-t használunk a szolgáltatás hosztolására, nem kell egyedi hosztot készíteni. OE-NIK HP

  6. A WCF ABC-je • A hoszt és a kliens kommunikációjához az alábbiak megadása szükséges: • Address (cím): a szolgáltatás elérésének címe • Séma://<gépnév>[:port]/útvonal alakban pl. http://localhost:8080/MyService • Binding (kötés): hálózati protokoll, kódolási mechanizmus, szállítási réteg megadása • Pl. WSHttpBinding webszolgáltatásokhozNetTcpBinding több gépen futó .NET-alkalmazások között • Contract (szerződés): a szolgáltatás mások által elérhető metódusainak leírása • Szolgáltatásszerződés: olyan .NET interfész, amely WCF-szerződést jelképez OE-NIK HP

  7. Haladó Programozás Windows Communication Foundation A szolgáltatás, a hoszt és az ügyfél elkészítése OE-NIK HP

  8. A szolgáltatás elkészítése • Válasszuk a WCF Library projektet • Így megkapjuk a szolgáltatás vázát • ServiceContract • Interfész, amely a szolgáltatás metódusait tartalmazza • Minden kipublikálandó metódust a OperationContract attribútummal kell ellátni • Érdemes az egyediség kedvéért névteret megadni (tipikusan a készítő webcíme) • Pl. [ServiceContract(Namespace="http://nik.uni-obuda.hu/hp")] • DataContract • Az átadni kívánt adattípus • Publikus tagjait DataMember attribútummal kell ellátni • Szolgáltatás osztály • Ez tartalmazza a szolgáltatás funkcionalitását • Megvalósítja a ServiceContractnál megadott interfészt OE-NIK HP

  9. A szolgáltatás tesztelése • A Visual Studio egy WCF Test Client-et hoz létre, amellyel kipróbálhatjuk a szolgáltatás metódusait • Ehhez szüksége van az App.Config fájlra, amely szintén nem szokványos egy DLL-ben • A metódusra duplán kattintva beírhatjuk a megfelelő paramétereket, majd az Invoke gombbal a metódust futtathatjuk OE-NIK HP

  10. App.config fájl • Tartalmazza a kommunikációhoz szükséges információkat • Cím, kötés, szerződés (ABC) • MEX: Metadata Exchange (metaadatcsere)WCF szolgáltatási viselkedés, amellyel beállíthatjuk, hogy a futtatókörnyezet hogyan kezelje a szolgáltatást.Az ügyfél proxy osztályának generálásához szükséges megadni. • Általában automatikusan frissül, de bizonyos esetekben kézzel kell beálítani • Szerkesztés varázslóval • App.config fájlon jobb katt: Edit WCF configuration • Services: a szolgáltató osztály neve • Host: a szolgáltatás IP címe • Endpoints: ABC és MEX adatok • Valójában egy XML fájl OE-NIK HP

  11. App.config fájl ABC a cím a baseAddress-ben.A kötésből látszik, hogywebszolgálatás MEX végpont engedélyezése Viselkedésdefiníció aMEX-nek. OE-NIK HP

  12. A hoszt elkészítése • Szükséges hozzá a System.ServiceModel dll • Referenciaként hozzá kell adni • Az App.Config fájlra itt lesz szükség, másoljuk át, a dll-ből töröljük • A hoszt példányosítása a szolgáltatás típusának megadásával • ServiceHost host = new ServiceHost(typeof(EightBallService)) • A szolgáltatás megnyitjuk, majd a végén bezárjuk • using: definiálja az objektum hatókörét, ezen kívül az objektum felszabadul OE-NIK HP

  13. Ügyfél elkészítése • A megoldás menete megegyezik azzal, mint amikor egy webszolgáltatásra iratkozunk fel • A hosztnak futnia kell a proxy osztály generálása alatt OE-NIK HP

  14. Feladat • Készítsünk egy jósló szolgáltatást (The Magic Eight Ball),a szolgáltatást hosztoljuk és vegyük igénybe • A kérdező neve és születési dátuma alapján kiválaszt egyet az előre megadott válaszok közül • A szolgáltatás egyetlen metódust ad • Ennek egyetlen paramétere a személy adatait tartalmazó objektum • A hoszt legyen konzolalkalmazás • A metódus meghívása történhessen aszinkron módon OE-NIK HP

  15. Megoldás • A szolgáltatás elkészítése • WCF Service Library -> EightBallDLL • Szerződés -> IEightBallService • Funkcionalitás -> EightBallService • A hoszt lekészítése • ConsoleApplication -> EightBallHost • Szolgáltatási ABC -> App.Config fájl • Ügyfél elkészítése • Windows Form/ConsoleApplication -> EigthBallConsumer OE-NIK HP

  16. Gyakorló feladat • Készítsünk egy szolgáltatást, amellyel éttermekhez tartozó pontszámokat kérhetünk le, és pontozhatjuk az éttermeket. A szolgáltatást hosztoljuk és vegyük igénybe. • A szolgáltatás adja meg, hogy milyen éttermekről tartalmaz adatot • Egy étterem megadására adja meg a hozzá tartozó értéket OE-NIK HP

  17. Irodalomjegyzék • Andrew Troelsen: A C# 2008 és a .NET 3.5 - 2. kötet 2009 SZAK Kiadó OE-NIK HP

  18. OE-NIK HP

  19. OE-NIK HP

More Related