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.
Hiç yorum yok:
Yorum Gönder