1 Temmuz 2010 Perşembe

Yazdığımız Kodların Güvenliği

Arkadaşlar yazdığımız kodları nasıl koruma altına alırız (almaya çalışırız). Bu konuda güzel bir makale yazmışlar. Direk sizinle paylaşıyorum. Kolay gelsin.

http://www.csharpnedir.com/forum2/forum_posts.asp?TID=29958

MSN'le Gelen Sinir Bozucu Pencere

MSN her açtığımda otomatik olarak açılan ve benim beklememe(makinem çok yavaş :D) sebep olan pencerenin artık karşıma nasıl bir daha çıkmayacağını buldum.

Msn’inizde sırasıyla Araçlar >> Seçenekler >> Genel sekmesine gelin veya Otorum Aç sekmesine gelin >> Messenger’da oturum açtığımda Windows Live Bugün’ü görüntüle

şeklinde bir seçenek var. Bunu işaretleyip uygula dedikten sonra artık penceresiz bol günler.

26 Haziran 2010 Cumartesi

Captcha ve KittenAuth Nedir ?

Captcha ve KittenAuth zaman geçtikçe gelişen teknolojilere bir nebze güvenlik katmak için geliştirilen yapılardır. Hepinizin bildiği ve günlük hayatta sürekli karşısına çıkan (yorum yazarken vs) değişik harf ve sayılardan oluşan resimleri ekrana girmeniz istenir. Buna Captcha denir.

Paragrafın başında dediğim gibi sürekli gelişen bir teknolojiyle bu güvenlik ayarınıda geçmeyi başardılar. (Değişik yazılımlarla grafikleri okuma programları yaygınlaştı.) Buna karşıda Captcha gelişti ve KittenAuth adında bir güvenlik mekanizması ortaya çıktı. Bunun anlamıda karşımıza çeşitli görseller çıkıyor ve aynı olanlarını seçmemizi istiyor.

22 Haziran 2010 Salı

CSS İle Yazıya Takla Attırma

Arkadaşlar HTML yazıyı aşağıdan yukarıya doğru yazdırırken hep "mso-rotate:90;" css kodunu kullanıyordum. Ama yukarıdan aşağıya doğru bu kod işe yaramıyordu . Gel zaman git zaman aşağıdaki css kodunu buldum. Rotation=3 değerini değiştirtikçe istediğiniz yönü verebiliyorsunuz.

"float:left; filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);"

18 Haziran 2010 Cuma

C# NULL Kontrolü

Bazı değişkenleri kontol ederken null olup olmadıklarına göre işlem yaparız. Bunun içinde ben sürekli eğer bu değişken null'sa bunu yap gibi bir kod kullanıyordum. Bunun yerine yeni öğrendiğim bir kodu sizinle paylaşıyorum.

Yalnış:
var i = null;
var k = null;
if (i==null)
{
k=değer;
}

Doğru:
var i = null;
var k = null;
k = i ?? değer;

i değişkeni null'sa k değişkeninin içine değeri atama yapıyor. Değilse i değişkenini atıyor.
Ayrıca aynı javascriptteki gibi değişkenleri tanımlarken var k gibi tanımlama yapabiliyoruz. Bu sayede ileriki aşamalarda bu değikenimizin tipini belirleyebiliyoruz.

Linq To Sql Left Outer Join

İki tabloyu birlikte sorgulamak için inner join kullanırız. Bunu Linq To Sql ile yaparken aşağıdaki gibi bir Linq Query yazarak çözüyoruz
(Kisi, Telefon ve Adres tablolarımız olduğunu, bir kişinin de birden çok adresi ve telefonu olduğunu düşünüyoruz )
Bu sorgu sonucunda bana kişiler tablosundaki isimler ve bunlara ait telefon numaraları gelecektir.

from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID
select new
{
Ad = kisi.Ad,
Tlf = tlf.Numara
}

T-Sql çıktısı
SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
INNER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]

Lambda Expression
Kisis.Join ( Telefons, kisi => kisi.ID, tlf => tlf.KisiID, (kisi, tlf) => new { Ad = kisi.Ad, Tlf = tlf.Numara } )



Senaryomuzu değiştirelim ;
Kişiler tablosundaki tüm kayıtlat gelsin, telefon numarası olmayanlar da gelsin telefonu yoksa null değer gelsin. Bunun içinde Left Outer Join ile çözeriz. Linq sorugumuzu şu şekilde değiştirmemiz yeterli olacaktır.

from kisi in Kisis
join tlf in Telefons
on kisi.ID equals tlf.KisiID into data
from x in data.DefaultIfEmpty()
select new
{
Ad = kisi.Ad,
Tlf = x.Numara
}

T-SQL çıktısı

SELECT [t0].[Ad], [t1].[Numara] AS [Tlf]
FROM [Kisi] AS [t0]
LEFT OUTER JOIN [Telefon] AS [t1] ON [t0].[ID] = [t1].[KisiID]

Lambda Expression
Kisis
.GroupJoin (
Telefons,
kisi => kisi.ID,
tlf => tlf.KisiID,
(kisi, data) =>
new
{
kisi = kisi,
data = data
}
)
.SelectMany (
temp0 => temp0.data.DefaultIfEmpty (),
(temp0, x) =>
new
{
Ad = temp0.kisi.Ad,
Tlf = x.Numara
}
)



Kaynak: http://www.oguzyagmur.com/PermaLink,guid,b9fcc750-0e3b-43e4-a9e8-212ee94afa4e.aspx

25 Mayıs 2010 Salı

XHTML Nedir?

XHTML (Extensible Hyper Text Markup Language) tüm browserlar tarafından kabul görmüş standartları belirtir. Diğer bir deyişle HTML yazımında getirilen standartlardır. XHTML kullanmanın en önemli avantajı farklı tarayıcılarda(Opera, Explorer, Crome vs) sorun çıkarmamasıdır. Bir diğer avantajı ise arama motorlarının XHTML standartlarına uygun yazılmış sitelere daha yüksek not vermeleridir.

XHTML Dikkat Edilmesi Gereken Kurallar?

1) Browserin XHTML standartlarına uyulduğunu anlayabilmesi için sayfanın en üstüne aşağıdaki kodların eklenmesi gerekmektedir.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

NOT:Geçerli 3 adet XHTML döküman tipi vardır:

a) XHTML Strict
XHTML Dökümanlarını css dökümanları ile beraber kullanmanız gerektiğinde kullanılır. HTML’nin dizayn unsurlarını içermez.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

b) XHTML 1.0 Transitional
CSS anlamayan web gezginlerini desteklemek ve HTML’nin dizayn unsurlarını kullanmak istiyorsanız bu döküman tipini kulanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">

c) XHTML 1.0 Frameset
Eğer XHTML dökümanları pencerelere bölünmüş olarak gösterilecekse bu döküman tipini kullanın.
Tanımı:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

2) Türkçe karakterlerin doğru çıkması içinde head tagının arasına aşağıdaki kodun eklenmesi gerekmektedir.

<meta equiv="Content-Type" content="text/html; charset=utf-8">

3) Kodlar açıldıkları sırada kapanmalıdırlar.

Doğru:
<html>
<head>
<title></title>
</head>
<body>
<div>TeknoGezgin</div>
</body>
</html>

Yalnış:
<html>
<head>
<title></title>
<body>
</head>
<div>TeknoGezgin</div>
</html>
</body>

4) Tagları ve değerlerini küçük harfle yazın.

Doğru:
<title></title>
<div style="">TeknoGezgin</div>

Yalnış:
<TITLE></TITLE>
<div STYLE="">TeknoGezgin</div>

5)Açılan her tag kapanmalıdır.

Doğru:
<b></b>
<hr />

Yalnış:
<hr>
<br>

6) HTML tagı içerisinde head ve body tagları kullanılmak zorundadır.

7) Link ve Resim eklerken bir başlık (title) girilmelidir.

Doğru:
<img src="" href="Kastamonu.gif" title="Kastamonu Resimi" />
<a href="http://www.teknogezgin.blogspot.com/" title="Teknolojik Bilgiler :)">

Yalnış:
<img src="" href="kastamonu.gif" />
</a><a href="http://www.teknogezgin.blogspot.com/">

8) Parametreler tırnak içinde olmalıdır.

Doğru:
<div width="100%"></div>
<a href="http://www.teknogezgin.blogspot.com/">teknogezgin</a>

Yalnış:
<div width=100%></div>
<a href=http://www.teknogezgin.blogspot.com/>teknogezgin</a>

9) Parametrelerde kısaltmalar kullanılmamalıdır.

Doğru:
<input type="radio" checked="checked" />
<option selected="selected" />

Yalnış:
<input type="radio" checked />
<option selected />

10) Sadece Id parametresi kullanın. XHTML id parametresini kullanmamızı istiyor.

Doğru:
<p id="parag">
<input id="parag" value="deger" type="submit">

Yalnış:
<p name="parag">
<input name="parag" value="deger" type="submit">

O zaman kısaca XHTML dikkat edilmesi gereken kuralları şu formül ile açıklayabiliriz. XHTML = XML