• XML Web Servislerinde Ön Bellekleme

    Şöyle bir XMLWebServis yazdımızı Düşünelim

    Online Ticaret Sitemizdeki Sipariş Datasını DataSet Olarak Getiren;

    [WebMethod(Description = "Sipariş Bilgisini Getirir",MessageName="SiparisGetir")]
    public DataSet GetOrdersByIDy(DateTime startDate,DateTime endDate)
    {
    using (SqlConnection con = new SqlConnection("data source=SERVERIP;database=e-commerce;integrated security=true"))
    {
    SqlCommand cmd=new SqlCommand("Select * From Orders Where orderID=@orderID",con);
    cmd.Parameters.AddWithValue("@startDate",startDate);
    cmd.Parameters.AddWithValue("@endDate",endDate);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
    }
    }

    Bu şekilde bir sipariş bilgisi WebServis den her çekildiğinde veri tabanına sorgu tekrardan gönderilip sorgu sonucu dönen data DataSet e doldurulup gönderilecektir.Bu da uygulamamıza belli bir yük getirir.

    Bu WebServis Metodumuzu ÖnBellek ile çalışır duruma getirmek istersek.

    "[WebMethod(Description = "Sipariş Bilgisini Getirir",MessageName="SiparisGetir",
    CacheDuration = 300)]"
    metodumuzun üzerine yukarıdali ifadeyi ekler isek yain "CacheDuration = 300" kısmını
    istemciden bir talep geldiğinde data 300 saniye önbellekte tutulacaktır.Aynı Zaman aralığındaki data tekrar istenir ise o data tekrar oluşturulmayacak önbellkten gönderilecektir.Parametre Olarak verilen her zaman aralığı için önbellekte 300 saniye yani 5 dakika o data tutulur ve bu şekilde tekrar o kadar sipariş bilgisi veri tabanından çekilmek zorunda kalınmaz..
    Mesela sitenizden entegrasyon ve benzeri bir amaç ile bir çok yerden sipariş datası çekiliyor ise bu bir avantaj olabilir...
  • You might also like