WCF Servis üzerinden SQL Azure ile Windows 8 Metro Uygulaması Etkileşimi

     Merhabalar, bu makalemde Azure üzerindeki bir SQL’den verileri WCF servis ile çekip bunları Windows 8 de nasıl kullanacağımızı göstereceğim. Bunun çok yararlı bir makale olacağına inanıyorum çünkü WCF ile ilgilenenler bilirler, WCF config dosyasında WCF servisi kullanabilmek için birçok ayarlamalar yapmak gerekiyor ama çok şükür Azure var ve bütün bu ayarlamalardan bizi kurtarıyor. Azure sayesinde artık WCF yayınlamak’ta, WCF’i güncellemekte 1 tık kadar kolay. 🙂 Hadi yerinize oturun ve yolculuğa başlayalım.

azure-wcf-architecture

Öncelikle WCF’in ne olduğu hakkında az çok bilgi sahibi olmanız gerekiyor(İnşallah WCF Servis konusunu da ileride paylaşıyor oluyorum) ve diğer bir ayrıntıda Windows 8 Metro Uygulamalarının aynı şekilde Windows Phone’ların ADO.NET, Entity FrameWork gibi yapıları kullanamaması. İşin açıkçası kullanmamalarıda gerekiyor, çünkü telefon dediğimiz cihazların belirli bir işlemci gücü,ram seviyesi var. Şimdi uygulamanın yanına birde Database ile etkileşimi eklersek ve bu uygulamalar içerisinde sizin veritabanı bağlantı yollarınızın, şifrelerinizin de olduğunu var sayarsak, bu yapıların olmaması isabet olmuş. Proje boyutundaki kabarmayı hesaba katmıyorum bile.

Bu makale aşamalarını özetleyecek olursak; ilk olarak Azure üzerinde bir Database açacağız, daha sonra bir WCF Servis App yazacağız, ardından yazdığımız WCF Servis’i ayağa kaldırmak için bir web sitesi oluşturacağız. En sonunda ise WCF’i Oluşturduğumuz siteye Publish edip, Windows 8 uygulaması oluşturup Referans gösteriyoruz 1-2 deneme yaptıktan sonra işimiz bitiyor. Haid artık adımlara geçelim 🙂

 

1Aşama

Azure Portalı Açıp, sol menüden SQL DATABASES –> +NEW –> Quick Create diyip SQL’e bir isim ve giriş bilgileri veriyoruz.

AzureWCF1

 

2.Aşama

Azure üzerine kurduğumuz SQL’i açıp Alttaki menüden Manage diyoruz ve açılan sayfadaki bizim belirttiğimiz kullanıcı adı ve parolası ile giriş yapıyoruz.(Önemli: Manage dedikten sonra size 2 soru soracak bu IP adresini açayım mı gibi bir soru,bu sorulara OK diyoruz)

AzureWCF2

3.Aşama

Açılan sayfanın sol alt tarafındaki menüden Desing seçeneğini seciyoruz ve açılan sayfada +new table linkine tıklıyoruz yani bir tablo yaratıyoruz.

AzureWCF3

4.Aşama

Tablo bilgilerini aşağıdaki gibi şekillendirip Save butonuna tıklıyoruz. Şimdilik Azure üzerindeki işimiz bitti.

AzureWCF4

5.Aşama

WCF Servis App oluşturma

Visual Studio’yu açıp –> New Project –> Visual c# –> WCF –>WCF Service Application

AzureWCF5

6.Aşama

WCF Servise Entity FrameWork dahil etme

Solution Explorer altındaki WCF Servis App projesine sağ tıklayıp Add -> New Item sekmesinden açılan Pencereden Soldan Data’yı seçim seçeneklerden ADO.NET Entity Data Model’i seçiyoruz.AzureWCF6

7.Aşama

Açılan pencerede resimdeki gibi seçim yapıyoruz.

AzureWCF7

8.Aşama

Bundan sonraki sekmede ise New Connection diyoruz ve bilgileri dolduruyoruz.

Bilgileri doldururken Server Name alanına Azure SQL’in adını yazıyoruz. Yöntem : Azure Portaldan, kurduğumuz database i açıyoruz. Üst sekmeden DASHBOARD’ı seçiyoruz ardından yandaki sekmeden Manage Allow IP Adress diyoruz ki WCF Servis Projesine Entity eklerken IP adresimize izin vermiş olalım.

AzureWCF8

Açılan sayfada ADD TO THE ALLOWED IP ADDRESSES diyoruz.

9.Aşama

Server Name kısmına yazacağımız URL’i kurduğumuz database sayfasından alacağız.

AzureWCF9

Ve Server Name kısmına yapıştıracağız aşağıdaki fotoğraftaki gibi

AzureWCF10

Ardından Yes seçeneği ile next diyerek sonraki sayfaya..

AzureWCF11-1

En son aşama olarakta oluşturduğumuz tek tabloyu işaretleyerek Finish diyoruz.

AzureWCF12

Ve ardından bizi bu şekilde bir ekran karşılıyor olması lazım. Solution Explorer kısmında da EntityModelim.edmx dosyasını görmüşsünüzdür.

AzureWCF13

10.Aşama

WCF Servis App’in içinde 2 önemli sayfa car bunlar IServis1.cs ve Service1.svc . Bunları açtığımızda bizi iki örnek methot karşılıyor GetData(~) ve GetDataUsingDataContract(~) , bunlarla işimiz olmadığı için siliyoruz 2 sayfadanda. Daha sonra ise önce Service1.svc.cs sayfasına asıl metodumuzu ekliyoruz ve daha sonra genlerini aldığı IServis1.cs sayfasına bunu tanıtıp yalıtıyoruz([OperationContrat] ile]). Şimdi yazacağımız metot ile tablet uygulaması üzerinden SQL’deki tablomuza veri ekleme işlemi yapıp bunun gerçekleşmesi durumunda True değerini alacağız.

AzureWCF14 AzureWCF15

public class Service1 : IService1
    {
        wcfIcinEntities entity = new wcfIcinEntities(); //Entity'yi çağırdık
        public bool UyeEkle(string ad, string soyad)
        {
           
                Random rnd = new Random();
                int id = rnd.Next(11000000);
                entity.UyeTablosu.Add(new UyeTablosu {ID= id,Ad="Mert Can",Soyad="KARAOĞLU"}); //LinQ ile çok basit şekilde veri ekliyoruz.
                entity.SaveChanges();
                return true;
        }
    }

Hemen denemesini yapıyoruz. F5 tuşuna basıp localde WCF’i deniyoruz.

AzureWCF16

Görüldüğü gibi ad kısmına “deneme” , soyad kısmına “deneme1” yazdım ve invoke dedim(WCF’i local’de test etmiş oldum) ve value değeri True olarak bize döndü 🙂

11.Aşama

Şimdi ise WCF Service’i Azure Publich edeceğiz. Bu makalenin en önemli kısmı burası çünkü bu zamana kadar(Azure öncesi) WCF’ Servis’i ayağa kaldırmak çok zahmetliydi. Şimdi ise gerçekten çok kolay bir şekilde sadece 1-2 dk içerisinde Azure ‘da ayağa kaldıracağız. İlk olarak Azure üzerinde WCF Servis’i yayınlamak için bir site açacağız.

AzureWCF17

Bu şekilde hemen bir site oluşturuyoruz ve Visual Studio’ya geri dönüyoruz. Solution Explorer dan WCF Servis Projesine sağ tıklayıp Publish diyoruz.

AzureWCF18

Ardından çıkan pencerede Azure’u seciyoruz(Önemli Not: Azure SDK’nın yklü olması gereklidir)

AzureWCF19

Değişen sayfada Azure Hesap bilgilerini giriyoruz ve daha önceden açtığımız “wcfIcin” isimli siteyi seçiyoruz ve OK diyoruz.

AzureWCF20

Ardından gelen sekmedeki bilgilerin dolu olduğunu göreceksiniz 🙂 işte bu Azure’u Azure yapan en önemli kısımlardan bir tanesi. Yapmamız gereken yaklaşık 1-2 saatlik işten bizi kurtarmış oldu.Bu sekmede hiçbir değişiklik yapmadan Publish diyoruz.

AzureWCF21

Publish dedikten sonra dosyaları otomatik olarak Azure üzerine aktaracak yani bir ton işten kurtulmuş olduk 😀

AzureWCF22

 

12.Aşama (Windows 8 Tarafı)

Solution Explorer’ı açıp–> Solution –> New Project –> Visual c# –> Store App –> Windows Apps -> Blank App(windows) , diyerek projemizi oluşturuyoruz.

AzureWCF1

13.Aşama

MainPage.xaml sayfasını şekillendiriyoruz. Aşağıda resimde görüldüğü gibi.

AzureWCF24

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <TextBox x:Name="txtAd" HorizontalAlignment="Left" Margin="652,220,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontFamily="40" FontSize="40" Width="310" Height="36"/>
        <TextBlock HorizontalAlignment="Left" Margin="442,220,0,0" TextWrapping="Wrap" Text="Ad : " VerticalAlignment="Top" FontFamily="40" FontSize="40"/>
        <Button x:Name="btnUyeEkle" Content="Üye Ekle" HorizontalAlignment="Left" Margin="439,447,0,0" VerticalAlignment="Top" FontFamily="40" FontSize="40" Width="526"/>
        <TextBox x:Name="txtSoyad" HorizontalAlignment="Left" Margin="652,332,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontFamily="40" FontSize="40" Width="310" Height="36"/>
        <TextBlock HorizontalAlignment="Left" Margin="442,320,0,0" TextWrapping="Wrap" Text="Soyad : " VerticalAlignment="Top" FontFamily="40" FontSize="40"/>
        <TextBox x:Name="txtSonuc" HorizontalAlignment="Left" Margin="652,601,0,0" TextWrapping="Wrap" VerticalAlignment="Top" FontFamily="40" FontSize="40" Width="310" Height="36"/>
        <TextBlock HorizontalAlignment="Left" Margin="442,589,0,0" TextWrapping="Wrap" Text="Sonuç :" VerticalAlignment="Top" FontFamily="40" FontSize="40"/>
 
    </Grid>

14.Aşama

Ayağa kaldırdığımız WCF Servisi’ni projemize dahil edeceğiz. Solution Explorer’dan referances e sağ tıklayıp Add Service Referance diyoruz

AzureWCF25

Ardından çıkan sayfada “Burası çok önemli”  Address: kısmına sitenizin URL’ini ve yanına WCF Servis’in uzantısı ile birlikte adını doğru yazmanız gerekiyor. Ardından Go diyoruz ve eğer address doğru ise resimdeki gibi yazdığımız WCF Servis özüküyor. Ardından isim verip projemize ekliyoruz.

AzureWCF26

Solution Explorer’da referans olarak gözüküyor.

AzureWCF27

15.Aşama

MainPage.cs sayfasını açıyoruz ve .xaml sayfasındaki butonun click event’ını yaratıp içine giriyoruz.

AzureWCF28

16Aşama

Uygulamamızı RunTime’da deniyoruz.

AzureWCF29

İşlem başarılı bir şekilde halledildi 🙂

Son Aşama

Aslında amacımıza ulaştık ama şimdide WCF Serviste bir değişiklik yaptığımızda bunu nasıl tekrar güncelleyip Ayağa kaldıracağız ve projemizdeki servis’i nasıl tekrar güncelleyeceğizi göreceğiz. Aslında çok kolay 🙂

WCF Servis üstündeki güncellemeler bittiğinde, yine solution explorer üstünden WCF Servis projesine sağ tıklayıp Publish diyoruz, ardından açılan sayfada hiçbir değişiklik yapmadan tekrar Publish diyoruz 🙂 işte bu kadar kolay. WCF Servis Güncellendi 🙂

AzureWCF30

Şimdide client tarafında ki servis güncellemesini yapalım o da yine solution explorer sekmesinden eklediğimiz servisi bulup “Update Service Reference” diyoruz bu işte bitti 🙂 her şey çok kolay gözüküyor. Gerisi Azure’un tadını çıkartmak

AzureWCF31

İşlemler bitti, her işlemi fotoğraflarla destekleyerek anlatmaya çalıştım umarım faydalı olmuştur. Eğer aklınıza takılan bir soru olursa bana ulaşmakta çekinmeyin. İletişim sayfasından bana ulaşabilirsiniz. İyi günler dilerim,sağlıcakla kalın..

Örnek proje dosyası :  En yakın zamanda !

Herhangi bir sorunuz olursa; Yorum yaraparak yada bana (mertcankaraoglu@outlook.com) ulaşabilirsiniz.

Leave a Reply

  

  

  

%d blogcu bunu beğendi: