Académique Documents
Professionnel Documents
Culture Documents
DISTRIBUIRANO OBJEKTNO
PROGRAMIRANJE
5. LABORATORIJSKA VJEŽBA
Microsoft WCF
V1.00
1. Sučelje
Implementirat ćemo servis kroz jednostavnu Windows Forms aplikaciju. Kreirajte novi
projekt, Visual C#, Windows Forms App (.Net Framework). Nazovite ga
BMICalcServer. Dodajte na GUI jednu labelu i gumb prema slici.
namespace BMICalcServer
{
public partial class Form1 : Form...
3. Implementacija servisa
Otvorite datoteku App.config te u nju dodajte sljedeći kod (žuto označeni dio), odmah
iza linije (odnosno unutar taga) <configuration>:
- address: dio koji se dodaje na baznu adresu. Nama je prazno, što znači da
nam je puna adresa servisa upravo bazna adresa, definirana unutar
<baseAddresses> taga: http://localhost:9999/BMICalcService
- binding atribut definira transportni protokol koji servis koristi
- contract atribut sadrži ime [ServiceContract] interface-a.
Preostaje samo još pokrenuti servis, te ga zatvoriti prilikom izlaska. Dodajte u klasu
Form1 sljedeći kod (označeno žuto).
public Form1()
{
server = new ServiceHost(typeof(BMICalcService));
server.Open();
InitializeComponent();
}
Kad je server pokrenut, možemo otvoriti punu adresu servisa u browseru (sjetite se,
to je: http://localhost:9999/BMICalcService). Na njoj možemo saznati WSDL adresu
servisa.
U novoj instanci Visual Studia (ovaj put je ne morate pokrenuti kao administrator)
kreirajte novi projekt, Visual C#, Windows Forms App (.Net Framework). Nazovite ga
BMICalcClient.
Dodajte referencu na serverski servis, prema slici (U solution exploreru, desni klik na
References, Add Service Reference). U polje Address upišite WDSL adresu servisa.
Pod Namespace upišite BMICalcService.
Što se koda tiče, unutar datoteke Form1.cs, napravit ćemo sljedeće (opet, označeno
žuto):
// dodano
using BMICalcClient.BMICalcService;
namespace BMICalcClient
{
public partial class Form1 : Form
{
BMICalcServiceClient client;
float l_tezina;
float l_visina;
public Form1()
{
client = new BMICalcServiceClient();
InitializeComponent();
}
Na klijentu dodajte polje u kojem će korisnik moći upisati mjernu jedinicu za visinu te
iskoristite i sadržaj tog polja za upit prema servisu.
Primijetite da i nakon što napravite sve promjene na strani servisa, klijent i dalje
„misli“ da funkcija ima samo dva parametra. Da bi se promjene vidjele na klijentu,
morat ćete ažurirati referencu na servis (update service reference):
Ovo je jednostavan primjer koji ilustrira način na koji se kreiraju i koriste WCF servisi.
Izračun BMI je jednostavan te za njega u stvarnosti nije potrebno koristiti vanjski
dedicirani servis. Razmislite i navedite nekoliko realnih primjera koji bi bili primjereniji
za realizaciju pomoću servisa.
Kao rješenje vježbe, pošaljite mail sa odgovorom na pitanje na adresu asistenta. Kao
attachment maila dodajte formi1.cs datoteke iz oba projekta.