jQuery DataTables Eklentisi

Merhabalar,

Bu gün bahsetmek istediğim konu yapmış olduğum bir projede bana çok fazla kolaylık sağlayan jQuery DataTables eklentisi.

Bu eklentinin işlevi yapmış olduğunuz tablo’ya sort,search,paging gibi birçok özellik kazandırması. Bu eklenti sayesinde bu özellikleri sizin yazmanıza gerek kalmıyor. Cidden kullanışlı bir eklenti.

jQuery Datatables eklentisine ulaşmak için tıklayınız.

 

İyi çalışmalar.
Ahmet 🙂

jQuery Değişken Kontrol.

Merhabalar,

Bazı durumda yapmış olduğunuz projelerde jquery değişkenleri global olarak kullanmanız ve başka bir yerden bu değişkeni okumanız gerekir eğer bu değişken yaratılmamış ise o sayfada bu kontrol işleminde değişken olmadığı için hata alırsınız. Bu hatayı alamamak için aşağıdaki kontrolu yapıyoruz.

[PHP]if(typeof(variable) != “undefined” && variable !== null) {

}[/PHP]

Ufak bir bilgilendirme idi umarım yararlı olur. 🙂

Ahmet KAYAR.

jQuery Template yapısı ve kullanımı.

JQuery Template Nedir?

jQuery template temelde javascript kodu ile html kodunu ayırmak için tasarlanmış bir yapıdır. Asp.net’in repeater’ı benzeri bir modeli vardır. Farkı; databinding javascript tarafından yapılır. Özellikle yoğun ajax kullanımının olduğu uygulamalarda, gelen json formatındaki dizileri bind etmek suretiyle kullanılır.

Web uygulaması geliştirilen her dille uyumlu olarak çalışabilen bu yapı. Asp.net geliştiricileri için çok daha kolaylık sağlamaktadır. Proje sırasında düzenlenmesi gerektiği durumlarda projenin tekrar derlenmesini gerektirmeden template dosyasını düzenlemesi ile bu çalışma yapılmış olacaktır.

jQuery Template kullanımı ve kod yapısı.

Kullanımı

jQuery template kullanımı için jquery.tmpl.js kodyasını projemize entegre etmemiz gerekmektedir.

http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.js

http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js

Kod Yapısı

[php]
<script id="ornek-tmpl" type="text/x-jquery-tmpl">// <![CDATA[
Kod Blogu Buraya gelecek.
// ]]></script>
[/php]

Ufak bir örnekle bu kod yapısını biraz daha açalım.

Örnek Kod

[php]

<script id="members-list-tmpl" type="text/x-jquery-tmpl">// <![CDATA[
{{if Json}}
{{each Json}}
{{if State=="0" }}
<li> Durum Aktif Değil. ${Name}-{{tmpl "#department-tmpl"}}</li>

{{else}}
<li>Aktif:${Name} – {{html Department}}</li>

{{/if}}
{{/each}}
{{else}}
<li>İçerik Bulunamadı.</li>

{{/if}}
// ]]></script><script id="department-tmpl" type="text/x-jquery-tmpl">// <![CDATA[
<strong>${id}</strong>
// ]]></script>
[/php]

Yukarıda kod yapısını açıklayacak olursak.

  1. id=”members-list-tmpl” type=”text/x-jquery-tmpl” : jQuery Template yapımızı tanımlamak için kullandığımız tag yapısı. ID alanı jquery templatemizin ismi ve type alanı da içerisinde yer alan kodların jquery tmpl olduğunu belirtiyor.
  2. 2.       {{if Json}} : Gelen datamızın içeriğinin olup olmadığı  kontrol ediyoruz.Eğer gelen data  yok ise. {{else}} kodu ile ekrana vermek istediğimiz uyarı mesajını yazıyoruz.
  3. 3.       {{each Json}} : Gelen datamızı döngüye sokmamızı sağlar.
  4. 4.       ${Name} : Data içerisinde yer alan veriyi bu şekilde ekrana basıyoruz. “${degisken}”. Earch olarak kullanmadığımız yani sadece tek veri gelen kısımlarda ise “${dataAdi.degisken}”  olarak kullanıyoruz.
  5. 5.       {{tmpl “#department-tmpl”}} :  Gelen datamızı ortak olarak birkaç yer de kullandığımı template yolluyoruz bu sayede kod fazlalığından kurtulmuş oluyoruz.
  6. 6.       {{html Department}} : Gelen datamızın içeriğinde eğer html kod varsa bu şekilde kullanarak gelen içeriğin browser tarafından işlenmesini sağlaya biliyoruz bu kodu kullanmazsak gelen içeriğimizi düz metin olarak ekranda gösterecektir.
  7. 7.       {{wrap “#examplewrap-tmpl”}}: Şu anki örneğimizde bu konu hakkında bir örnek mevcut değil ancak kullanımı şu şekilde. Tmpl kullanımının amacı gibi kod fazlalığını önlemek açısında ortak olarak kullanılan bir wrap-tmpl tanımlanıp bu kod ile içeriğimizi sarmamızı sağlaya biliriz. Yani bu kod kullandığımızda gelen tmpl içeriğimiz saracaktır.

Script Taraflı kod Kullanımı

 

$(“#members-list-tmpl”).tmpl(jsonData).appendTo(“#members-list”);

Bu yazmış olduğumuz kodu şu şekilde açıklaya biliriz. Html içerisinde tanımlamış olduğumuz tmpl alanını jquery tmpl metodunu kullarak sistem tarafıdan oluşturduğumu jsonData nesnemizi gönderiyor ve hangi alan bu işlemini uygulanması gerektiğini belirtiyoruz.

Yani: #members-list-tmpl templat’i kullarak jsonData verilerini #members-list id’li alna uygula.

jQuery Template ile ilgili örnek projeye jqueryTemplate‘den ulaşabilirsiniz.

İyi Çalışmalar.
Ahmet KAYAR

Asp.net Fancybox Postback Problemi.

Merhabalar;

Bu günkü yaşamış olduğum bir problemi yazmak istedim. Geliştirmiş oluğumuz  proje üzerinde Fancybox kullanıyorduk ve proje gereği Fancybox içinde bir buton ile güncelme yapmamız gerekti ancak bu işlem standart Fancybox ayarları ile yapılamadı o yüzden Fancybox içinde aşağıdaki düzenlemeyi yapmamız gerekti.

Fancybox Js içindeki.

Bu kodu Aşağıdaki gibi düzenliyoruz.

Artık Fancybox Postback işlemi tamamlanmış oldu.

Umarım yararlı olur.

İyi Çalışmalar.

Ahmet KAYAR.

Transaction ve İzolasyon Seviyeleri

Merhaba Arkadaşlar bu konumda sizlerle SQL Transaction ve Izolasyon seviyelerinden bahsetmek istiyorum. Öncelikli olarak Transaction nedir ? Transaction Niçin kullanılır ? bu soruları açıklayarak  Transactionlarda izolasyon seviyelerine geçeceğim.

Transaction NEDİR ? Niçin Kullanılır.

Transaction Ard ardına yapmamız gereken işlemler için. Kullanılır. Örneğin. Bankan sistemlerindeki banka havale işlemini düşünelim. Bir kullanıcının bakiye alanındaki paradan hava ücreti düşülüp diğer kullanıcıya aktarılması gerekiyor.

Sonuç olarak yazılan her uygulama bir insan işidir. Oyüzden sorunlar ve hatalarla karışlaşıla bilir. Kullancının hesabından parayı çektiğiniz an. Elektirikler Kesildi  ( Biz bahsız bedeviyizdir. Kesinlikle Olur böyle şeyler 🙂 ) ve çekilen para diğer kullanıcının hesabına aktarılamadı yani arada bir para kaybı meydana geldi. İşte bu tip bir sorunla karşılaşmamak için transaction kullanıyoruz.

Transaction ard ardına yapılan işlemlerin  hepsinin doğru bir şekilde tamamlandıktan sonra sisteme uygulanamasını sağlar. İşlemlerin birin dahi bir hata meydana gelse diğer işlemleri uygulamadan işlemi durdurur. Bu sayede veri güvenliği ve tutarlığı korunmuş olur.

Transaction = Ya hep, Ya hiç

Transaction Kullanımı

Bu işlemi test etmek için Batan bank isteminde bir veri tabanı oluşturuyoruz. Aşağıda görüldüğü gibi hesap isminde bir tablo ekleyip gerekli olan alanları oluşturuyoruz.

Oluşturmuş olduğumuz bu tabloya veri giriyoruz.

Verileri girdikten sonra hava işlemini yapmak için bir stor procedur yazalım. (Stor Procedur Kullanımı ile ilgili Ayrıntlı Bilgi için Tıklayınız.)

Yazmış olduğumuz bu proceduru uyguladıktan sonra çalıştırıyoruz. ( Uygulama işlemi için yazmış olduğumuz Stor Proceduru seçip F5 yapınız. )

İşlem Başarı ile gerçekleşti. 2 kayıt etkilendi.  Eğer İşlem Sırasında bir sorun meydana gelmiş olsa idi aşağıdaki gibi bir ekranla karşılaşılacaktı ve hiç işlem tamamlanmayacaktı.

Transaction ile ilgili Yazaklarım bu kadar arkadaşlar. Gelelim şimdi transactionlarda izolasyon seviyelerine.

Bir Sistemi Malumunuz olarak tek kişi kullanmaz bu birden fazla kişi kullanır. Bu kullanım sırasında aynı anda aynı tabloyu etkileyen işlemlerle karşılaşıla bilir. İşte bu tip durumlarda transactionların nasıl davranması gerektiği ile ilgili işlemlere transaction seviyeleri denir.

Eş Zamanlı Çalışan transactionlarda Oluşa bilecek durumlar 3 tanedir. Phantoms, Non-Repeatable Read, Dirty Read.

Phantoms

2 Tane Transactionumuzun olduğunu ve bunların eş zamanlı olarak çalıştığını düşünelim. Transaction1 veri tabanındanki bir veri kümesini çekiyor. Transaction2 ise veri eklemesi yapıyor ve uygulanıyor(Commit). Transaction1 tamamlanmadan veri eklemsi oluduğu için bu yeni eklenen satırlar transaction1 için hayalet satır olarak anlandırlır. Bu olaya Phantoms denir.

Non-Repeatable Reads

Yine eş zamanlı 2 tane Transactinumuz olsun. Transaction1 bu sefer sadece tek bir kayıt çekip onları görüntülesin. Transaction2 ise bu transaction1’in seçmiş oluduğu veriyi düzenlesin ve transaction uygulansın(commit). Transaction1 Seçmiş olduğu veriyi tekrar kontrol ettiğinde ortaya çıkan bilinmedik. Değişkliğie Non-Repeatable Reads denir.

Dirty Read

Bu durum Phantoms ve Non-Repeatable Read durumlarına göre biraz daha farklıdır. Eş zamanlı olarak çalışan Transaction’lardan birisi, diğerinin okuduğu aynı veriler üzerinde değişiklik yapar. Aynen Non-Repeatable Read e neden olan durumda olduğu gibi. Ancak önemli bir fark vardır. Değişiklik yapan Transaction Commit edilmeden, diğer Transaction aynı satırıları tekrar okur ve değişiklikleri görür. Bu andan sonra, değişiklikleri yapan Transaction yaptığı güncellemeleri RollBack ile geri alır. İşte bu noktada, verileri okuyan Transaction’ da geri alınmış (RollBack) yani veri tabanına yansıtılmamış değişiklikler halen daha var olacaktır ki aslında bu değişiklikler mevcut değildir. İşte bu durum Dirty-Reads olarak adlandırılır.

SQL Nedir ve Kullanımı

Merhaba Arkadaşlar bugün sizlere SQL ve Kullanımı ile ilgili bilgi vermek istiyorum. Öncelikli olarak SQL Nedir. Bundan bir başlayalım 🙂 gerisi gelir.

SQL Nedir.

SQL İngilizce Anlamı Structured Query Language (Yapılandırılmış Sorgulama dili) bir verbanı sorugu dilidir. (Bir Programlama dili değildir.) SQL ile veri Ekleme silme düzenleme. Var olan tablo üzerinde değişiklikyapma gibi işlemler yapılır. SQL bütün gelişmiş vertabanı uygulamarında kullanılır.

Veri Tabanı Uygulamaları

  1. Oracle
  2. db2
  3. Sybase
  4. İnformix
  5. Mİcrosoft SQL Server
  6. MS Access

SQL Veri Tanımlama Dili DDL (Data Definition Language)

Sql Server Üzerinde kalıcı yaplar oluşturmak güncellemek ve silmek için kullanılan kodlardır.

  • Create (Oluşturma)
  • Alter (Gücenleme)
  • Drop (Silme)

İşlemlerini Yapmakatadır.

Not: Bu Alanlar genelde pek kullanılmaz. O yüzden diğer makalelerimde yeri geldiği zaman açıklamlı olarak anlatacağım.

SQL Veri İşleme Dili DML (Data Manipulation Language)

DDL ile oluşturulan yapılar içerisine girilecek olan datanın yönetimini sağlar yani bir daha eklemek silmek güncellemek ve görüntülemek için bu kodlar kullaılır.

  • Select = Görüntüler
  • Insert = Yani Kayıt Ekıler
  • Update = Günceller
  • Delete = Siler

SQL Veri KOntrol Dili DCL (Data Control Language)

Yapılacak olan işleme izin verilip veya verilmeyeceği için kullanılan kodlardır.

  • Grant = İzinli Yapabilir.
  • Revoke = Başkasından izin alarak yapabilir.
  • Deny = işlemi Yapamaz
  • With grant Deny ile aynı anlama gelir.

DML

Select

Bilgileri götüntülemek için kullanılan basitçe raporlama işlemi olarakda adlandırılan kod parçalarıdır.

Kullanımı

Select Kolonadlari From TabloAdi

Örnek

Select * From Categories

Select CategoryName, Description From Categoires

Not: * Tüm kolanlar anlamına gelir.

Where (Koşul Kullanımı)

Kullanımı

Select Kolonadlari From Tabloadi where Koşul

Select * From Products Where CategoryID=1

Kategori ID 1 Olan tüm ürünleri getir.

Between (Arasında) Kullanımı

İki değer arasındaki verileri gelirmeye yararyan komuttur.

Kullanımı

Select kolanadlari from tabloadi where Kolonadi between ilkdeger and ikincideger

Select * From Products Where UnitPrice Between 50 and 100

Ürün fiyatı 50 ile 100 arasında olanları getir.

Like (İçinde)  KUllanımı

Kullanımı

select * From Tabloadi where kolonadi like ‘deger’

Like kullanımında aramak istediğiniz şekile göre değişik yöntemler blunmaktadır.

Bunlar

  • like ‘%Asd’ = Sonu asd ile biden değerler.
  • like ‘Asd%’ = Asd ile başlayan değerler
  • like ‘%Asd%’= Başı ve sonu önemli değil içinde asd geçen
  • değerler.
  • like ‘A___D’ = Aile başayıp d ile biten 5 karakterli değerler.
  • Not: “-” tek harf yerini tutuar.
  • like ‘[AS]%’ = ilk harfi A veya S olan değerler.
  • like ‘[A-S]ing’= ing ile biten ilk harfi a ile s arasındaki
  • harflerden biri olan 4 karakterli değerler.
  • like ‘M[^c]%’ M ile başayan ikinci harfi c olmayan tüm kayıtlar.

select * from Products where ProductName like ‘%Ch%’

Ürün Adının içerisinde ch geçen ürünler.
 

Evet Arkadaşlar bu makalemizinde sonuna geldik. Umarım yararlı bir bilgi olmuştur.

İyi Çalışmalar.

Ahmet KAYAR

Değişken Adlandırma Yöntemleri ve Kullanımı

Merhaba Arkadaşlar bu gün sizlere progralamanın en önemli konularında biri olan değişken adlandırma yöntemlerinden bahsetmek istiyorum. Bu konu niye bu kadar önemli diye sorduğunuzu duyar gibiyim. Hemen anlatıyorum bu konu aslında bir standarttır program yazarken değişken türünüzün nasıl bir değer ya da (en önemlisi bu) sizden sonradaki veya daha sonra çalışmanız gereken bir projede değişkenlerin tanımlama standartı yapmış olduğunuz kodun anlaşıla bilir olması için çok önemlidir. Bu yüzden bu standartlara program yazım sırasından çok dikkat etmemiz gerekmektedir. Akti taktirde tekrar programınıza baktığınızda ne yaptığınızı anlamanız biraz güç olacaktır. ( Yaşadım Ordan biliyorum 🙂 )

Değişken Adlandırma Standartları.

Pascal
Değişten Tanımlama işleminde değişkenin ismini oluşturan kelimelerin ilk harfi büyük diğer harfler küçük olarak yazılır.

Örnek:KatSayı,TextBox,ToString()

Camel
Pascal Adlandırma Standartdına benzeyen sadece değişken isimini oluşturna kelimelerin ilkinin ilk harfini küçük diğerlerini büyük olduğu tanımlama standartıdır.

Örnek :katSayi,adSoyad,tcKimlikNo

Hungarian
Macar(Hungarian) tanımlamla standartı. İlk 2 veya 3 harfi tanımlanan değişkenin türünü belirtilecek şekilde tanımlarnız. Türten sonra gelen değişken ismini oluşturan kelimlerin baş harflari büyük yazılır.

Örnek :dblIlkSayi, txtOgrenciAdi, strAciklama

Uppercase
Değişken isimleri tamamen büyük harfle yazılır.

Örnek: KATEGORIADI, OGRENCINO

Underscore
Değişkenler isimleri tanımlanırken değişken ismini oluşturan kelimeler arası altçizgi(undercore) ile ayrılır.

Örnek : KATEGORI_ADI, OGRENCI_NO

Evet Arkadaşlar bu şekilde bir makalemizin sonuna geldik. Bir sonraki makalemizde görüşmek üzere.

Ahmet KAYAR

C# Formu Mouse İle Sürükleme ( Point Olmadan. )

Kullanmış olduğunuz projelerde çerçevesiz form kullanmak gereke bilir. Bu işlemde formun taşınma sorunu ortaya çıkmasına sebep oluyor. Point kullanımı ile bu işlem yapılabiliyor. Ancak hem daha uzun hemde performans açışından pek iyi değil. Ben point kullanmanızı tavsiye etmiyorum.

Konuyu pek fazla uzatmadan Yazımı tamamlamak istiyorum. Yapmanız gereken İşlem Aşağıda da gördüğünüz gibi formun MouseUp Olayına. Aşağıdaki kodları yerleştiriyorsunuz. Artık Formunuz mouse sürükleyerek taşıya bilirsiniz.

[php]
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
this.Left = MousePosition.X – (this.Width / 2); this.Top = MousePosition.Y – (this.Height / 2);
}
[/php]

Saygılarımla.

Ahmet KAYAR

Altın Çilek Hapı Sahtekarlığı

Merhaba Arkadaşlar bu gün sizlere altın çilek ürünün aslında çok yararlı bir ürün olmasına rağmen bunun nasıl istismar edildiğinden bahsetmek istiyorum.

Altın Çilek Doğru olarak Meyvesi yendiği taktirde çok faydalı ve insanın metobolizmasını düzenleyen ve sağlıklı bir vücüt yapısına sahip olasına olanak tanıyan bir meyvedir. Ancak biz Türk Milleti her zamanki olduğu gibi herşeyin bir çakmasını yaptığımız gibi altın çileğin tablet, hap gibi altın çilek özü bulunduğu idda edilen ancak hiç bir şekilde içersinden altın çilek üzü bulunmayan ürünler ürettim satmaya başladı insan hayatı bu kadar kolaymış gibi çok insanın sağlıyla oynandı. Tavsiyem bu tip hap ve benzeri şeyleri kullanmayın her zaman olduğu gibi her şeyi özü güzeldi. Gerçeği yani yaş meyvesini alın kurutulmuş meyvesini alın ama gidipte hapını ve kapsunulu anlamayın sağlını tehlikeye atmayın.

Altın Çileğin Yaş Halini Temin Etmek ve Altın Çilek İle ilgili bilgi almak için tıklayınız.

Ahmet KAYAR

Google’dan Link Silme

Merhaba Arkadaşlar Yazımın başlığından anlaşıldığı üzerine bu gün sizlerle google’dan link silme işlemi ile ilgili bir yazı yazacağım. Fazla uzatmadan yazımıza geçelim.

Google’dan Link Silmeye Neden İhtiyaç Duyarız. Örneğin Daha önce kurmuş olduğunuz bir form var ve şu anda bu formu iptal ettiniz. O yüzden google aramalarda ve taglarde sitenizi buluyor ve boş sayfa ile karşılaşıyor. ( Ya da 404 Sayfası ) Bunu google pek sevmek ve kullanıcının anlık olarak siteden çıkması sizin pagerank değerinizi ve google‘de sıralamanızı etkileye bilir. O yüzden bu linkleri en kısa sürede google’dan silmemiz gerekir peki bu işlemi nasıl yapıyoruz.

Yapmamız gereken işlemler.

  1. Öncelikli Olarak bir Not defteri Açıyoruz.
  2. Not defterimizi Robots.txt olarak kaydeniyoruz.
  3. Not Defterine User-agent: * // Tüm arama Motorları Sitemi İndexlesin.
  4. Disallow: /form/   // Form Alt dizinindeki hiç bir dosyası indexleme. Bu alanı tarama
  5. Sitemizin Ana dizinine Robots.txt dosyamızı atıyoruz.

Tüm Yapılması gereken İşlemler bu kardar Google botu en kısa sürede bu linki arama sonuçlarından kaldıracaktır.

Ahmet KAYAR

Not: // İle Başlayan Yazılar Açıklama Yazısıdır. Robots.txt İçerisinden bulunmaası gerekir.