WCF - Adım Adım IIS Hosting - Makale - Yazılım Dilleri
Bu makalemizde ise bir WCF Service projesi geliştirmeye çalışacağız. Bir başka deyişle HTTP protokolünü kullanarak, IIS üzerinden bir .Net kütüphanesini servis olarak yayınlayacağız.
Bu makalemizde ise bir WCF Service projesi geliştirmeye çalışacağız. Bir başka deyişle HTTP protokolünü kullanarak, IIS üzerinden bir .Net kütüphanesini servis olarak yayınlayacağız. NOT : WCF servislerini Self Hosting ve IIS Hosting olmak üzere iki farklı şekilde yayınlayabiliyoruz. Bununla birlikte Self Hosting modeli kendi içerisinde Console, Windows, Windows Service ve Vista ile gelen Windows Activation Service (WAS) olmak üzere dört farklı seçenekten oluşmaktadır.
NOT : .Net Remoting mimarisinden hatırlarsanız eğer; uzak nesneleri (Remote Objects) yayınlamada ele alınan modellerden birisi arayüz(Interface) kullanımını içermektedir. Burada temel amaç istemci tarafında, sunucuda örneklenen uzak nesne referansını taşıyabilecek bir tip olmasıdır. Bununla birlikte istemci tarafının kesin olarak uzak nesne fonksiyonelliklerinin nasıl çalıştığını görmesi gibi bir şansı yoktur. (Elbette bu durum MarshalByReference nesneler için geçerlidir. Bildiğiniz gibi MarshalByValue tipler zaten sunucuda örneklenip istemci tarafına tüm varlığı ile serileştirilerek(Serialization) geçerler). Ayrıca, sunucu tarafındaki uzak nesne metodlarının iç yapılarında meydana gelecek değişiklilikler sonucu, istemcilere yeniden dağıtım(deployement) işlemi uygulanmasına gerek kalmamaktadır.
SqlCommand cmd = new SqlCommand("Select EmployeeId,Title,BirthDate,VacationHours From HumanResources.Employee Where EmployeeId=@EmpId", conn);
Elbette buradaki ayarları yapmadan önce bir WCF servisi için gereken temel konfigurasyon ayarlarının ne olduğunu bilmek gerekmektedir. Yani AddressBindingContract üçlemesinden söz ediyoruz. Bu kuralları konfigurasyon dosyamızda da göz önüne almalıyız. WCF Configuration arabirimi, service ve istemci(Client) tarafı için ayrı ayrı konfigurasyon dosyaları hazırlanabilmesine olanak tanımaktadır. Şu aşamadan biz servis(Service) tarafı için gerekli konfigurasyon ayarlarını yapacağız. Bu amaçla Create a New Service linkinden faydalanabilir yada manuel olarak Configuration sekmesini kullanabiliriz. Biz örneğimizde Create a New Service linkinden faydalanacağız.
NOT : Visual Studio 2005 dışında, bir WCF servisine ait metadata bilgisini elde edip proxy sınıfını ve istemci için gereken konfigurasyon dosyasını elde etmek amacıyla, svcutil isimli Framework 3.0 aracıda kullanılabilmektedir.
Console uygulamamızı oluşturduktan sonra projeye sağ tıklayıp Add Service Reference seçeneğini kullanarak WCF servisimizi projemize eklememiz gerekmektedir. Burada içeride kullanmak istediğimiz isim alanının adınıda belirtebiliriz. Varsayılan olarak aynı web servislerinde olduğu gibi localhost verilmektedir.