asp.net etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
asp.net etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Şubat 2016 Cuma

Asp.Net Web Servis oluşturma | Create Asp.net Web Service

Visual studio ile bir asp.net Web Application oluşturuyoruz. "File > New > Project" seçilerek karşımıza çıkan pencerede "Visual C# > Web" seçilerek sağ menüden "ASP.Net Web Application" seçilir. "Name" olarak site ismi yazılır. Ben üyelik örneği vereceğim için Uyelik ismini veriyorum ve tamama tıklıyorum. Daha sonra Empty özelliğini seçerek boş projemi oluşturuyorum.



Oluşan projemin solution explorer görünümünü açıyorum. Burada projeme web servis ekleme işlemi yapacağım. Eklemek için solution explorerdaki projemin isminin üstüne gelerek sağ tıklıyorum, "add > New item" diyorum. Açılan penceredeki Web sekmesine tıklanarak sağdaki listeden Web Service(ASPX) seçiyorum ve "uyelik.asmx" ismini veriyorum ve add diyorum.

 

Böylelikle web servisimizi oluşturmuş oluyoruz. Sırada bu servise bağlayacağımız veritabanı işlemleri var. Veri tabanımızı bu projemize eklememiz gerekmektedir.

Veritabanımızı eklemek için solution explorer görünümündeki projemizin üzerine gelerek sağ tıklıyoruz. "Add>New item" seçiyoruz. Açılan pencerede "Visual C#>Code" seçilir ve sağ listeden "Class" seçilerek sınıf ismi girilmelidir. Ben "Fonksiyon" olarak sınıf ismimi giriyorum ve ekleye tıklıyorum.


yeni oluşturduğumuz Fonksiyon.cs sınıfımızın içerisine aşağıdaki fonksiyonlarımızı yapıştırıyoruz. baglan() isimli fonksiyonumuzun içindeki SqlConnection isimli fonksiyonumuzun parametresine connectionstring' imizi yapıştırıyoruz.


public Fonksiyon(){
            //
            // TODO: Add constructor logic here
            //

}
public SqlConnection baglan()

{
     SqlConnection baglanti = new SqlConnection("workstation id=UyelikDB.mssql.somee.com;packet size=4096;user id=denemebaglantisi;pwd=*******;data source=UyelikDB.mssql.somee.com;persist security info=False;initial catalog=UyelikDB");
     baglanti.Open();
     return (baglanti);

}
public int cmd(string sqlcumle)
{
     SqlConnection baglan = this.baglan();
     SqlCommand sorgu = new SqlCommand(sqlcumle, baglan);
     int sonuc = 0;

     try
     {
          sonuc = sorgu.ExecuteNonQuery();
     }catch (SqlException ex)
     {
          throw new Exception(ex.Message + " (" + sqlcumle + ")");
     }
     sorgu.Dispose();
     baglan.Close();
     baglan.Dispose();
     return (sonuc);

}
public DataTable GetDataTable(string sql)

{
     SqlConnection baglanti = this.baglan();
     SqlDataAdapter adapter = new SqlDataAdapter(sql, baglanti);
     DataTable dt = new DataTable();
     try
     {
         adapter.Fill(dt);
     }catch (SqlException ex)
      {
          throw new Exception(ex.Message + " (" + sql + ")");
      }
      adapter.Dispose();
      baglanti.Close();
      baglanti.Dispose();
      return dt;

}

Projemize yeni bir .class oluşturuyorum. Projeye sağ yık > New item> Visual C# > Class tıkaladım ve adını UyeModel girdim tamam dedim.
UyeModel sınıfının kodları aşağıdadır.

namespace Uyelik
{
    public class UyeModel
    {
        public string AdiSoyadi { get; set; }
        public string Eposta { get; set; }
    }
}


Şimdi uyelik.asmx.cs dosyamıza yeni bir method yazacağız. Bu method bize bütün üyelerin bilgilerini getirecektir. Üye bilgilerini getirirken verilerimizi json formatına çeviriyoruz. Json.Net kütüphanesini kullanarak dönüştürme işlemini yapacağız. JsonConvert nesnesi bu kütüphane içersinde tanımlıdır. "Json.Net Kütüphanesi Ekle"  Methodumuz;

Fonksiyon db = new Fonksiyon();
[WebMethod]
public string GetUyeler()
{
     List<UyeModel> uyemodel = new List<UyeModel>();
     foreach (DataRow item in db.GetDataTable("select * from Uyeler").Rows)
     {
         uyemodel.Add(new UyeModel { AdiSoyadi = item["AdiSoyadi"].ToString(), Eposta = item["Eposta"].ToString() });
     }
     return JsonConvert.SerializeObject(uyemodel);

}

olacaktır. Bu method ile üye bilgilerimizi çekeceğiz. Birde üye ekleme methodu yazacağız. Bu method dışarıdan alacağı parametreler ile üye ekleme işlemi yapacaktır. Bu methodumuz;

[WebMethod]public void UyeEkle(string AdSoyad, string E_posta){
     db.cmd("insert into Uyeler (AdiSoyadi,Eposta) values ('" + AdSoyad + "','" + E_posta + "')");
 }

Bu metodumuza ad, soyad ve eposta bilgileri gelerek veritabanına kayıt işlemi gerçekleştirilmektedir. Projemiz sadece localde çalışacak şekildedir. sunucuda çalışabilmesi için web.config dosyamıza aşağıdaki kod parçasını yapıştırıyoruz.

<configuration>
    <system.web>
     <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>
 
Şimdi visual studioda oluşturduğumuz bu projeyi build edelim sonrasında publish ederek sunucumuza yükleyeceğiz. Ben sunucu olarak bedava olduğu için somee.com'u kullanacağım. Daha önceden üyelik aldığım bu sunucudan ("Somee.com Üyelik Oluşturma") yeni web sitemi oluşturacağım.

 User > Managed products > Websites tıklıyoruz. açılan menüden create diyorum.


 Creare website sayfasında Site adını "denemelerdenemeler" koyuyorum, bu alan daha önce ismi alınmamış alan ismi olmalıdır. Asp.Net version seçeneğini projemizde kullandığımız versiyonla aynı olmalıdır. Biz 4.0, 4.5 seçiyoruz. İsterseniz site title ve description alanlarını doldurabilirsiniz. En son create diyoruz ve sitemizi yayınlanabilir hale getiriyorum.


 Sitemizi oluşturduktan sonra aşağıdaki gibi bir ekran gelecektir. Manage website linkine tıklıyorum ve burada projemizde publish ettiğim dosyayı upload edeceğim.


 Website properties sayfasına yönleneceğiz. Bu sayfada faremizin tekerleğini aşağıya kaydırarak sayfanın altında bulunan özellikleri kullanacağız. Burada "File manager" linkini tıklıyorum.

 

 File manager sitemizin dosya yönetimini yapan sayfamızdır. Bu sayfada publis dosyalarımı upload edeceğim. Sayfada default.asp isimli dosyamı işaretliyorum ve "Delete" butonuyla siliyorum. Daha sonra publish ettiğim dosyalarımı "Uplaod" butonuna tıklayarak upload edeceğim.

 

 Publish dosyamı zipleyerek sıkıştırıyorum. Daha sonra File manager'da Upload butonuna tıklayorum. Açılan Gözat butonlarından birini tıklıyorum ve ziplediğim publish dosyamı seçiyorum Aç diyorum. Seçilen dosyayı "Upload and Unzip archives" seçeneğini tıklayarak sunucuma dosyalarımı upload ediyorum. Bu işlem biraz zaman alabilir lütfen bekleyin.


dosyalarımız upload edildiğinde şekildeki gibi gözükecektir.


artık tarayıcımıza adresimizi yazıp servisimizin yayınlandığını görebiliriz.
"denemelerdenemeler.somee.com/uyelik.asmx" yazıyorum ve karşıma oluşturduğum web servis çıkıyor.

 

Böylece web servisimizde üye ekleme ve üyeleri getirme işlemleri oluşturulmuş uzak sunucuya bağlantı sağlanmıştır.