Hoşgeldiniz Bugün 09 21 2017
#

Asp.Net ile Ziyaretçi Sayacı Yapımı

0423.sdt-csharp7

Merhaba Arkadaşlar,

Kodlama ile ilgili ilk paylaşımım olacak. Geçenlerde bir projede kullanmam gerekti bende hem kullandım hemde oturup buraya yazıyorum belki birine faydamız dokunur 😛

İlk önce boş bir asp.net empty web application açalım. Daha sonra projemize bir adet webform ekleylim ve içerisine sadecelabel koyalım.Hemen ileride kullanacağımız Global.asax dosyamızı da ekleyelim.


Basit olarak bir .txt uzantılı not defteri dosyası ekleyelim sayac adında. İçine sadece 0 yazalım.

Bir class oluşturalım. İsmi SayacIslem olsun. Burada sayac.txt dosyamızdaki sayıyı okuma ve arttırma işlemleri ile ilgilenelim.

SayacIslem classımızın içeriği :

public class SayacIslem
    {
        public static string SayiOku()
        {
            StreamReader sr = new StreamReader(@"C:\Users\YiğitCan\Desktop\Silinecek\sayacyapimi\sayacyapimi\sayac.txt");
            string sayi = sr.ReadLine();
            sr.Close();
            return sayi;
        }
        public static void SayiArttır()
        {
            StreamReader sr = new StreamReader(@"C:\Users\YiğitCan\Desktop\Silinecek\sayacyapimi\sayacyapimi\sayac.txt");
            int sayi =Convert.ToInt32(sr.ReadLine())+1;
            sr.Close();
            StreamWriter sw = new StreamWriter(@"C:\Users\YiğitCan\Desktop\Silinecek\sayacyapimi\sayacyapimi\sayac.txt");
            sw.WriteLine(sayi);
            sw.Close();
        
        }
    }

StreamReader ve StreamWriter sınıflarını kullanabilmek için System.IO isim alanını projenize dahil etmeniz gerekmektedir. Yaptığımız işlemden kısaca bahsetmek gerekirse;SayiOku fonksiyonumuzu static tanımladık.Sebebi tek bir yerde kullanacağımızdan nesne tanımlama işlemleri ile uğraşmayalım. Direk SayacIslem.SayiOku() şeklinde erişimimizi sağlayalım diye. fonksiyonumuz string bir değer döndürüyor gördüğünüz gibi.
StreamReader sınıfından nesne tanımlarken benim dosya yolum örnekte görüldüğü gibi “=new StreamReader(“projenizin bulunduğu dosya yolu ya da kullandığınız ve dosyanızı sakladığınız klasörün yolu. bir websitesi de olabilir”).
sr.ReadLine(); methodu adından da anlaşıldığı gibi satır okuma işlemi yapar. Bizde tek satır olduğundan yani sayıları tek bir satırda saklayacağımızdan herhangi bir döngüye ihtiyaç duymadan ilk satırı okutup sayi değişkenimize atadık. Daha sonra sr isimli nesnemizi kapattık ve sayi değişkenimizi geri döndürdük.
SayiArttır() methodumuzda static yine aynı şekilde fakat geriye bir değer döndürmüyor. Sadece gelen sayiyi 1 arttırıyor.
Methodumuzda ilk önce dosyamızı okuduk ve 1 arttırıp sayi değişkenimize atadık. Daha sonra StreamWriter sınıfını kullanarak sayiyi dosyamıza yazdırdık. Bu kadar basit bir işlem.

Gelelim bunu nerede kullanacağız :) 

Her sayfa yenilemede bir kez artsın diyorsanız sayfanın page load olayında kullanabilirsiniz. Ama daha gerçekçi bir sayaç olsun. Kaç kişi siteme girmiş göreyim diyorsanız da
Global.asax dosyamızın içerisinde bulunan Session_Start olayında aşağıdaki kod bloğundaki gibi kullanabilirsiniz.

protected void Session_Start(object sender, EventArgs e)
        {
            SayacIslem.SayiArttır();
        }

En başta oluşturduğumuzda labelimizda bu ziyaret sayısını gösterelim.

 protected void Page_Load(object sender, EventArgs e)
        {
            lblZiyaret.Text = "Ziyaret Sayısı :"+SayacIslem.SayiOku();

        }

Sadece lblZiyaret olan labelımıza yazma işlemi yapıyoruz. İşlemimiz bu kadar şimdi deniyelim ve görelim

Sayfayı yenilediğinizde sayı artmayacaktır. Yapamadık sanmayın :) Session_Start oturum açıldığında çalışır. Yani siz siteyi çağırdığınızda bir kez çalışır ve siteyi kapatana kadar aktif olur. Örneğin siteyi google chrome ile çalıştırdınız. Oturum başlamış oldu o Chrome’u kapatanana kadar siteye girseniz de o sayi artmayacaktir. Chorme’u kapatıp tekrar açarsanız yeni bir oturum açmış olursunuz bu da sayının artmasını sağlayacaktır. Umarım yararlı olmuştur.


Yorum Yap