Müdavim Girişi

E-Posta
Parola

Ücretsiz Kayıt Ol


Online Müdavimler (0 Kişi)
  • Online Kişi Bulunmadı

Yazar Hakkında
x
İsmail Kocacan
İsmail Kocacan is experienced on many development platforms and continues to learn technologies. Since the age of 16-17, dealing with software technologies. And continuous learning, teaching, research, continues to develop.
Oturum Nesnesi Optimizasyonu

Merhaba Arkadaşlar;

Çoğu zaman asp.net ile geliştirdiğiniz web yazılımlarınızda Session(Oturum) nesnesini kullanmışsınızdır.Bazen yeri geldiğinde Oturum nesnesinde çok fazla değer tutmak gerekiyor.İşte tam bu çok fazla değer tutma ihtiyacı giderilme sırasında yanlış bir mantıkla kodlama yaparsak web uygulaması performanslı çalışmayabiliyor sorunlar çıkarıyor.Kısacası aşağıdaki gibi bir yöntemle oturum nesnesinde değer saklamak pek mantıklı değil.

Session["ID"] = 1;
Session["AD"] = "İsmail";
Session["SOYAD"] = "Kocacan";

Neden mantıklı değil derseniz? Oturum nesnesinde değer saklarken key’lerin farklı olması demek sunucu belleğinde yeni oturum nesnelerinin oluşması demektir.
 
Hâlbuki amacımız nedir? Oturum nesnesinde bir kullanıcının bilgilerini saklamaktır. Ve
Bu bilgilere daha sonra erişerek işlemler yapmak vs.
 
Bilindiği üzere Session nesnesi bilgileri birer object(Nesne) olarak saklar. Object’ de bir tiptir, classtır yine aynı şekilde tüm nesnelerinde büyük büyük dedesidir.
 
Şimdi bu bilgiler ışığında kafamızda bir ampul yanıyor.  O zaman şöyle düşünsek herhalde yanlış olmaz. Session(Oturum) nesnesi bilgileri object olarak sakladığına göre. Oturum nesnesinde her türlü tipi(int, string, class, struct) saklamak mümkün.
 
O zaman oturum nesnesinde bir class saklıyacağız. Ve bu class’ın üyeleri olacak(id,ad,soyad) gibi.Şimdi bu dediklerimizi icraata dökelim;
Öncelikle Session da tutacağımız Classı tasarlayalım.

    public class Kullanici
    {
        public int ID;
        public string AD;
        public string SOYAD;
    }

Yukarıda bahsettiğim “bir kullanıcın bilgilerini saklamak” ibaresini yerine getirmiş olduk. Kullanici isminde bir class’ımız var. Ve ID, AD, SOYAD diye bilgileri var.
Şimdi bu classı Oturum nesnesinde nasıl saklarız ve sakladığımız bu class’a nasıl erişiriz
Ona bakalım.

//Session'a class atama
 Kullanici kullaniciX = new Kullanici();
 kullaniciX.ID = 1;
 kullaniciX.AD = "İsmail";
 kullaniciX.SOYAD = "Kocacan";
 Session["KullaniciX"] = kullaniciX;

 

//Sessiondaki classın bilgilerine erişmek
 if (Session["KullaniciX"] != null)
   {
        Kullanici XKullanici = (Kullanici)Session["KullaniciX"];
        string bilgiler =
               "ID    :" + XKullanici.ID.ToString() +
               "AD    :" + XKullanici.AD.ToString() +
               "SOYAD :" + XKullanici.SOYAD.ToString();
       Response.Write(bilgiler);
   }

Session daki bilgilere erişmek için öncelikle KullaniciX nesnesinin null olup olmadığına (bellekteki adresinin olup olmadığına) bakıyoruz. Nitekim Eğer nesne yoksa ve olmayan bir nesneye erişmeye kalkarsak hata alıcaz.
 
Amacım Sessionda birden fazla bilgiyi nasıl performanslı bir şekilde saklayabiliriz bunu anlatmaktı. Umarım faydalı olmuşumdur.
 
İsmail Kocacan (Yazılımcı Bozuntusu)

Kategori : Asp.Net | 27.06.2011 21:48:00  | 335 defa okundu  | 1 Yorum |

Yazara Ait Diğer Makaleler(51) Makaleye Yapılan Yorumlar Yorum Yazıcam
volkan atli | 12.03.2012 20:26:00
Bir Urun sınıfım var ben bunu sessiona yüklemek ve diğer sayfalardan da erisilip ürün eklemek istiyorum yani sepet gibi bunu nasıl yapabilirim mumkunmu yardım ederseniz cok sevinirim
Ara
 
Anket
Hangi VeriTabanı Yönetim Sistemini Kullanıyorsunuz ?