Arşiv

Dün itibari ile Web Sitemin yeni yıl dönümüydü.

Ve dün itibari ile Web Sitem 3 yaşını bitirmiş oldu.

Umarım insanlığa faydalı bir şekilde işleyişimiz devam eder. Aslında bugün için önceki web sitemde olan soru ve cevapları bir dosya içerisinde sizlere sunmak isterdim ama nasip değilmiş demekki daha sonraya kaldı artık.

İnşallah daha nice yıllar sizlerle burada oluruz.

Selametle...

Etiketler : web sitemin yıldönümü
Kategoriler : Duyurular
Yorumlar : 0 Yorum Yorum Yaz

Internet Explorer 8 Beta 2 sürümünü yükleyen arkadaşlarımız muhtemelen Compatibility View özelliğini farketmişlerdir. Bu özellik Web Sayfasının Web Standartlara uygun olup olmadığını denetliyor. Bu özellik bir önceki Beta versiyonunda hatırladığımız kadarı ile Emulate IE7 özelliği ile işlevi aynı. Bu özellik bazı kullanıcıların (Web Developerların {like me :)}) Hoşuna gitse de bazı kullanıcıların hoşuna giden bir özellik değil. Çünkü bazı sitelerde sayfa o kadar karmaşık bir hal alıyor ki :) Aslında bu olayı web developerlar farkedip gerekli tag'ı HTML tagları arasına eklemesi tüm kullanıcıların yararına yoksa Müşteri arayıp benim sitem IE-8 de neden böyle görünüyor kardeşim diyebilir yani. Sorumlusu Web Tasarımcıdır Microsoft değil :).

Konuyu çok fazla uzatmadan hemen bir örnek ile göstereyim. Bu işi çok basit bir şekilde halledebilirsiniz. Siteye girdiğinizde normalde hemen adres çubuğunun yanında aşağıdaki gibi bir simge çıkıyor. IE-8 den sitemi takip edenler farketmiştir. Benimkinde de çıkıyor(du). Fakat sayfamı ona göre düzenledim.



Bunun için Tasarımcı arkadaşlarımızın yapması gereken küçük birşey var o da gerekli tag'ı html tagları arasına eklemek. Eklememiz gereken tagımız;

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Bu tag'ı <head></head> tagları arasına ekliyoruz ve en önemlisi en üst kısıma ekliyoruz. Yoksa neden hala benimki olmadı demeyin :)
Tag'ı ekledikten sonra bizi aşağıdaki gibi Compatibility View butonsuz bir görüntü bekliyor.



Hemen küçük bir hatırlatma yapayım. Bu tag'ı eklemek ile sitenizi IE-7 formatında çalıştırmasını söylüyorsunuz. Eğer IE-8 formatında çalışsın ve o buton orda çıkmasın diyorsanız IE=7 'i IE=8 yapmanız yeterli olacaktır.

Herşey bu kadar açık ve basit ;)

Hepinize hayırlı çalışmalar. Kolay gelsin.

Selametle...


Google CalendarYaklaşık 2 Hafta önce kullanmaya başladığım Google Calendar'ı sizlere tanıtmak ve anlatmak istedim. Alternatifleri varsa sizde benimle paylaşabilirsiniz.

Google Calendar adından da anlaşılabileceği gibi bir takvim uygulaması. Fakat bundan da öte sizin için bir hatırlatıcı, takipçi. Sizin için paylaşımcı bir ortam sunuyor. Eviniz için, içiniz için, şirketiniz için vs. birsürü takvim ekleyip bunları bir elden yönetmenize olanak veriyor. Misal Günlük hayatınızda zaten bir takviminiz var. Birde işiniz için olduğunu düşünün. İşiniz ile alakalı plan ve programlarınızı İşiniz ile alakalı takviminize etkinlik olarak ekliyorsunuz. Google Calendar sizi bilgisayarınızın başında olmasanız bile Mesaj ile uyarıyor. Diyorki şu vakit şu saatte etkinliğiniz var ya da programınız , çayınız kahvaltınız ne ise artık. Bu telefon üzerinden SMS hatırlatması için sadece Hattınızı doğrulamanız yeterli. Telefonunuza bir güvenlik kodu gönderiyor ve bunu google da sizi yönlendirdiği kısma giriyorsunuz. Ve istediğiniz etkinliğe SMS hatırlatması ekliyorsunuz.

Örnek veriyorum her ayın 23 'ünde A bankasına Kredi kartı borcu ödemeniz var. Çokça unuttuğunuzdan faizli şekilde ödüyorsunuz ve bu da sizi rahatsız ediyorsa, Google Calendar a her ayın 23 'ü A bankasına kart ödemem var diye ekliyorsunuz. Her ayın 23 'ü Google Calendar sizi istediğiniz aralıklarda uyarıyor.

Açıkçası bunlar Google Calendar'ın bir kaç özelliği. Şimdi ise bir başka özelliğine değinelim. Bu özellik ise Paylaşımcılık. Nedir ki bu paylaşımcılık :) ? Paylaşımcılık şöyle birşey. Şirket müdürünüz dedi ki. Bütün elemanlar Google Calendar 'a üye olsun. Bundan sonra işlerinizi oradan takip edeceksiniz. Google Calendar'a üye oluyorsunuz daha sonra Şirket müdürü size paylaşımcı olarak Google Calendar'dan izin veriyor ve artık o etkinlikleri sizde görebiliyor, etkinlikler için kendinize E-Posta hatırlatması, SMS hatırlatması belirleyebiliyorsunuz.

Sanırım bu kadar anlatım ihtiyacınız dahilinde Google Calendar kullanmanız gerekir mi gerekmezmi sizi bilgilendirmeye yeter.

Bu hizmet de Google'ın bir çok faydalı hizmetinden bir tanesi. Google veya benzeri hizmetleri kullandıkça sizlerle paylaşacağım. Şu anda Google'ın 3 hizmetini kullanmaktayım. Gmail, Google Reader ve şimdi de Google Calendar. Daha yenileri ile görüşmek üzre :)

Google Calendar için : www.google.com/calendar
Google Calendar için merak ettikleriniz : http://www.google.com/support/calendar/bin/topic.py?topic=13732

Selametle...


IP Adresini yazdırmak istediğini yere HttpContext.Current.Request.UserHostAddress yazmanız yeterli bu kadar basit :)

Misal Bir Label'e yazdırmak istiyorsanız

lblAdi.Text = HttpContext.Current.Request.UserHostAddress;

ya da şunu Tag olarak ekleyebilirsiniz.

<asp:Label runat="server" ID="lblUserIP"><%=HttpContext.Current.Request.UserHostAddress %></asp:Label>

Selametle...




Bu Makalemizde Global.asax dosyasını kullanarak sitemizde Online kullanıcı sayısını nasıl gösterebileceğimizi öğreneceğiz.

Bunun için ilk olarak Projemize sağ tuş ile tıklıyoruz ve Add New Item 'e tıklıyoruz. Gelen listeden Global Application Class'ı seçiyoruz.

Project > Add New Item > Global Application Class

Bu işlemi uyguladıktan sonra karşımıza aşağıdaki gibi bir kod sayfası açılacaktır.

Global.asax Code Page 

Kullanıcı girişinin olup olmadığını bu sayfa kontrol edeceğiz. Bu işlemi yapmak için Global.asax dosyamızın kod satırlarına bazı şeyler yazmamız gerekiyor.

İlk olarak Global.asax dosyamısınz Application_Start olayına

Application.Add(
"OnlineUserCount", 0);

Daha sonra Application_End olayına da

Application.Remove("OnlineUserCount");

Komutunu yazıyoruz. Bunların sayesinde Uygulama başlangıcında nesnemizi oluşturup, Uygulama sonlandığında da nesnemizi ortadan kaldırmış olacağız. Şimdi geldik asıl bölüme.
Yine Global.asax dosyamızın Session_Start [Oturum Başlangıcı demektir.] olayına

Application.Lock();
Application[
"OnlineUserCount"] = (int)Application["OnlineUserCount"] + 1;
Application.UnLock();


kodlarını ekliyoruz. İlk olarak Application.Lock ile Uygulamamızı kilitledik daha sonra OnlineUserCount anahtarımızın değerini 1 arttırdık ve son olarak da uygulamamızın kilidini kaldırdık.

Aynı işlemi Session_End için de yapacağız fakat bunda OnlineUserCount değişkenimiz 1 eksilecek çünkü Session_End oturumun bittiğini belirtir. Bunun içinde, Session_End olayına aşağıdaki kodumuzu aynen ekliyoru

Application.Lock();

Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] - 1;
Application.UnLock();

Evet. Temel taşlarımızı oturttuk. Şimdi ihtiyacımız olan Online kullanıcı sayısını göstereceğimiz yer. Online Kullanıcı sayısını sayfanızın neresinde göstermek istiyorsanız oraya <%=Application["OnlineUserCount"] %> kodunu yazmanız sizin için yeterli. Bu kod Aplication'un OnlineUserCount keyinde bulunan değeri bulunduğu yere yazdırır.

Ben sayfamda uygun bir yere yazdım ve çalıştırdım.

Online Kullanıcı Sayısı

Hepsi bu kadar. Bir sonraki makalemizde görüşmek üzre.

Selametle...


Geçenlerde ararken karşıma çıkan Hotmail, Yahoo vb. gibi yerlerde Maillerinizi okurken başlıkta çoklu seçim checkbox'unu görmüşsünüzdür. Yani en üstteki checkbox'a tıkladığınızda bütün maillerinizin seçildiğini görürsünüz. Bu işlemi Asp.net de yapmak çok da zor değil. Sadece birazcık Javascript koduna ihtiyacınız var o kadar. Neyse lafı fazla uzatmayalım. Yapmamız gereken ilk şey projemize bir adet DataGridView eklemek. Daha sonra DataGridView 'in EditColumns'undan bir adet TemplateField ekliyoruz. Şimdi ise sayfamıza Javascript kodunu ekleyelim. Bunun için aşağıdaki kodu Sayfanızın uygun bir yerine yerleştirin.

<script type="text/javascript" language="javascript">
function HepsiniSec(spanChk){
var oItem = spanChk.children;
var theBox= (spanChk.type=="checkbox") ?
spanChk : spanChk.children.item[0];
xState=theBox.checked;
elm=theBox.form.elements;
for(i=0;i<elm.length;i++)
if(elm[i].type=="checkbox" &&
elm[i].id!=theBox.id)
{
if(elm[i].checked!=xState)
elm[i].click();
}
}
function SecimKontrol(cb)
{
if(!cb.checked)
{
var cbAll = document.getElementById('chkAll');
cbAll.checked = 0;
}
}
</script>

Daha sonra DataGridView'imize tıklayalım ve Source bölümüne geçiş yapalım. Burada Oluşturduğunuz templateField in HeaderTemplate ve ItemTemplate bölümüne ihtiyaç duyacağız. Bunun için <asp:TemplateField></asp:TemplateField> tagları arasına girelim ve aşağıdaki kodu yapıştıralım.

<HeaderTemplate>
<
input id="chkAll" onclick="javascript:HepsiniSec(this);" type="checkbox" />
</HeaderTemplate>
<ItemTemplate>
<
asp:CheckBox ID="chkSelect" onclick="javascript:SecimKontrol(this);" runat="server" />
</ItemTemplate>

Hepsi bu kadar. Yapmanız gereken projenizi çalıştırıp sonucu görmek.

Aşağıda örnek resimleri görebilirsiniz. Anlatacaklarım bu kadar.

Seçilmiş Hali Birkaçının seçilmiş hali

Kolay Gelsin.

Selametle...


Heroes

Heroes, Prison Break ve Lost. Bildiğiniz bu diziler dünya dizi sektörünü en yakından etkileyen günümüz dizilerinden. Benim de hepsini izlemişliğim var :) Kafanız çok bunaldığında sizi gerçekçi dünyadan biraz öteye taşıyan diziler. Bu dizilerden Prison Break ve Lost yabancı kanallarda yayınlanıyor ve bu kanalların Türkiye yayını yok, daha doğrusu Türkiye'ye uydu yayını yok. Ancak film çektikten sonra fanları 2-3 saat geçmeden hemen internete ingilizce versiyonunu sızdırıyorlar :) Benim gibi ingilizce sıkıntısı çekenler 1 gün sonra filmi izleyip Türkçe alt yazı haline getiren kişileri beklemek zorunda kalabilirler. Bu durum Heroes için biraz farklı NBC kanalı Heroes'i direk yayınlıyor ve herhangi bir sıkıntı çekmiyorsunuz. Ayrıca CNNBC-E kanalı Türkçe alt yazı olarak Heroes'i yayınlıyor.

En son izlediğim ve hoşuma giden bir dizi olarak XMEN fanlarına Heroes'i tavsiye edebilirim. Teorileri ve Planları sevenler için Prison Break ve farklılık arayanlar içinde Lost'u izlemelerini tavsiye ederim. Şahsen benim dizileri izlememdeki en büyük sebeplerimden birincisi İngilizce seviyemi geliştirmek, ikincisi ise kod yazmaktan bunaldığım vakit kafamı başka yönlere çekip başka düşüncelere dalmak.

Bu 3 dizinin de Türkiye'de fanları oldukça geniş olduğundan hepsinin bir internet sitesi var. Aşağıda bunları bulabilirsiniz.

http://www.heroestr.net/forum/
http://www.prisonbreaktr.com/forum/
http://www.lostadasi.com/

Tabi bunlar benim saydıklarımdan birkaçı. Fan siteleri ise birsürü :)

Neyse fazla yazdık. Sürekli kod yazcak değilizce birazda kişisellik paylaşalım :)

Bu arada Heroes'in (Çok sevdiğimden ötürü) bir müddet ne zaman başlayacağını hatırımdan çıkarmamak için Bağlantılar Bloğunun altına geri sayım sayacı koydum :)

Görüşmek üzre.

Selametle...



Etiketler : Heroes Prison Break Lost
Kategoriler : Kişisel
Yorumlar : 0 Yorum Yorum Yaz

Uzun bir ara verdik. Vakit bulduğum için küçük bir makale yayınlayayım dedim. Çoğumuz program yazdığımız ilk başlarda Hata koruması kullanmadığımız için programımızın işleyişi durabilir ya da hiç çalışmaz bir hal alabilir. Akıllı bir programcı programının düzgün ve sorunsuz çalışmasını istiyorsa mutlaka programlama yaparken try catch finally kod bloklarını kullanmıştır. Bizde küçük de olsa try catch finally e değinelim.

Misal Convert.ToInt32 komutunu C# kullanan herkes karşılaşmış, görmüş ve ya kullanmışlığı vardır.

Girilen string bir değeri veya daha farklı türde bir değeri misal double int'e çevirmek istiyorsak genelde Convert.ToInt32 komutunu kullanırız. Bunu kullanırken girilen değerimiz alacağımız sonuç değerine uygun değilse ve biz try catch kullanmamışsak programımızın işleyişi duracak ve hata verecektir. Bildiğiniz üzere de programcının hata görüp programının çalışmamasını görmek çoğu zaman sinir bozucu bir hal almaktadır. Bunun için en mantıklı yöntem try catch bloklarını kullanarak hata esnasında programın sonlanmasını engelleyebilir ve kullanıcıya daha mantıklı ifadeler çıkarabiliriz.

Gelelim örneğimize. Ben bu örnekde Textbox'a girilen değeri 2 şekilde Int'e çevirmeye çalıştım. Birincisinde try catch kullanmadım ve sonucu gördüm. Aynı şekilde birde try catch finally kullandım ve sonucu tekrar kontrol ettim. Programıma 1 textbox 1 label ve 2 button koydum ve yazdığım komutlar şöyleydi.

Try Catch Finally Kullanarak

private void btnKontrolEt_Click(object sender, EventArgs e)
{
try
{
Convert.ToInt32(txtDeger.Text);
}
catch (Exception Hata)
{
MessageBox.Show(Hata.Message);
}
finally
{
MessageBox.Show(txtDeger.Text + " deeri kontrol edildi.");
}

Try Catch Finally Kullanmayarak

private void btnKorumasizKontrol_Click(object sender, EventArgs e)
{
Convert.ToInt32(txtDeger.Text);
}

2 buttonun birisine hata kontrolü koydum diğerine koymadım. Şimdi burda bilmemiz gereken şeyler;

try {} arasına yazdığımız kodlar normal şekilde işleyen kodlardır.
catch{} hata olduğunda yapılacak olan işlemler. Exception ile belirlediğimiz bir değişkene Hata ayrıntılarını yükleriz. Misal ben Exception Hata dedim. ve Hata.Message ile de hata mesajını aldım.
finally{} ise hata olsa da olmasa da gerçekleştirilecek olan işlemdir. Misal Bağlantı nesnesini sonunda ne olursa olsun kapatmak istiyorsanız finally arasına bu kodu yazabilirsiniz.

Programı Çalıştırdığımda Hata Kontrolsüz butona tıkladığımda aldığım hata programın durdurulmasına ve aşağıdaki hatayı almama neden oldu.

Hata kontrolü yaptığımda aldığım mesaj ise aşağıdaki gibi ve hatalı işlem yapmama rağmen program durmadı.

Ve son olarak da hata olsa da olmasa da finally ile aldığım mesaj

Anlatacaklarım bu kadar. İftar sonrası performans bu kadar :)

Hepinize yaralı olması dileği ile.

Selametle..




RSS 2.0
Sor Bakalım...
Arama
  Ara
Paylaş
| Diğer
Destek