MSSQL 2005 de Tarih Formatını Değiştirme

Evet yine sql yine tarih formatı :) Bilindiği üzere veritabanın kendi tarih formatı bulunuyor ve bu format varsayılan olarak us_english olarak geliyor. Bilmeyen arkadaşlar için bu tarih formatı Ay-Gün-Yıl (mdy) şeklinde, bizim kullandığımız düzen ise, Gün-Ay-Yıl (dmy). Bu çoğu zaman verileri listelerken, süzerken veya veritabanına kayıt eklerken sizi türlü türlü cambazlıklara iten, sürekli karşınıza farklı sıkıntılarla gelen bir handikap durumudur. Geçenlerde burada bir kısmından bahsetmiştim. Bu olayın sanıyorum ki en kesin çözümü sql serverin ayarlarını isteğimiz doğrultusunda düzenlemek.

Olayın mantığını anlamak açısından olayı biraz uzatmak istiyorum. Sql editörümüzü açıp “select * from sys.syslanguages” yazıp çalıştırdığımızda karşımıza diller ve ayarları geliyor. Kayıtları gördüğünüzde olayı zaten anlıyorsunuz. (Şekil-1)
syslanguages MSSQL 2005 de Tarih Formatını Değiştirme
Şekil-1 (kayıtların bir bölümü)

Sonrasında “select name, language from master.dbo.syslogins” dediğimizde karşımıza kullanıcıların kullandıkları varsayılan dilleri görebiliyoruz. Bu şu demek kullanıcıların dillerini kişiselleştirmemiz mümkün olabiliyor. (Şekil-2)
syslogins MSSQL 2005 de Tarih Formatını Değiştirme
Şekil – 2

Varsayılan dili öğrenmek için ise “select @@Language, @@Langid” cümlesinizi çalıştırıyoruz. (Şekil 3)
Langid MSSQL 2005 de Tarih Formatını Değiştirme
Şekil – 3

Varsayılan dili Türkçe yapmak için “EXEC sp_configure ‘default language’, 22 RECONFIGURE” cümlesini çalıştırıyoruz. Buradaki 22 Tükçe‘ nin langid si, yani “select name, language from master.dbo.syslogins” sorgusunu çalıştırdığımızda karşımıza gelen kayıtlardaki Türkçe‘ nin kaşısındaki langid değeri. Bu çözüm olması gereken şekli, istersek hiç bir şeye bulaşmadan “select * from sys.syslanguages” sorgusunu çalıştırıp elle formatları, gün ve ay isimlerini elle değiştrimemiz de mümkün. Bir yazının daha sonuna geldik, herkese güzel ve mutlu günler dilerim.

Çeşitli robot resimleri, Terminatörde dahil !

Sanayide, tıpta, askeriyede, uzayda, filmlerde kısacası yavaş yavaş her yerde robotları görmemiz mümkün. Her geçen gün insanlara benzetilmeye çalışılsalar da bilim adamlarına göre yolun çok daha başındalar. Bize çok basitmiş gibi gelen yürüme işlemini bile daha tam yapan bir robot dünyada bulunmuyor. Geçenlerde gezerken bulduğum çeşitli alanlarda kullanılan robotları sizlerle paylaşmak istedim, içlerinde meşhur film yıldızımız Terminatör’ de bulunuyor :) tn Çeşitli robot resimleri, Terminatörde dahil !

001 Çeşitli robot resimleri, Terminatörde dahil ! 002 Çeşitli robot resimleri, Terminatörde dahil ! 003 Çeşitli robot resimleri, Terminatörde dahil ! 004 Çeşitli robot resimleri, Terminatörde dahil ! 006 Çeşitli robot resimleri, Terminatörde dahil ! 007 Çeşitli robot resimleri, Terminatörde dahil ! 008 Çeşitli robot resimleri, Terminatörde dahil ! 009 Çeşitli robot resimleri, Terminatörde dahil ! 010 Çeşitli robot resimleri, Terminatörde dahil ! 011 Çeşitli robot resimleri, Terminatörde dahil ! 012 Çeşitli robot resimleri, Terminatörde dahil ! 013 Çeşitli robot resimleri, Terminatörde dahil ! 014 Çeşitli robot resimleri, Terminatörde dahil ! 015 Çeşitli robot resimleri, Terminatörde dahil ! 016 Çeşitli robot resimleri, Terminatörde dahil ! 017 Çeşitli robot resimleri, Terminatörde dahil ! 018 Çeşitli robot resimleri, Terminatörde dahil ! 019 Çeşitli robot resimleri, Terminatörde dahil ! 020 Çeşitli robot resimleri, Terminatörde dahil ! 021 Çeşitli robot resimleri, Terminatörde dahil ! 022 Çeşitli robot resimleri, Terminatörde dahil ! 024 Çeşitli robot resimleri, Terminatörde dahil ! 025 Çeşitli robot resimleri, Terminatörde dahil ! 026 Çeşitli robot resimleri, Terminatörde dahil ! 027 Çeşitli robot resimleri, Terminatörde dahil ! 029 Çeşitli robot resimleri, Terminatörde dahil ! 030 Çeşitli robot resimleri, Terminatörde dahil ! 031 Çeşitli robot resimleri, Terminatörde dahil ! 032 Çeşitli robot resimleri, Terminatörde dahil ! terminator Çeşitli robot resimleri, Terminatörde dahil ! terminator1 Çeşitli robot resimleri, Terminatörde dahil ! terminatorbb Çeşitli robot resimleri, Terminatörde dahil ! terminator09 Çeşitli robot resimleri, Terminatörde dahil ! terminator3 Çeşitli robot resimleri, Terminatörde dahil ! terminator34 Çeşitli robot resimleri, Terminatörde dahil ! terminatorkafa Çeşitli robot resimleri, Terminatörde dahil ! terminatordsa Çeşitli robot resimleri, Terminatörde dahil ! terminator11 Çeşitli robot resimleri, Terminatörde dahil ! terminatorv Çeşitli robot resimleri, Terminatörde dahil !

Tam isabet dedikleri bu olsa gerek :)

Millet nelerle uğraşıyor yahu, ortamın fotoğrafını ortama öyle bir tutuyorlar ki, yahu görmeniz lazım kelimeler kifayetsiz kalıyor :) dfg Tam isabet dedikleri bu olsa gerek :)

sdfghj Tam isabet dedikleri bu olsa gerek :) df23 Tam isabet dedikleri bu olsa gerek :) sd Tam isabet dedikleri bu olsa gerek :) 004 Tam isabet dedikleri bu olsa gerek :) sad Tam isabet dedikleri bu olsa gerek :) 006 Tam isabet dedikleri bu olsa gerek :) 007 Tam isabet dedikleri bu olsa gerek :) 008 Tam isabet dedikleri bu olsa gerek :) 009 Tam isabet dedikleri bu olsa gerek :) 010 Tam isabet dedikleri bu olsa gerek :) 011 Tam isabet dedikleri bu olsa gerek :) 012 Tam isabet dedikleri bu olsa gerek :) 013 Tam isabet dedikleri bu olsa gerek :) 014 Tam isabet dedikleri bu olsa gerek :) 015 Tam isabet dedikleri bu olsa gerek :) 016 Tam isabet dedikleri bu olsa gerek :) 017 Tam isabet dedikleri bu olsa gerek :) 018 Tam isabet dedikleri bu olsa gerek :) 019 Tam isabet dedikleri bu olsa gerek :) 020 Tam isabet dedikleri bu olsa gerek :) 021 Tam isabet dedikleri bu olsa gerek :) 022 Tam isabet dedikleri bu olsa gerek :) 023 Tam isabet dedikleri bu olsa gerek :) 024 Tam isabet dedikleri bu olsa gerek :) 025 Tam isabet dedikleri bu olsa gerek :) 026 Tam isabet dedikleri bu olsa gerek :) 027 Tam isabet dedikleri bu olsa gerek :) 028 Tam isabet dedikleri bu olsa gerek :) 030 Tam isabet dedikleri bu olsa gerek :) 031 Tam isabet dedikleri bu olsa gerek :) 032 Tam isabet dedikleri bu olsa gerek :) 033 Tam isabet dedikleri bu olsa gerek :) 034 Tam isabet dedikleri bu olsa gerek :) 035 Tam isabet dedikleri bu olsa gerek :) 036 Tam isabet dedikleri bu olsa gerek :) 037 Tam isabet dedikleri bu olsa gerek :)

Çok garip bir ofis

Zaman zaman ilginç ofis tasarımlarıyla karşılaşıyoruz, fakat böylesini ilk defa gördüm. Gerçi buna ofis değil de iş yeri desek daha iyi olur :) 54643 Çok garip bir ofis

asdasd Çok garip bir ofis fas Çok garip bir ofis 32e Çok garip bir ofis asd Çok garip bir ofis 324 Çok garip bir ofis g34 Çok garip bir ofis 32ew Çok garip bir ofis 324234 Çok garip bir ofis jh Çok garip bir ofis efw Çok garip bir ofis d Çok garip bir ofis hg Çok garip bir ofis sda Çok garip bir ofis sad Çok garip bir ofis rehtr Çok garip bir ofis


Web Servis Yazmak ve Kullanmak

Bu yazımda elimden geldiğince Web Service (Web Servis) konusuna değinmeye çalışacağım. Öncelikle web servis nedir sorusunun cevabını kendimce vermeye çalışayım. Çeşitli uygulamalar geliştiren bir firma olduğunuzu kabul edelim. Projelerinizde sık sık kullandığınız yapılar var örneğin, seçilen şehire göre ilçeleri listeleme veya döviz kurlarını gösterme gibi.. Biraz daha geniş düşünürsek, birden fazla uygulamada kullandığımız sanal posları tek bir merkezde toplayıp, istediğimiz uygulamadan veri gönderip işlemlerimizi gerçekleştirebiliriz. Servislerin bir güzelliği de, php, klasik asp, jsp, java vb.. dillerlede çok rahat bir şekilde kullanılması. Ne kadar yazarsam yazayım web servisin nimetlerini uygulamadan görmemiz imkansız. Öncelikle burada ve şurada ki makalelere göz atmanızda fayda var.

Visual Studio 2008′ i çalıştırıp, File / New Project / ASP.NET Web Service
Application
‘ a tıklayıp yeni projemizi oluşturuyoruz. Web Servis Yazmak ve Kullanmak

Karşımıza ilk gelen ekran şu şekilde olacaktır.

 Web Servis Yazmak ve Kullanmak

Hiç birşey yapmadan projemizi çalıştırıp örneğimizi gözlemliyoruz. (F5) Gördüğünüz gibi karşınıza HelloWorld adındaki işlemimiz geldi. Sayfadaki tasarımıda biz yapmadık otomatik geldi.

 Web Servis Yazmak ve Kullanmak

HelloWorld işlemine tıkladığımızda Çağır adındaki butonu görüyoruz, alt satırlarda gerekli açıklamalar yer alıyor.

 Web Servis Yazmak ve Kullanmak

Çağır butonuna tıkladığımızda, karşımıza xml şeklide bir veri geliyor. Hello World değişkeni string olduğu için string olarak geri döndü.

 Web Servis Yazmak ve Kullanmak

Gördüğünüz gibi çok basit bir yapı. Hemen kendimize bir işlem yazalım ve bilgimizi pekiştirelim. Projemize geri dönüyoruz ve HelloWord un altına yazmaya başlıyoruz. İşlemimiz ad ve soyad kontrolü yapıp geriye bool (true, false) bir değer döndürsün.

    [WebMethod]
    public bool ilkServisimiz(string ad, string soyad)
    {
        bool geriDonecekDeger;
        if (ad == "ali" && soyad == "veli")
        {
            geriDonecekDeger = true;
        }
        else
        {
            geriDonecekDeger = false;
        }
        return geriDonecekDeger;
    }
    //gördünüz gibi klasik c# dan hiç bir fark bulunmuyor.
    //servisde görüntülenecek işlemin kodlarının başına [WebMethod] eklememiz yeterli.

Bu basit yapıda ad ve soyad adında iki stringi alıp kontrol ediyoruz. Eğer istediğimiz bilgiler gelirse true değilse false döndürüyoruz. Projemizi hemen çalıştırıyoruz. HelloWorld şleminin altında ilkServisimiz adındaki işlemi görmüş olmamız gerekiyor. Tıklayıp çalıştırdığımızda bizden ad ve soyad değişkenlerini isteyen bir form görüntüleniyor. ali veli yazıp çağır dediğimizde sonuç true olarak, aksi durumda false olarak dönüyor. İlk servisimiz hayırlı uğurlu olsun :)

 Web Servis Yazmak ve Kullanmak

Şimdi web servis uygulamamızı web sayfalarımızda nasıl kullanacağımıza bakalım. Hemen Visual Studio 2008 den File / New Web Site diyoruz. Default.aspx sayfamızın içine hemen aşağıdaki gibi basit bir form koyuyoruz.

Ad

<asp:TextBox ID="txtad" runat="server"></asp:TextBox>

<br />

Soyad

<asp:TextBox ID="txtsoyad" runat="server"></asp:TextBox>

<br />

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Gönder" />

<br />

<asp:Label runat="server" ID="lblmesaj" ForeColor="Red"></asp:Label>

Şimdi gelelim web servisimizi web sayfamızda kullanmak için gerekli adımlara.  Solution Explorer dan sağ tuş tıklayıp Add Web Reference diyoruz.

siteyeekleme Web Servis Yazmak ve Kullanmak

Açılan pencereye oluşturduğumuz web servisin adresini girip Go diyoruz. Karşımıza işlemlerimiz geliyor ve ilkServisimiz adlı işleme tıklıyoruz.

siteyeekleme2 Web Servis Yazmak ve Kullanmak

Görüldüğü gibi web servis projemizi çalıştırdığımızdaki ekranlar ile birebir aynı bir arayüz geliyor karşımıza. Web reference name kısmında referans için bir isim giriyoruz. Ben ebreferansim diye giriyorum ve Add Reference ye tıklayıp projeme dahil ediyorum.

siteyeekleme3 Web Servis Yazmak ve Kullanmak

Solution Explore baktığımızda APP_WebReferences klasörünün altına gerekli dosyaların geldiğini görüyoruz. Aynı projede birden fazla web servis kullanmamız mümkün.

siteyeekleme4 Web Servis Yazmak ve Kullanmak

Default.aspx.cs dosyamıza gidip kodlarımızı yazmaya başlıyoruz. Unutmadan kodlarımızı oluşturduğumuz formdaki butonun onclick özelliğine yazıyoruz.

protected void Button1_Click(object sender, EventArgs e)
{
// servis adındaki nesnemizi oluşturuyoruz.
webreferansim.Service1 servis = new webreferansim.Service1();

//hemen servisimiz içindeki kodları hatırlayalım
//---------------------------------------------------
//[WebMethod]
//public bool ilkServisimiz(string ad,string soyad) {}
//aşşağıdaki satırda, ad ve soyad değişkenlerini aynen methodumuza gönderiyoruz.
bool servistenGeriDonenDeger = servis.ilkServisimiz(txtad.Text, txtsoyad.Text);

//dönen değeri ekrana yazdırıyoruz.
Response.Write("Geri dönen değerimiz: <strong>" + servistenGeriDonenDeger + "</strong>");

//pekiştirmek için basit bir if bloğu
if (servistenGeriDonenDeger)
{
lblmesaj.Text = "Bilgiler doğru !";
}
else
{
lblmesaj.Text = "Bilgiler yanlış !";
}
}

İşte bu kadar gördüğünüz gibi .net ortamında web servis hazırlama ve kullanma işi gerçekten çok basit. Unutmadan burada incelemeye değer çokça servis bulunuyor. Umarım faydalı bir yazı olmuştur, hoşçakalın.

Örnek
dosyaları buradan indirebilirsiniz.

Bö! 2009 Teknoloji Kategorisi 2. cisi www.apoStyLEE.com !

Blog ödülleri 2009‘ da Teknoloji kategorisinde Yakuter.com un ardından 2. olmuşum. Bu organizasyonda yer aldığım ve dereceye girdiğim için çok mutlu oldum. Dereceye giren tüm bloglara buradan bakabilirsiniz. Destekleyen tüm herkese sonsuz teşekkür ediyorum. 2 Mayıs 2009 Cumartesi günü yapılacak konferansa özel sebeplerden dolayı katılamayacağım. Fenerbahçe Faruk Ilgaz Tesislerinde Trabzonspor formamla ödül almak çok keyifli olacaktı ama olsun her işte bir hayır vardır. Kategori birincisi, Erhan Yakut arkadaşıma, üçüncüsü www.ogren.tv ekibini kutluyor, başarılarının devamını diliyorum.

Yarışmaya kaydoluşum, oylama süreci ve oylamanın ardından ki bekleme süreci ciddi anlamda çok eğlenceli geçti, zaman zaman da çok gerildim :D Sınavlar bir yandan Bö! bir yandan kilo vermeme bile sebep oldu süperdi yahu :) Özellikle son saniyeye kadar yanımda olan eşim Lülüfer’ e, Uğur abi, Ali Kemal abiAhmet abi, Hanife ablaya ve Mert‘ e desteklerinden dolayı teşekkür ediyorum. Tüm katılımcılara ve emeği geçen herkese tekrar tekrar teşekkür ediyorum. Güzellikle kalın.

Daha tutamadım kendimi

Günlerdir yaşadığım gördüğüm bir sürü olay var, kendimi tutup buraya yazmak istemedim ama artık dayanamadım ve yazma gereği duydum.

  • Polis orantısız güç kullanıyormuş ? Bana göre de doğru orantısız güç kullanıyor, tüm ihtarlara rağmen yasadışı gösteri yapanların üzerlerine ateş açmıyorlar. Arkadaş kötü insan birinden yada bir kurumdan korkacak, hani derler ya çocuk babadan korkacak diye aynı o misal. Polisten korkmazlar, askerden korkmazlar, Allah’ tan korkmazlar sonra gelip kafamıza çıkarlar. Güzelim sözde medyada çıkmıyormu polis orantısız güç kullandı diye beynime kan fışkırıyor. Polis dövecek abi, ağız burun kıracak ki gören tekrarını yaparken başına gelecekleri düşünecek. Koyun sürüsüne çevirdiler insanları, biri gazı veriyor arkasından destek geliyor. Polis orantısız güç kullanıyor, mahsum bir insanı tartakladı !!! Mahsumun olayın göbeğinde ne işi var ? Kavga gördüğüm zaman yolumu değiştiriyorum sende değiştir arkadaşım. Öyle bir milletizki kavga dövüş deyince arabamızı kenara çekip izliyoruz. Geçen günlerde İstanbul’ da ki teröristlerin bir evde sıkıştırılıp, sonrasında çıkan çatışmada mahsum insanların ölmesine herkes gibi bende çok üzüldüm. Şunu tartışırım neden bukadar uzun çatışıldı ama mahsum birinin neden öldüğünü durup tartışmam. Çatışma izlenmez, oyun değil bu silahlar gerçek ! Mükemmel basınımız ne diyor, İHMALKARLIK ! yok ya, her şeyi yozlaştırdığınız gibi bizim silahlı kuvvetlerimizide yozlaştırın. O kadar sinirliyimki bu konuda yazmamak için zor tutuyorum kendimi.
  • Trafik canavarı: Bizde, tüm alet edevatı kuralına göre kullanmama huyu zaten varsayılan olarak yüklü. Ben yoğun yamur altında 60 la giderken önümü görmekte güçlük çekiyorum, adam Allah ne verdiyse basmış gidiyor. İlerde o arba takla atıp insanların içinden saçıldığını görsem yeminle söylüyorum birde ben geçerim üzerlerinden umurumda olmaz. Hayır kendilerini düşünmüyorlar, ana babalarınıdamı düşünmüyorlar. Bu kadar cahillik olur mu ya ? Şuna karşıyım, çocuk 18 yaşında, oğlum üniversite sınavını kazan sana araba alacam. Bunu söyleyen bir ailenin zaten çocuğu çokda normal olamaz. (İstisnalar kaideyi bozmaz) 18 yaşındaki bir insan eğer hayatı boyunca okullar dershaneler arasında gidip gelmişse o daha çocuktur ve dünyadan haberi yoktur. Sonra toplarsınız refüjlerden.
  • Dolmuş şoförleri: Değerli insanlar, bizi oradan oraya taşıyorlar, ama Allah aşkına şu arabalarınızı adam gibi sürün. Çoğu zaman da yolcuların kendisi sıkıntı, alakasız yerlerde müsait yerde inebilir miyim diye haykırıyorlar, adamcağız dursa bir türlü durmasa bir türlü. İnsanımız 2 adım yürümekten aciz. Heleki kırmızı ışık geri sayarken 3 de başlamıyorlar mı korna çalmaya, oyyyy Allah’ ım tabancam olsa vururum.
  • BÖ! : Geçtiğimiz günlerde güzel bir yarışmaya katıldık, Blog Ödülleri adında. Bizim ülkemizde hiç bir şey maalesef hiç bir şey 4/4 lük olamaz, belki de olurda kendimiz oldurmayız. Arkadaş adamlar uğraşmış düşünmüşler, taşınmışlar bir şeyler yapmışlar, sonuçta bu ülkemizde tek ve çok yeni olan bir organizasyon, destek vermemiz gerekiyor. Kimse olumlu yönünden bakmayıp direk olumsuz yönlerine konsantre olmuş saydırıyorlar. Bir kesim takmış ödüllere, ne kadar maddiyatçıyız ya ! illa ödül mü olacak ? Katılırken paramı aldılar bizden ? Yada ne verdinde ne istiyorsun ? Yüzlerce yarışmacı arasından dereceye girmek zaten en büyük ödül değil midir ? Diğer kısım takmış oylamaya, sanırım sanal bir ortamda olduğumuzu ve millet olarak kafamızın her türlü çakallığa çalıştığını bilmiyorsunuz. Oylama ancak bu kadar olur, belki arka plana 1-2 kontrol amaçlı bir şeyler konulabilirdi ki zaten açıklamada bu tarz mekanizmaların varlığından bahsedildi. Yada direk jüri seçecekti, bu seferde taraf tutuldu, o onun arkadaşı, o onun kuzeni falan filan, yani mümkünatı yok kimseyi memnun edemezdiler, kim etmişki BÖ! edecek. Bence kabahatı önce kendimizde arayalım, bazı şeyler insanın içinde olacak içinde, sağa sola b*k atmak işin kolay kısmı. Kendi adıma BÖ! ekibine teşekkür ediyorum, çok eğlendim.
  • Cevap vermek: Bize konuşma öğretildikten hemen sonra aşılanmaya çalışılan şeylerin başında; büyüklere cevap verilmez ve biri bir şey sorduğunda efendim demekti. Herşeyin yozlaştığı, yozlaştırıldığı bugünlerde bu değerlerimizde yerlerini, saygısızlığa ve ukalalığa bıraktı. Özellikle her ama herşeye cevap vermeye çalışıp sonrasında altta kalmadım verdim ağzının payını diye kendinden gurur duyan insanlar beni kudurtuyor. Bu gurur verici bir durum değil aksine terbiyesizliğin, saygısızlığın ta kendisidir. Her ne olursa olsun saygının olmadığı yerde hiç bir güzel şeyin olması mümkün değildir. Bu futbolda da böyledir, işyerinde de, okulda da, araba sürerken de her yerde. Sagopa bir şarkısında “Muşamba dudaklarınızı yırtmak geliyor içimden” diyor, ne kadarda güzel diyor.

Beni tanımayan biri eğer bu yazıyı okumuşsa beni çok karamsar biri olarak gözünde canlandıracak, bazıları da salakça bulacaktır. İlk sorunun cevabı, aksine çok olumlu ve iyi bir insanım ama maalesef bu yazdıklarım acı gerçekler. İkinci sorunun cevabı ise çok hoşuma gidiyor, umurumda bile değilsiniz. Sağlıcakla kalın.

Datalist içinde RadioButton Gruplamak !

İlkten çok basit gibi görünen bir durum, fakat uğraşmaya başlayınca durumun böyle olmadığını görüyorsunuz. Senaryomuz şu şekilde;
verileri listelediğimiz bir DataList nesnemiz var, her satırın başında
bir RadioButton bulunuyor, biz kullanıcının sadece bir tane seçim
yapmasını istiyoruz (Şekil 1). Bir nevi RadioButtonList nesnesinin
yaptığı işi DataList içinde yapmak istiyoruz. Yaptığım araştırmalarda

CodePorject
de bir .dll sayesinde yapıldığını gördüm, fakat projeye bu .dll
yi eklemek işime gelmedi. Aklıma bu işin Javascript’ le çözülebileceği geldi ve
aramalarımı bu yönde sürdürdüm, en sonunda aradığım betiği buldum ve çok mutlu
oldum :) Sizlerlede paylaşmak istedim :)

 datalist Datalist içinde RadioButton Gruplamak !
Şekil 1

JavaScript Kodumuz

<script type="text/javascript">
function clickit() {
        var doc=document.all;
        var el=event.srcElement;
        if(el.tagName=="INPUT"&&el.type.toLowerCase()=="radio")
        {
                for(i=0;i<doc.length;i++)
                {
                        if(doc[i].tagName=="INPUT"&&doc[i].type.toLowerCase()=="radio")
                        {
                                doc[i].checked=false;
                        }
                }
        }
        el.checked=true;
}
</script>

Kullanımı ise şu şekilde

<asp:RadioButton ID="RadioButton1" runat="server" onclick="clickit();"/>

ASP.Net ile veri çekme testleri..

Zamanında overclock ile epeyce uğraştım, çok
fazla sayıda donanımı deneme ve test etme imkanı buldum. Sonrasında yazılım
tarafı ağır basınca overclock işini maziye gömdüm. Kaç zamandır acaba DataTable
mi kullansam, foreach mı kullansam veya DataAdapter mi kullansamın hesabını
yapıyordum, diğer yandan acaba hangisi daha performanslı çalışır veya kullanıcı
tarafında hangisi daha sorunsuz görüntülenebilir gibi düşünceler içerisindeydim.
Madem eski hız aşırtmacılardanım kendimce bir test (benchmark)
platformu hazırlayıp işe koyulayım dedim. Belki yanlış işlemler yapmış
olabilirim, göz ardı ettiğim noktalar olabilir bunları eğer paylaşırsanız çok
sevinirim.

Test sistemi;

Acer 5920G Dizüstü Bilgisayar (T7100 @ 1,8Ghz İşlemci, 4GB 800Mhz Bellek)
Windows Vista Ultimate (32-Bit) (Güncel), Internet Explorer 7, Mssql 2005, FrameWork 3,5 (Güncel),
Visual Studio 2008

Test hakkında:
Sql server, IIS ve İstemci aynı bilgisayardır, sonuçları ms cinsinden
etkilemiştir fakat tüm testler için aynı ortam olduğu için % olarak çok bir fark
olacağını sanmıyorum.
Testleri en çok kullanılan veri listeleme nesneleri olan GridView ve
DataList içinde listeledim.
Her testi 3 kez tekrarlayarak ortalamasını aldıktan sonra kayda geçtim.
SQL Server Profiler sadece ilgili testi yaparken açıktı, diğer durumlarda
kapalı.
Grafiklerdeki veriler milisaniye (ms) cinsinden olup, Sql S.P.
SQL
Server Profiler kısalıtılmış halidir.
Testler sırasında  EnableViewState=”false” durumundadır, nedenlerin başında
foreach döngüsünde viewstate boşken gridview ve datalist’ te dolu olması.
Haksızlık olmasın diye kapattım.

Sırasıyla 1000,10.000 ve 100.000 kayıt üzerinde denemeler yapılmıştır.
Testler arasındaki geçişleri // işaretlerini kaldırarak ve pageload daki method ismini değiştirerek gerçekleştirdim.
Hatırlatma: Milisaniye cinsinden değerler azaldıkça performansın arttığını
anlıyoruz.

Testte kullanılan kodlar ve tablonun yapısı:
Testte Vegawin ticari yazılımının kullanıcı işlemlerini loglayan tablosunu
kullandım, içerisinde 530.000 adet kayıt bulunan bir tablo, test sırasında
dışarıyla bağlantısı olmadığından herhangi bir ekleme yada silme işlemi söz
konusu değildi.

CREATE TABLE [dbo].[TBLLOG] (
[IND] int IDENTITY(100, 1) NOT NULL,
[FIND] int NULL,
[DIND] int NULL,
[PID] smallint NULL,
[TARIH] datetime NULL,
[MAKINE] nvarchar(50) COLLATE Turkish_CI_AS NULL,
[USERID] int NULL,
[BELGE] int NULL,
[BELGENO] int NULL,
[EYLEM] int NULL,
[ACIKLAMA] nvarchar(100) COLLATE Turkish_CI_AS NULL
)
ON [PRIMARY]
GO
[/html]

Yeri gelmişken bana Object Oriented konusunda yol gösteren ve herzaman vakit ayırıp sorularımı cevaplayan Yunus Emre arkadaşıma teşekkürlerimi sunuyorum.

Class.cs
[/html]
public class veritabani
{
static private string baglanti()
{
return @"Data Source=sunucu;Initial Catalog=veritabani;Persist Security Info=True;User ID=kullaniciadi;Password=sifre;pooling=true";
}
public static DataTable DataTableGetir(string strSQL)
{
SqlConnection conn = new SqlConnection(baglanti());
SqlCommand cmd = new SqlCommand(strSQL, conn);
cmd.CommandTimeout = 0;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
da.Fill(ds, "TABLE");
return ds.Tables["TABLE"];
}
catch
{
}
finally
{
if (conn != null && conn.State == ConnectionState.Open)
{
conn.Close();
}
conn = null;
}
}
}
[/html]
[/html]
public partial class _Default : System.Web.UI.Page
{
string kayitsayisi="100000";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
griddoldur2();
}
}

protected void griddoldur1() {
DateTime baslangic = DateTime.Now;

DataTable dt = veritabani.DataTableGetir("Select top "+kayitsayisi+" * from TBLLOG");
GridView1.DataSource = dt;
GridView1.DataBind();

//foreach (DataRow dr in dt.Rows)
//{
//Response.Write("

");
//Response.Write("

");
//Response.Write("

" + dr["IND"].ToString() + " - " + dr["FIND"].ToString() + " -
" + dr["DIND"].ToString() + " - " + dr["PID"].ToString() + " - " + dr["TARIH"].ToString() + " -
" + dr["MAKINE"].ToString() + " - " + dr["USERID"].ToString() + " - " + dr["BELGE"].ToString() + " -
" + dr["BELGENO"].ToString() + " - " + dr["EYLEM"].ToString() + " - " + dr["ACIKLAMA"].ToString() + "

");
//}

DateTime bitis = DateTime.Now;
TimeSpan fark = bitis - baslangic;
sonuc.Text = fark.TotalMilliseconds.ToString() +" mili saniye";
}

protected void griddoldur2() {
DateTime baslangic = DateTime.Now;
SqlConnection sqlConn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["baglanti"].ToString());
SqlDataAdapter sqlAdap = new SqlDataAdapter("Select top " + kayitsayisi + " * from TBLLOG", sqlConn);
DataSet Ds = new DataSet();
sqlAdap.Fill(Ds);
GridView1.DataSource = Ds;
GridView1.DataBind();
DateTime bitis = DateTime.Now;
TimeSpan fark = bitis - baslangic;
sonuc.Text = fark.TotalMilliseconds.ToString() + " mili saniye";
}
}
[/html]

Grafiklerle test sonuçları
asp.net 1000 kayıt performansı
asp.net 10000 kayıt performansı
asp.net 100000 kayıt performansı

Test sonuçları ve gözlemlerim:
Kayıt sayısı arttıkça foreach döngüsünün başarısıda ciddi anlamda artıyor.
Ekstra bir ayar yapmadığımdan dolayı veriler geldikçe tarayıcıya basılıyor ve bu
sayede kullanıcı diğer yöntemlerde verinin tam yüklenmesini beklerken bu yöntemde uzun süreli beklemeden
kurtulmuş oluyor, kayıtların tamamı döndükçe döndükçe geliyor ve aynı zamanda
düşük konfigürasyonlu bilgisayarlarda oluşacak olan donma ve yanıt vermeme
durumu ortadan kalkmış oluyor. 100.000 kayıt
ciddi bir rakam uygulamada belkide hiç karşılaşılmayacak bir rakam fakat neler
olduğunu görmek adına denemek istedim, veriler ekrana basılırken ve basıldıktan
sonra zaman zaman tarayıcınızın cevap vermemesine sebep oluyor, yinede sorunsuz
bir şekilde listeleniyor. Burada
belkide sql sunucu, istemci ve iis in bir arada olmasıda önemli bir faktör
olarak görülebilir fakat bellek kullanımı ve işlemci kullanımına baktığımda
anormal bir durum söz konusu değildi. Bu sadece bir testti, test sonuçlarından
sonra foreach çok daha performnslı diye bu yöntemi kullanıp, gridview ve
datalist gibi nesnelerin nimetlerinden yararlanmamak tabiki söz konusu olamaz.
Bu kadar çok kaydı ciddi raporlarda almadıktan sonra kolay kolay web de
karşımıza sanmıyorumki çıksın, az kayıt sayısında da devasa farklar oluşmuyor.
Burda dikkatimi çeken nokta ise DataTable nin performansı oldu, 1000 ve 10.000
kayıtta DataAdapter' e fark atıp foreach ile kafa kafa ya giderken 100.000
kayıtta tepetaklak olması beni şaşırttı. İlk fırsatta bu testi yeniden yapıp
sonuçları paylaşacağım. Asıl bundan sonra yapacak olduğum Insert ve Update
işlemleri beni çok meraklandırıyor, bakalım bu testlerde neler olacak. Kendime
göre çıkardığım sonuçta DataTable kullanmak en sağlıklısı, ama unutmayınki her
yiğidin bir yoğurt yiğişi vardır. :)

Benmi sınavları atlattım yoksa onlarmı beni ?

Son haftalarda zamanımın en büyük kısmını aof sınavlarına ayırmıştım. Elimden geldiğince çalışıp kayıpsız atlatmak istiyordum fakat ne varki bazı derslerde işler umduğum gibi gitmedi. Moralimi bozmuyorum finallere daha sıkı çalışıp istediğim sonuca ulaşcağıma inanıyorum. Sınav soruları eöğrenme portalından açıklandı fakat ne varki şuanda sitede tam tamına 41025 kişi aktif görünüyor. Eğer sayaç doğruysaki büyük olasılıkla doğru anlık bu kadar ziyaretçi olmasına rağmen site geçte olsa açılıyor ve isteklere cevap verebiliyor. AOF yetkililerini buradan tebrik etmek istiyorum, demekki önem gösteriyorlar. Konu nereden nereye geldi yahu :D Neyse sınavlara gire çıka gire çıka bir takım gözlemlerde bulundum ve bunları sizlerlede paylaşmak istedim.

  • Biz milletçe süsümüze düşkünüz, özellikle bizim buralar için (Trabzon) son zamanlarda süslenmek abartılı bir hal aldı veya bana öyle geliyor. Özellikle bayanların sınavlara geldikleri kıyafetler dikkatimi çok çekti. Normalde amaç eğer sınava girip soru çözmekse rahat şeyler giyilirki sıralarda oturduğumuz 2-3 saat zaman zarfı içerisinde perişan olmayalım. Arkadaş öyle acayip giysiler öyle acayip çizmelermi demeliyim yoksa ayakkabıya benzer ayağı örten şeylermi demeliyim böyle garip bişiyler. Onları gördükçe ben bunaldım, acayip acayip hâl hareketlerini görünce ben darlandım ama onlar hâllerinden gayet memnundular, zaten amaçları ilk 30 dakikadan sonra anlaşılıyordu da !
  • Sınavlara Karadeniz Teknik Üniversitesi’ nin çeşitli bölümlerinde girdim, gördümki sınıfların durumu birazcık kötü, tavandan aşşağıya sarkan projeksiyon cihazlarıyla teknolojik bir hava katılmaya çalışılmış sınıflar ise beni farklı etkiledi, nedenide oturulan sıralar dökülürken tavanda projeksiyonun işinin ne olduğu !:D Sıralarda fazla değil 10 dakika oturunca bel fıtığı geçirmemeniz içten bile değil. Öte yandan sıraların üzerlerine sağa sola baktığımda gördüğüm öğrenci pislikleri, demekki var bu sıralarda bir hikmet deyip çözümün projeksiyonda olduğunu anladım :D
  • Rahatımıza acayip düşkün bir milletiz, hemen hemen herkes sınav gününde kampüs içinde trafiğin felç olacağını biliyor fakat kimse arabasını bırakıp sınava gelmiyor. İmkan olsa soruları arabalarının içinde çözecek insanımız var :D Araba ile gelen genç kesimin büyük bir kısmının amacı 1. maddedeki arkadaşları tavlamak ve/veya hava atmak, geri kalan iyi niyetli kısım ise güya zamandan kâr yapmak için arabasıyla geliyor, ama her seferinde zarar yapmarına rağmen bunu bir türlü öğrenemiyorlar, bidahaki sınava yine aynını yaşayacaklar :D
  • Sınavda konsantrasyon çok önemli, insanın dikkati dağılınca bildiğinide yapamıyor. Bi acayip türden olan insanlar var, sınavda piknik yapıyorlar. Carrrttttt açıyor paketi, pıssssst açıyorda kolasını birde yayılıyorki Allah muhafaza lukur lukur içiyor, ula insan derki bir sürü vatandaş var burda az dikkatli olayım. Ama yokkk 4. sınıfın final sınavlarının en sonuncusunda mangalı getirip malı serecem, pöfür pöfür tüttürecem dumanı anca ozaman rahata ererim :D

Aklıma gelen olaylar bunlardı, belki benim hayat görüşümden dolayı bana ters belki çok kıryoum belkide cahilim bilemiyorum, bildiğim tek şey işlerin yolunda gitmediği. Nereye kafamı çevirsem bir sıkıntı bir tezat durum söz konusu. Amannn yaa neyse ne, bakın keyfinize arkadaşlar kalın sağlıcakla ;)

Sayfa 10 toplam 23 sayfa« Önceki...678910111213141520...Sonraki »