Bazı kaynaklarda, WCF’ in ABC’ si olarak Addresses (Adresler), Bindings (Bağlayıcılar) ve Contracts (Sözleşmeler) kelimelerinden bahsedilmektedir. Bu üçleme, WCF’ in çekirdeğinde yer alan en önemli kavramlardır. Öyleki, dağıtık modele göre servis olarak dış ortama sunulan her bir CLR tipi için bir endPoint tanımlanmak zorundadır. Aslında endPoint bir servisin dış ortama sunulan arayüzü (Interface) olarak düşünülebilir. Yani istemcilerin, proxy üzerinden gönderecekleri ve alacakları mesajların servis tarafında karşılandığı nokta olarak düşünülebilir. Bir endPoint içerisindeki üç önemli parça da adresler, bağlayıcılar ve sözleşmelerdir.
Şimdi basit bir WCF projesi oluşturmak için servis, host ve client projelerini oluştururken sırayla izlenecek adımlara bakalım:
1. Önce WcfServiceLibrary projesi eklenir. (Servisi oluşturmak için)
- Interface (contract) ve bu interface'i implement eden bir class yazılır.
- Interface'in başına [ServiceContract], içindeki metotların başına [OperationContract] yazılır.
IMatematik.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace MatServis
{
[ServiceContract]
public interface IMatematik
{
[OperationContract]
double Toplam(double x, double y);
}
}
Matematik.cs:
namespace MatServis
{
public class Matematik : IMatematik
{
#region IMatematik Members
public double Toplam(double x, double y)
{
return x + y;
}
#endregion
}
}
2. Daha sonra, host projesi (WcfServiceApplication) eklenir.
- Servis projesi referans olarak eklenir.
- svc dosyasının adı önceki eklenen servis ismi ile aynı yapılır.
- svc dosyasının altındaki cs dosyası silinir.
- svc dosyası açılarak, CodeBehind kısmı silinir ve servis ismi değiştirilir.
- Web.config ayarları yapılır. (Sağ tıklanarak, edit wcf configuration ile, eklenen servise göre)
- Endpoints Contract değiştirilir (Interface'in adı)
Diğer endpoint ise mex. Web servisin bize cevap verebilmesi için bu tanımlamayı yapmamız gerekiyor. Binding olarak mexHttpBinding, contract olarak IMetadataExchange kullanır.
- Service Behaviours Name değiştirilir.
3. Client projesi eklenir.
- Add Service Reference ile oluşturulan servis, referans olarak eklenir.
- app.config ayarlarından (edit wcf configuration ile) client ayarları değiştirilebilir. (Otomatik olarak kendisi ayarları oluşturur.)
- Servisteki class isminin sonuna otomatik olarak Client eklenir. Servis içindeki metotlara ulaşabilmek için, bu client kullanılır.
IMatematik mat = new MatematikClient();
string toplam = mat.Toplam(5, 4).ToString();
Console.WriteLine(toplam);
kodlarıyla servise ulaştığımızı test edebiliriz.
Merhaba, incelediğim kadarıyla blog'unuz basic kullanıcılara hitap ediyor. Fakat kusura bakmayın Sevgi Hanım ama anlatımınız biraz yemek tarifi gibi olmuş :)
YanıtlaSil...
-> Servis projesi referans olarak eklenir.
-> svc dosyasının adı önceki eklenen servis ismi ile aynı yapılır.
-> Sonra kısık ateşte webconfig pempeleşinceye kadar ısıtılır.
Yani basic kullanıcı madde madde belirttiğiniz olayı anlamayabilir. Yine de güzel'i işaretliyorum. Kolay gelsin.
-Orkan
Bu yorum yazar tarafından silindi.
YanıtlaSil