• Sonuç bulunamadı

Umarım faydalı bir yazı olmuştur, hoşçakalın

Belgede WEB VE İNTERNET TEKNOLOJİLERİ (sayfa 126-159)

// servis adındaki nesnemizi oluşturuyoruz.

webreferansim.Service1 servis = new

webreferansim.Service1();

//hemen servisimiz içindeki kodları hatırlayalım //--- //[WebMethod]

//public bool ilkServisimiz(string ad,string soyad) {}

//aşşağıdaki satırda, ad ve soyad değişkenlerini aynen methodumuza gönderiyoruz.

bool servistenGeriDonenDeger =

servis.ilkServisimiz(txtad.Text, txtsoyad.Text);

//dönen değeri ekrana yazdırıyoruz.

Response.Write("Geri dönen değerimiz: <strong>" + servistenGeriDonenDeger + "</strong>");

//pekiştirmek için basit bir if bloğu if (servistenGeriDonenDeger)

{

lblmesaj.Text = "Bilgiler doğru !";

} else {

lblmesaj.Text = "Bilgiler yanlış !";

} }

İşte bu kadar gördüğünüz gibi .net ortamında web servis hazırlama ve kullanma işi gerçekten çok basit. Unutmadan burada incelemeye değer çokça servis bulunuyor.

Umarım faydalı bir yazı olmuştur, hoşçakalın.

Asp.Net ile Web Servis Geliştirme

Asp.Net ile web servis geliştirelim ve servisin çalışma yapısını inceleyelim. Öncelikle web servisin veri tabanı kısmını hazırlayalım daha sonra web servisimizi yazalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 126 -Web Servis Veri Tabanı İşlemleri

Öncelikle Microsoft SQL Server üzerinde veri tabanımızı oluşturalım. SQL Server’i açalım ve bir veri tabanı ekleyelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 127

Resim-1

“Databases” seçeneğine sağ tıklayarak “New Database” seçeneğini seçelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 128

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 129

Resim-2

Veri tabanı adımızı “WebServis” olarak belirleyelim. OK tuşuna tıklayarak veri tabanımızı oluşturalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 130

Resim-3

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 131 Veri tabanımızda “WebServis” veri tabanı içerisinde bulunan “Tables” seçeneğini sağ tıklayarak

“New>Table” yolunu izleyerek web servisimizde kullanılacak bilgileri tutacağımız tablomuzu oluşturalım.

Resim-4

Tablomuza değerlerimizi atayalım. Veri tabanımızdaki “ID” değerine Birincil Anahtar (Primary Key) atayalım. Bu işlemi yapmamızın sebebi bu alandaki değerin daha sonradan değiştirilemeyecek olması yani her kayıta özel bir alan yaparak sorgulamalarımızı bu alan üzerinden yapacağımızdandır.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 132

Resim-5

“ID” alanımıza sağ tıklayalım ve “Set Primary Key” seçeneğini tıklayarak bu alanımıza birincil anahtar değerini atayalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 133

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 134

Resim-6

Birincil anahtarı atadıktan sonra bu alanın değerini her kayıtta otomatik olarak artırmak için “ID”

değerini seçerek “Identity Specification” seçeneğinin altında bulunan “Is Identity” seçeneğini

“Yes” olarak değiştirelim. Bu özelliğin değişmesi ile her yeni kayıt eklendiğinde “ID” değerimiz birer olarak artacaktır.

Resim-7

Tablomuzu kayıt edelim ve tablomuza “Kisiler” ismini verelim. Tablomuza birkaç kayıt ekleyelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 135

Resim-8 Tablomuza sağ tıklayarak “Edit Top 200 Rows” seçeneğini seçelim.

Resim-9

Kayıtlarımızı ekledikten sonra veri tabanımızdan sorgulama yapmak için Saklı Yordam(Stored Procedure) oluşturalım.

Resim-10 Veri tabanımız üzerinde sağ tıklayarak “New Query” seçeneğini seçelim ve prosedürümüzü yazalım. Yazacağımız prosedür sayesinde web servisteki sorgulama işlemlerini prosedür içerisinde gerçekleştireceğiz ve prosedürden gelen kayıtları web servise aktaracağız.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 136

Resim-11

“SPBILGILERIGETIR” adında bir prosedür oluşturduk. Bu prosedürde parametre olarak “@ID”

değerini aldık ve web servise gönderilecek olan parametre değerimiz bu değer olacaktır. Böylece her ID değerinde veri tabanımızda bilgi var ise o bilgileri web servisin istek yapıldığı yere göndereceğiz. Veri tabanı işlemlerini tamamladık artık web servisimizi yazabiliriz.

-Web Servis Geliştirme İşlemleri

Visual Studio IDE ortamını açalım. Yeni bir proje oluşturalım.

Resim-12

“File>New>Project” yolunu izleyerek proje oluşturma işlemlerimize başlayalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 137

Resim-13

“Web>Visual Studio 2012” sekmesinden “ASP.NET Empty Web Application” proje şablonunu seçelim. Projemize

“Web Servis” adını verelim ve “OK” tuşuna tıklayıp projemizi oluşturalım.

Resim-14

Projemize sağ tıklayalım “Add>New Item” seçeneğini seçelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 138

Resim-15

“Web Service (ASMX)” seçeneğini seçelim “Add” seçeneğiyle projemize ekleyelim.

Resim-16

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 139

Web servisimizde hazır olarak yazılmış ve “Hello World” değerini istek yapan kullanıcıya döndüren metod bulunmaktadır. Bu metodun nasıl çalıştığını inceleyelim.

Resim-17 Web servise sağ tıklayalım “View In Browser” seçeneğini seçelim ve çalıştıralım.

Resim-18

Web serviste bulunan metod web servisi çalıştırdığımızda karşımıza gelmektedir. Metoda tıkayalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 140

Resim-19

Web servise tıkladığımız zaman web servisi kullanacak kişilerin isteklerini gönderecekleri “POST” metodunu görebilmemiz için “Çağır” meoduna basarak web serviste gönderilecek bilgileri görüntüleyebiliriz. Butona tıklayalım ve web servis bizlere nasıl bir değer döndürüyor bunu inceleyelim.

Resim-20

Web servis bizlere “XML” formatında bilgi döndürmektedir. Web servisin çalışma mantığını inceledik artık web servisimizi geliştirebiliriz.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 141

Resim-21

Veri tabanımızda bulunan bilgileri çekeceğimiz alanlar için projemizde bir sınıf oluşturalım. Bu sınıfı oluşturmamızın amacı veri tabanından gelen bilgileri bir sınıf üzerinde tutarak kullanıcıya göndermemizdir.

Resim-22

Projemize sağ tıklayalım “Add>Class” seçeneği ile projemize sınıf ekleyelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 142

Resim-23

Sınıfımıza “Bilgiler” adını verelim “Add” seçeneği ile projemize ekleyelim.

Resim-24

Sınıfımızda “Property” yapısını kullanarak veri tabanından alacağımız verilerin tipinde değer alan değişkenlerimizi sınıfımıza tanımladık.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 143

Resim-25

“Web.config” dosyamıza veri tabanımıza bağlantı kodumuzu tanımlayalım.

Resim-26

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 144

Web servis sınıfına “Bilgiler” adında verileri döndüreceğimiz metodumuzu yazdık. “Web.config” dosyamızda tanımladığımız bağlantımızı alıyoruz. Veri tabanımızda yazdığımız prosedürü çağırıyoruz ve prosedürün bizden istediği “ID” değerini prosedüre yollayarak prosedürden gelen bilgileri tanımlamış olduğumuz sınıfımıza atıyoruz.

Metodumuzun sonunda bu bilgileri kullanıcıya gönderiyoruz.

Web servisimizi çalıştıralım ;

Resim-27

Web servis bizden “ID” değerini istemektedir. Değeri girelim ve web servisi çağıralım.

Resim-28 Web servis bize “ID” değeri gönderdiğimiz değere eşit olan kaydın bilgilerini döndürdü. Böylelikle web servis yazmayı görmüş olduk.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 145 Web servis oluşturma ve Metotlar (c#)

Web servisin kod kısmı. c# ta Web servis oluşturma ve metotlar nasıl kullanılır, bu başlıklar altında anlatmaya çalışacağım. Öncelikle web servis oluşturma ile başlayalım.

Web Servis Oluşturma

Adın da web servis olduğuna bakmayın, sadece web te değil, c# form aplication da bile kullanabilirsiniz. Bir web servis yazıp onu birden fazla projede veya uygulamalarınızda kullanabilirsiniz. Bu başlık altında bir web servis nasıl oluşturulur ona bakacağız. Çünkü bazen ihtiyacımız olan web servisi kendimiz yazmak zorunda kalabiliyoruz.

*ilk olarak bir web projesi oluşturalım.. Ben ASP.net empty web aplication oluşturup adına da WebServisler dedim. (Visual studio->new Project->web-> ASP.net empty web aplication)

*projeyi oluşturduktan sonra, proje adına sağ tıklayıp ->add item->new item->Web Service deyip bir web servis ekliyoruz. Bir web servis oluşturduk

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 146 -şimdi de metot başlığına geçelim

METOTLAR

Eklediğimiz web servisi inceleyelim.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 147 [WebMethod] tagını görüyoruz. Ne işe yarar? Yazdığımız veya yazılan web servislerin görünür olmasını sağlayan bu [WebMethod] tagıdır. Eğer bunu kaldırır isek web servis metodu, projeyi çalıştırdığımızda görünmeyecektir. Bu yüzden metot yazarken [WebMethod] un altına yazıyoruz.

Şimdi gelelim metotlara. Neye ihtiyaç duyuyorsak onu bir web servis metodu olarak yazabiliriz.

Örnek verecek olursak veri tabanından veri çekip listeleyen bir metodu, sayı veya stringler ile işlem yapan metotları web servisimizde çalıştırabiliriz. Bunun gibi örnekler çoğaltılabilir.

Şimdi projede bir değişiklik yapmadan çalıştıralım. Görüntüsü aşağıdaki gibi olacaktır.

Yazılan Hello World metodunu görüyoruz. Şimdi Hello World metoduna tıklayalım. Ondan sonra çağır(veya ınvoke ) a tıklayalım.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 148 Gördüğünüz gibi metot sonucu xml formatında gösteriliyor veya işletiliyor. Bu sayede farklı platformlar aynı metodu kullansalar bile aynı çıktıyı elde edebiliyorlar. Çünkü veri xml tipinde platformlara iletilmiş oluyor.

Şimdi de biz bir metot yazalım. Webservices1.asmx (bendeki adı) dosyamıza gelelim( eklediğimiz web servis)

Ben böyle bir metot ekledim(SayMyName). İstediğiniz metodu ekleyebilirsiniz. Ama eklediğiniz metot un üzerinde [WebMethod] olması gerektiğini unutmayın.

Projeyi tekrar çalıştıralım.

Metotlar görünüyor.Oluşturduğum metodun adına tıklıyorum(SayMyName e tıklıyorum).

Metodum bir String parametresi alıyordu. İnput alanına bir string giriyorum

Tekrar çağır(veya invoke) tıklıyorum.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 149 Metot sonucunda oluşan veri ,xml formatında ekrana çıktı olarak geliyor. Xml formatında olması farklı platformların aynı web servisi kullanabilmesine ve aynı çıktıyı alabilmesine sağlıyor.

Kısaca web servis oluşturma ve metotlara değindim.

Oluşturduğumuz bir web servisi başka bir projeye nasıl ekleriz ve projeye eklediğimiz web servisteki metotları nasıl çağırırız

Bizim yazmadığımız veya internette web servis sağlayan sitelerden bulduğumuz bir web servisi nasıl kullanabiliriz.(Mesela havadurumunu veya döviz kur durumunu çeken web servisler gibi)

Web servis Kullanımı (c#)

Daha önceki yazım da web servis oluşturma ve metotlardan bahsetmiştim. Bu yazımda ise yazdığımız bir web servisi başka bir projede çalıştırma veya netten web servis sağlayan kaynaklardan bulduğumuz web servisi nasıl kullanırız bunlarla alakalı basit bir uygulama yapmayı düşünüyorum.

Yazdığımız bir web servisi başka bir projede nasıl çalıştırırız ?

Web servis oluştuma ve metotlar yazımdan bahsedildiği gibi bir web servis oluşturmuştuk .ben yine onu kullanacağım .baştan tekrar bir web servis nasıl yazılır değinmeyeceğim.

*İlk olarak önceden oluşturduğumuz web servis projemizi açalım(üsteki linkten bakabilirsiniz).

servis adına sağ tıklayıp view in browser diyelim

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 150

*Daha sonra resimde görüldüğü gibi web servisimizin url sini kopyalayalım.

*Şimdi visual studio da bir proje açalım. web veya form aplication da olabilir. ben form aplication projesi açacağım. Ama yapacağımız işlemler web projeleri içinde geçerli. Ben WebServisKullanimi adında bir form aplication projesi oluşturdum.

*Resimde de görüldüğü gibi projemize sağ tıklayıp->add->service reference tıklıyoruz.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 151

*Belirtilen alana kopyaladığımız web servisin url sini girip go diyoruz( Discover deyip web servisin yolunuda gösterebilirsiniz). Go dedikten sonra resim de görüldüğü gibi web servisin adına tıkla ->soap ına tıkla .. Web servisteki metotlar listelenecektir.

Projenin altında web servisin reference edildiğini göreceksiniz. Şimdi kodlamaya geçelim.

Referans ettiğimiz web servisin içinde iki adet metot listelenmişti. Biri hello World diğeri bizim

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 152 yazdığımız SayMyName metoduydu.(yukarıda verilen linkten bakabilirsiniz). Ben SayMyName i kullanacağım. String Name parametresi alıyordu.

Formumuza bir adet label , textbox ve buton koyuyorum. Butonun altına aşağıdaki kodları yazıyorum.

Evet arkadaşlar görüldüğü gibi bir web servisin metotlarını çağırıp kullanabiliyoruz. Web servislerin referans edilmesini ve metotlarının çağrılmasını gördük. Bunun gibi , bir internet kaynağından aldığımız web servisi referans edip metotlarını kullanabilirsiniz.

www.webservicex.net bu siteden web servis örnekleri alabilirsiniz arkadaşlar.

örnek olarak http://www.webservicex.net/globalweather.asmx web servisi hava durumunu çekiyor. Bunu projenize referans edip kullanabilirsiniz. Parametleri ve fonksiyonları hakkında web sitesinde bilgiler mevcut , onları öğrenip projenize hava durumlarını çekebilirsiniz.

Son bir şey daha , eğer kendinizin yazmadığı bir web servisi kullanıyorsanız , ara da bir güncelleyin. Çünkü web servisi sağlayan kaynak , kullandığınız web serviste bir güncelleme yaptığında ,sorun yaşamamanız için güncellemekte fayda var. Güncelleme için ServisReference1 (eklediğimiz web servisin name space i)in üzerine sağ tıklayıp update service reference demeniz yeterli arkadaşlar.

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 153

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 154

Sorular

• Entity Framework nedir?

• Entity Framework ile kaç farklı yöntem ile proje geliştirilebilir?

• Entitiy Framework Model First nedir?

• Entity Framework Database First nedir?

• Entity Framework Code First nedir?

• Entity Framwork projesi oluştur.

• Verilen fotografı açıkla.

• Verilen kodtaki çizgide hangi kod yazılmalıdır?

namespace Prog4 {

class Program {

static void Main(string[] args) {

Kategori k=new Kategori();

k.KategoriAdi = "Telefon";

UrunContext db=new UrunContext();

___________________________

db.SaveChanges();

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 155

• İçinde ürün adı, Fiyat, Stok adeti, Satıştamı özellikleri olan Urun.cs classını oluşturun.

• Verilen urun class ında yanlış olan nedir?

public class Urun

• Bir Kategori.cs dosyası oluştur.

• Verilen UrunContext.cs dosyasındaki kalın harflerle yazılan kod satırlarını açıkla.

using System.Collections.Generic;

public class UrunContext : DbContext {

public UrunContext():base("urunConnection") {

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 156

• Veritabanı bağlantıları hangi dosyada yapılır?

• Web tabanlı uygulamada veritabanı bağlantıları hangi dosyada yapılır?

• Verilen dosyada veritabanı bağlantısı localdb de yapılmıştır.

Veritabanı 111.111.111.111 IP adresindeki bir sunucuda, veritabanı adı: dbTest, Username: AdSoyad,

password: 123456 olacak şekilde yeni bağlantıyı yap.

</entityFramework>

<connectionStrings>

<add name="urunConnection"

connectionString="server=(localdb)\MSSQLLocalDB;database=urun5DB;integrated security=true;"

providerName="System.Data.SQLClient"

/>

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 157

Yukarıda verilen kodlardan 5 numaralı satırı açıkla 9 numaralı satırı açıkla

• Tek bir ürünü seçmek için kod satırını yaz.

• 2. ürünün fiyatını %50 arttır.

• Foreach dongüsünü kullanarak bütün ürünlerin fiyatını %25 azalt.

• Aşağıda verilen kodları açıkla:

var urunler = db.Urunler.Find(1);

• Neden MVC mimarisini kullanmalıyız?

• Aşağıdaki _Layout.cshtml dosyasında verilen kod satırlarını açıkla.

<script src="~/Scripts/jquery-1.10.2.min.js"></script>

<script src="~/Scripts/bootstrap.min.js"></script>

</body>

</html>

W e b v e İ n t e r n e t T e k n o l o j i l e r i | 158

• Data Initializer nedir?

WEB VE İNTERNET TEKNOLOJİLERİ

Web kavramını açıklamak.

Bir web sitesi tasarlamak.

Bir web sitesini yayımlamak.

Bir web sitesinin elemanlarını listelemek.

Bir web sitesinin kaynak kodlarını açıklamak.

Internet tabanlı öğrenme konusunda temel teorilerini açıklamak.

Web tabanlı öğrenmenin avantaj ve dezavantajlarını listelemek.

Web tabanlı öğrenmenin önündeki engelleri tartışmak.

Belgede WEB VE İNTERNET TEKNOLOJİLERİ (sayfa 126-159)