Ağu 05

Elimizde iki tablolu bir yapı olduğunu düşünelim, İşçiler ve Yöneticiler. Üç adet yöneticimiz ve bu yöneticilere bağlı 60000 çalışanımız olsun. Yöneticilere ait olan işçi sayılarına baktığımızda :
Select COUNT(*),yoneticiID
From tblIsci
Group By yoneticiID
Order By yoneticiID |
|
Yonetici ID
|
İşçi Sayısı
|
|
1
|
40000
|
|
2
|
19999
|
|
3
|
1
|
İlk olarak 1 adet işçinin bağlı olduğu ID si 3 olan yöneti ve işçi bilgilerini sorgulayalım.
|
Sıra
|
SQL Sorgusu
|
Sonuç
|
|
1
|
SELECT isciID,
isciAdi,
(SELECT yoneticiAdi
FROM tblYonetici
WHERE tblYonetici.yoneticiID =
tblIsci.yoneticiID)
FROM tblIsci
WHERE tblIsci.yoneticiID = 3 |
|
Etkilenen Satır Sayısı : 1
Sorgu Maaliyeti : 0.0006
|
|
2
|
SELECT isciID,
isciAdi,
yoneticiAdi
FROM tblIsci
INNER JOIN tblYonetici ON (tblYonetici.yoneticiID =
tblIsci.yoneticiID)
WHERE tblIsci.yoneticiID = 3 |
|
Etkilenen Satır Sayısı : 1
Sorgu Maaliyeti : 0.0006
|
Yukarıdaki 1 ve 2 numaralı testleri incelediğimizde etkilenen satır sayısı ve sorgu maaliyetleri aynı oldu. Şimdi birde etkilenen satır sayısı arttığında sorgu maaliyetinde bir değişme olacak mı ? bunu gözlemleyelim.
|
Sıra
|
SQL Sorgusu
|
Sonuç
|
|
3
|
SELECT isciID,
isciAdi,
(SELECT yoneticiAdi
FROM tblYonetici
WHERE tblYonetici.yoneticiID =
tblIsci.yoneticiID)
FROM tblIsci
WHERE tblIsci.yoneticiID = 1 |
|
Etkilenen Satır Sayısı : 40000
Sorgu Maaliyeti : 4.326
|
|
4
|
SELECT isciID,
isciAdi,
yoneticiAdi
FROM tblIsci
INNER JOIN tblYonetici ON (tblYonetici.yoneticiID =
tblIsci.yoneticiID)
WHERE tblIsci.yoneticiID = 1 |
|
Etkilenen Satır Sayısı : 40000
Sorgu Maaliyeti : 0.305
|
3 ve 4 numaralı testlerimize baktığımızda etkilenen satır sayıları eşit ve 40000, ama bu sefer sorgu maaliyetleri Join işleminde düşük çıktı.
Sonuç olarak kullanacağımız sorgularda eğer farklı tablolardan veriler ile çalışıyor ve etiklenecek olan satır sayısının büyük olacağını kestirebiliyorsak Join işlemlerini Sub Query işlemlerine tercih etmeliyiz.
Haz 01
Geliştirmekte olduğumuz uygulamalarda, bazen uygulamamızı kuracak olduğumuz bilgisayarın işletim sisteminin versiyonuna göre farklı işlemler gerçekleştirmemiz gerekebiliyor. Bunun içinde bu işlemlerden önce işletis sistemi bilgisini almamız gerekiyor.
OperatingSystem sınıf özelliklerini, kullanılan işletim sistemi hakkında gerekli bilgileri sağlar. OSVersion özelliği System.Environment sınıfı, bir OperatingSystem nesnesini döndürür.
System.OperatingSystem osInfo = System.Environment.OSVersion;
osInfo nun Version.Minor yada Version.Major bilgilerine göre işletim sistemine karar verebiliyoruz.
Örneğin :
PlatformID = 1 , Major= 4 , Minor=10 ise Windows 98
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| System.OperatingSystem osInfo = System.Environment.OSVersion;
string winVersion ="";
switch (osInfo.Platform)
{
case System.PlatformID.Win32Windows:
switch (osInfo.Version.Minor)
{
case 0:
winVersion = "Windows 95";
break;
case 10:
if (osInfo.Version.Revision.ToString() == "2222A")
winVersion = "Windows 98 Second Edition";
else
winVersion = "Windows 98";
break;
case 90:
winVersion = "Windows Me";
break;
}
break;
case System.PlatformID.Win32NT:
switch (osInfo.Version.Major)
{
case 3:
winVersion = "Windows NT 3.51";
break;
case 4:
winVersion = "Windows NT 4.0";
break;
case 5:
if (osInfo.Version.Minor == 0)
winVersion = "Windows 2000";
else
winVersion = "Windows XP";
break;
case 6:
if(osInfo.Version.Minor == 1)
winVersion = "Windows 7";
else if(osInfo.Version.Minor == 0)
winVersion = "Windows Vista";
break;
} break;
}
lblVersion.Text = winVersion; |

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| Dim osInfo As System.OperatingSystem = System.Environment.OSVersion
Dim winVersion As String = ""
Select Case osInfo.Platform
Case System.PlatformID.Win32Windows
Select Case osInfo.Version.Minor
Case 0
winVersion = "Windows 95"
Exit Select
Case 10
If osInfo.Version.Revision.ToString() = "2222A" Then
winVersion = "Windows 98 Second Edition"
Else
winVersion = "Windows 98"
End If
Exit Select
Case 90
winVersion = "Windows Me"
Exit Select
End Select
Exit Select
Case System.PlatformID.Win32NT
Select Case osInfo.Version.Major
Case 3
winVersion = "Windows NT 3.51"
Exit Select
Case 4
winVersion = "Windows NT 4.0"
Exit Select
Case 5
If osInfo.Version.Minor = 0 Then
winVersion = "Windows 2000"
Else
winVersion = "Windows XP"
End If
Exit Select
Case 6
If osInfo.Version.Minor = 1 Then
winVersion = "Windows 7"
ElseIf osInfo.Version.Minor = 0 Then
winVersion = "Windows Vista"
End If
Exit Select
End Select
Exit Select
End Select
lblVersion.Text = winVersion |
windows bilgilerinin tam listesi aşağıdaki resimlerde mevcuttur





Mar 17
Windows 7 ile birlikte gelen IIS 7 ve IIS 7.5 üzerinde , asp.net + sql ile hazırlamış olduğunuz bir sayfayı localhostunuzda yayınlmaka istediğiniz de “Login failed for user ‘IIS APPPOOL\Classic .NET AppPool’“ diye bir hata alırsanız eğer
Çözüm :
Denetim Masası – Yönetimsel Araçlar – Internet Information Services (IIS) Yöneticisi ni çalıştırın. Karşınıza çıkan pencerede Uygulama Havuzlarını seçin. Classic .NET AppPool üzerinde sağ tıklayıp Gelişmiş Ayarları seçiniz.

Açılan Pencerede İşlem Modeli grubunda Kimlik bölümünü LocalSystem sistem olarak değiştirdiğimizde problemimiz çözülecektir.

Mar 10
int bir değeri string ifadeye dönüştürmek için String.valueOf() fonksiyonundan yararlanıyoruz.
public class MainClass {
public static void main(String[] arg) {
int degisken = 12;
System.out.println(String.valueOf(degisken));
}
} |
string bir ifadeyi int degere dönüştürmek için ise Integer.parseInt() fonksiyonundan yararlanıyoruz.
public class MainClass {
public static void main(String[] arg) {
System.out.println(Integer.parseInt("100"));
}
} |
eğer bu ifadeyi bir textfiledden elde ediyorsanız
int deger = Integer.parseInt(txtAlan1.getString()); // stringi inte dönüştürme
txtAlan1.setString(String.valueOf(deger)); // int degeri textfield e aktarma |
Mar 08
Çoklu seçme şansını bize sunan CHECKEDLISTBOX bileşeni birçok durumda gerçekten işimizi kolaylaştırmaktadır. Normal listbox ile kullanımı hemen hemen benzerdir.
Selectedindex: Seçilen liste elemanının sıra numarasını verir.
Items.Count: Listedeki tüm elemanların toplam sayısını verir. Textbox1.Text=Checkedlistbox1. Items.Count
Checkeditems.count: Seçili olan elemanların sayısını verir.
Selecteditem: Hangi check seçili ise onun adını verir.
Items.Contains: Tüm liste içeriğini parantez içinde verilen değerle kontrol eder. Deger varsa true, yoksa false dır.
Şimdi yazacak olduğumuz örnek kod parçasında Checkeditems.count tan bahsedeceğiz. Yukarıda açıkladığımız gibi listemizde seçili olan elemanların sayısını öğrenmek yada seçili olanlarla işlem yapmak istiyorsak Checkeditems tan yararlanıyoruz.
[C#]
private void button1_Click(object sender, EventArgs e)
{
string seciliDeğerler = “”;
if (checkedListBox1.CheckedItems.Count > 0)
{
for (int i = 0; i < checkedListBox1.CheckedItems.Count; i++)
{
seciliDeğerler += checkedListBox1.CheckedItems[i].ToString() + ” , “;}
MessageBox.Show(seciliDeğerler);
lblSecililer.Text = seciliDeğerler;}
}
[VB.NET]
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim seciliDeğerler As String = “”
If checkedListBox1.CheckedItems.Count > 0 Then
For i As Integer = 0 To checkedListBox1.CheckedItems.Count – 1seciliDeğerler += checkedListBox1.CheckedItems(i).ToString() & ” , ”
Next
MessageBox.Show(seciliDeğerler)lblSecililer.Text = seciliDeğerler
End If
End Sub

Şub 18
Base64 şifreleme , 8 bitlik bir veriyi 64 bitlik bir veri haline getirerek 8 bit olmayan farklı katmanlarda veri iletişimi sırasında veri kaybını önlemek için kullanılır. Internet Explorer , Outlook Express ve diğer internet uygulamalarının dosya aktarımı veya otorum açma işlemlerinde yaygın olarak kullanılan bir şifreleme yöntemidir.
[C#]
public static string Encode(string sifrelenecekIfade)
{
byte[] sifrelenmisIfade = System.Text.ASCIIEncoding.ASCII.GetBytes(sifrelenecekIfade);
return System.Convert.ToBase64String(sifrelenmisIfade);
}
public static string Decode(string sifresiCozulecekIfade)
{
byte[] cozulmusIfade = System.Convert.FromBase64String(sifresiCozulecekIfade);
return System.Text.ASCIIEncoding.ASCII.GetString(cozulmusIfade);
}
[PHP]
<?php
echo base64_encode(”bilyaz.com”);
echo base64_decode($sifresiCozulecekIfade);
?>
Mar 12
Uml ile bir sistemi ifade ederken şekillerden yararlandığımızdan bahsetmiştim. Bu yazımıda bu şekilleri inceleyeceğiz
Sınıf : Aşağıdaki ifadeyi sınıf tasarımlarında kullanırız. Burada tanımladığımız öznitelikler ve operasyonların önlerindeki işaretler erişilebilirlik ifadeleridir.
“+” ifadesi herkese açık (public)
“-“ ifadesi sınıfa özel (private)
“#” ifadesi korumalı (protected)

yazının devamı için http://www.bilyaz.com/yazilim-muhendisligi/uml-de-sinif-diyagram-notasyonlari.html/ adresini ziyaret ediniz.
Şub 16
Herhangi bir işi geliştiren farklı departmanlar vardır ve bu departmanlar birbirlerinden farklı ortamlarda çalışsalarda aslında aynı işi geliştirirler. Birde proje içerisinde aktif rol alanların yanı sıra bu işi bize yaptıran bir yönetim ve işi bize veren müşterimiz vardır. Bu farklı grupların işte yapılacaklar konusunda , yapım sonucunda ortaya çıkacaklar konusunda aynı düşüncelere sahip olabilmesi için ortak bir dil kullanmaları gerekmektedir. Nasıl matematikte 2 + 2 = 4 se ve bu bir toplama işlemi ise bu yönetim içinde aynı şeyi ifade eder , çalışanlar içinde yada tamamen bağımsız birisi içinde .
Bunun içinde geliştirmekte olduğumuz işlerde UML (Birleşik Modelleme Dili) den yararlanırız. UML ile sistemimizi geliştirmeye başlamadan önce analiz aşamasında belirlediklerimizi diyaramlar yardımı ile hayata geçirmiş oluruz. Eksiklikleri , çalışma prensiplerini hatta senaryolarımızı bile…
http://www.bilyaz.com/yazilim-muhendisligi/uml-unified-modelling-language.html/ yazının devamı için ziyaret ediniz
Oca 28
Uygulamalarımızda elimizdeki mevcut verilerden yararlanarak kullanıcılara daha dikkat çekici bir görünüm vermek için grafiklerden yararlanırız. Örneğin sattığımız dört ürünün aylık satışa göre toplamda aldığı pay,televizyon kanallarının belirli bir saatte izlenme oranları gibi.
Makalemde sizlere pasta grafiği oluşturmdan bahsedeceğim. Uygulamamızda kullanıcılardan aldığımız üç değere dayanarak dinamik olarak grafik oluşturacağız. Uygulamamızı çalıştırdığımızda da aşağıda gördüğümüz ifade oluşacak.

Yazının Devamı
Son Yorumlar