24 Mayıs 2013 Cuma

C# - Referans ve Değer Türleri Arasındaki Dönüşüm

Referans ve Değer Türleri Arasındaki Dönüşüm :

- NET sınıf kütüphanesinde yer alan "Convert" sınıfı string değerleri ve temel veri türlerini birbirine çevirmek için kullanılır. Her bir veri türü için ayrı bir çevrim fonksiyonu sahiptir.

Aşağıda referans ve değer türleri arasındaki dönüşüme örnek verilmiştir.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Convert1
{
    class Program
    {
        static void Main(string[] args)
        {
            string temp;
            double sonuc;

            Console.WriteLine("Lutfen bir deger giriniz:");

            temp = Console.ReadLine();

            sonuc = Convert.ToDouble(temp) * 5.2 + 4;

            Console.WriteLine("Sonuc=" + sonuc.ToString());

            Console.WriteLine("Sonuc={0}", sonuc);

            Console.WriteLine("{0} * 5.2 + 4 = {1}", temp, sonuc);

            Console.WriteLine(temp + " * 5.2 + 4 = " +  sonuc);
            
        }
    }
}

C# - Casting


Casting

- Bilinçli tür dönüsümünlerinde "casting" yönetmi kullanırken “tür dönüstürme operatörleri” kullanılır. Tür dönüstürme operatörü parantez içinde değişken yada sabitten önce yazılır.
Aşağıda bilinçli tür dönüşümünlerinden casting'e örnek verilmiştir.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Casting
{
    class Program
    {
        static void Main(string[] args)
        {

            byte a;
            int b = 50;
            int c = 356;

            a = (byte) b;

            Console.WriteLine("a=" + a);

            a = (byte)c;

            Console.WriteLine("a=" + a);

            Console.Read();

        }
    }
}

C# - Bilinçsiz(Implicit) Tür Dönüşümleri



- Derleyici tarafından bir değişkeni tanımladığımız türün dışın geçici olarak başka bir türe çevirmeye bilinçsiz tür dönüşümü denir.
- Bilinçsiz yapılan tür dönüşümlerinde bir nesnenin türü asla kalıcı olarak değiştirilmez.
- Bilinçsiz yapılan tür dönüşümleri 2 şekilde gerçekleştirilebilir.

a.Küçük Türün Büyük Türe Dönüştürülmesi: Küçük türler büyük türlere dönüstürülürken fazla olan bitler yani büyük türden dolayi eklenen bitler sıfırla beslenirler. Küçük türün yüksek anlamli bitlerinin sifirla beslenmesi degiskendeki degeri değiştirmediği için tür dönüşümünde herhangi bir veri kaybı olmaz

b.Büyük Türün Küçük Türe Dönüştürülmesi: Büyük türlerin küçük türlere otomatik dönüştürülmesi C#’da yasaklanmıştır. Eğer bu tür bir dönüstürme(bilinçsiz olarak) mümkün olsaydı bir takim veri kayıpları yaşanacaktır.

Aşağıda bilinçsiz tür dönüşümüne örnek verilmiştir.
using System;
using System.Collections.Generic;
using System.Linq;

using System.Text;


namespace BilincsiTurDonusumu

{

    class Program

    {

        static void Main(string[] args)

        {

 int a = 5;


 float b = 3;

             

//Altaki kod blogu calismayacaktır. Cunku buyuk degerli (float) b
//kucuk degerli (int) a ya atanmaya calisilmistir.
//a = b;

b = a;


Console.WriteLine(b);


Console.Read();
}

}

}

23 Mayıs 2013 Perşembe

Ağ kablosu nasıl hazırlanır?


Bir ağ kablosu hazırlamadan önce kablonun hangi amaçla kullanılacağına karar vermemiz gerekiyor. Kabloyu bir bilgisayar ile herhangi bir ağ cihazı arasında kullanacaksak düz bağlantı yapmalıyız. Eğer kabloyu iki bilgisayar arasında kullanacaksak (kablonun bir ucu A bilgisayarına takılı iken diğer ucuda B bilgisayarına takılacak ise) cross (çapraz) kablo kullanmalıyız. Yazımın devamında düz bağlantı renkleri, cross (çapraz) bağlantı renk sırası ve bu kabloları hazırlarken kullanacağımız rj45 konnektör, utp cat5 kablo ve sıkma pensesi hakkında açıklamaları bulabilirsiniz.
Cross kablo yada düz kablo kullanacakta olsak kullanacağımız malzemeler değişmeyecektir :
  1. Yeterli uzunlukta UTP Cat5 kablo
  2. Utp kablonun her iki ucuna takacağım Rj45 konnektör (tek seferde sorunsuz yaparım diyorsanız 2 tane yeterli)
  3. Rj45 konnektörleri kabloya çakmak (yada takmak) için kablo sıkma pensesi.
Çapraz bağlantı ve düz bağlantı renklerini vermeden önce bu malzemeleri çok kısa resimli olarak tanıtmak istiyorum.

1. UTP CAT5 KABLO

Bilgisayar ağlarında yaygın olarak kullanılan kablo tipi UTP kablodur. UTP kablolar belirli bir mesafede üzerinde taşıyabileceği veri miktarına göre cat1 den başlayarak cat7 ye kadar kategorilere ayrılır. Günümüzde neredeyse bütün bilgisayar ağlarında cat5 kablo kullanılır. 100 metreyi aşmayacak şekilde hazırlanan bir cat5 kablo 100Mbps’ lik veri taşıyabilir. Buda cat5 kablolar ile saniyede en fazla 100Mb veri aktarılabileceği anlamına gelir. Utp kablo içerisinde 8 adet renkli ince kablo bulunur. Hazırlayacağımız kablonun cross yada düz bağlantı olmasına göre bu 8 kablonun renk sırası farklılık gösterir.

2. RJ45 KONNEKTÖR

Utp Cat5 kablo içerisindeki kablolar doğru renk sırasıyla Rj45 konnektöre yerleştirilir. Bunun için Rj45 konnektör içerisinde 8 adet giriş vardır. Utp kablo içerisindeki 8 ince kablo bu girişlere doğru şekilde yerleştirilir. Bu yerleştirme işleminden önce kabloların uçları Rj45 konnektörün içerisindeki iletkenlere temas edecek kadar soyulur. Bu soyma işleminde kablo sıkma pensesinden faydalanabilirsiniz.

3. KABLO SIKMA PENSESİ

Yeteri kadar soyduğumuz ince kabloları doğru renk sırasıyla Rj45 konnektöre yerleştirdikten sonra yine aynı pense ile utp cat5 kablo ve Rj45 konnektörü sıkıştırıyoruz.
Kablo hazırlama işlemi sırasında kullanacağımız olmazsa olmaz olan 3 materyali tanıttıktan sonra kablolarımızdaki renk sıralarına geçiyoruz. İki kablo türü arasındaki farkı yazımın giriş kısmında vermiştim.

Düz Bağlantı Renk Sırası

Eğer hazırladığınız ağ kablosunu bir bilgisayardan bir ağ cihazına (modem, switch, hub vs.) bağlayacaksanız düz bağlantı kullanılmalıdır. Düz bağlantının özelliği kablonun her iki ucundada aynı renk sırasını kullanıyor olmamızdır. Bu renk sırasını uluslar arası standarda göre hazırlayabileceğiniz gibi her iki uçtaki renklerin sırasının aynı olması şartıyla istediğiniz bir sırayla da hazırlayabilirsiniz. Genel olarak kullanılan düz bağlantı renk sırası aşağıdaki gibidir. Resimdeki her iki uçtada renk sırasının aynı olduğuna dikkat ediniz.
Turuncu –Beyaz (TB)
Turuncu (T)
Yeşil – Beyaz (YB)
Mavi (M)
Mavi – Beyaz (MB)
Yeşil (Y)
Kahverengi – Beyaz (KB)
Kahverengi (K)

Cross (Çapraz Bağlantı Renk Sırası)

Çapraz Bağlantı Nedir? Cross Bağlantı Nasıl Hazırlanır?
Hazırlayacağınız ağ kablosunu iki bilgisayar arasında kullanacaksanız (arada hiçbir ağ cihazı bulunmadan, bir bilgisayardan diğerine takacaksanız) çapraz bağlantıyı tercih etmelisiniz. Bu durumda Ethernet kablonuzun bir ucunu düz bağlantıda renk sırasıyla hazırlarken diğer ucunda ise 1 ve 3. renkler ile 2 ve 6.renkler yer değiştirecek şekilde bağlamalısınız. Çapraz (cross) bağlantı renk dizilimi aşağıdaki gibi olmalıdır.
Kablonun 1.ucu Kablonun 2. ucu
Turuncu –Beyaz (TB) Yeşil-Beyaz (YB)
Turuncu (T) Yeşil (Y)
Yeşil – Beyaz (YB) Turuncu – Beyaz (TB)
Mavi (M) Mavi (M)
Mavi – Beyaz (MB) Mavi – Beyaz (MB)
Yeşil (Y) Turuncu (T)
Kahverengi – Beyaz (KB) Kahverengi – Beyaz (KB)
Kahverengi (K) Kahverengi (K)

22 Mayıs 2013 Çarşamba

VISUAL STUDIO KLAVYE KISAYOLLARI





Ctrl+K, Ctrl+D

Dökümanı düzenle



Ctrl+K, Ctrl+C

Seçili kodu yorum satırı (Comment) yap



Ctrl+K, Ctrl+U

Yorum satırı yapma işlemini geri al (Uncomment)



Ctrl+K, Ctrl+X

Hazır kod ekleme (Insert Snippet) seçeneklerini görüntüle



Ctrl+M

Kod blogunu (nodunu) aç (kapalıysa), kapat (açıksa)



Ctrl+M, Ctrl+O

Bütün kod bloglarını (nodları) kapat


Shift+F7

Designer görünümüne geç


F7

Kod görünümüne geç

F5

Hata ayıklama (Debug) işlemini başlat



Ctrl+F5

Hata ayıklama yapmadan başlat

F11

Hata ayıklamada sonraki satıra geç


F10

Hata ayıklamada sonraki satıra (metotları takip etmeden) geç



Ctrl+Shift+F5

Yeniden başlat


Ctrl+F

Bul ve Değiştir (Find and Replace) ekranını aç

Ctrl+H

Değiştir (Replace) ekranını aç

F1

Seçili öğe için arama yap


F4

Properties (Özellikler) ekranını aç


Ctrl+Alt+S

Server Explorer’ı aç


Ctrl+Alt+L

Solution Explorer’ı aç


Ctrl+Alt+X

Toolbox’ı (Araçlar) aç

Ctrl+Shift+A

Add New Item (Projeye yeni bir dosya ekle ) penceresini aç

Shift+Alt+A

Add Existing Item (Projeye Visual Studio dosyası ekle) penceresini aç

Ctrl+Shift+B

Projeyi derle (Build)

Ctrl+N

Yeni bir dosya oluşturma penceresini aç

Ctrl+Shift+N

Yeni bir proje oluşturma penceresini aç


Ctrl+F4

Açık olan dosyayı kapat

Shift+Esc

Toolbox’ı (Araçlar) kapat

Ctrl+F6

Açık olan dosyalar arasında gez

Ctrl+Tab

Açık olan dosyalar arasında gezinme penceresini aç



Alt+Shift+F10

Kütüphaneyi referans olarak ekle


Alt+Shift+Enter

Tam ekran moduna geç

Aşağıda ekran görüntüsü bulunan Microsoft tarafından hazırlanmış olan Pdf formatındaki klavye kısayolları dosyaları da oldukça faydalı olacaktır.

Oracle 11g Database Yedek Script Örneği (Solaris)



export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_SID=[SIDNAME]
export ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_3
export ORACLE_BASE=/data/oracle/product/11.2.0/dbhome_3
$ORACLE_HOME/bin/exp SYSTEM/[SYSTEM KULLANICI ŞİFRESİ] file=/export/home/oracle/[DOSYA_ADI].dmp log=/export/home/oracle/[LOG_DOSYA_ADI].log owner=[KULLANICI_KODLARI] statistics=none

[ ] içerisinde belirtilen bilgiler sisteminze göre düzeltilerek .sh dökümanı olarak kaydedilir.  ve Solaris tabanlı sistemde çalıştırılarak DB Yedek .dmp dosyası oluşturulur.

21 Mayıs 2013 Salı

SQL KOMUTLAR


SQL KOMUTLAR
DISTINCT: Birbirinin ayni olan satırların listelenmemesi için bu ifade kullanılır
“select distinct uyeadi from uyeler”
BETWEEN: Kosul belirtirken iki deger arasini belirtmek için kullanilir. Örnek:
Yasi 30 ile 40 arasindaki isçilerin kayitlarini listelemek için
“select * from uyeler where yas between 30 and 40¨
LIKE: Eger aradigimiz kayitin bulunmasi için tam bir karsilastirma yapamiyorsak
“select * from uyeler where uyeadi like ’%a’”
IN: Kosul belirtirken kullaniriz. Mesela ismi netrobin, ali veya mehmet olan isçilerin
bilgilerini listelemek için.
“select * from uyeler where uyeadi in (’netrobin’,’ali’,’mehmet’ )”
SUM: Seçilen degerlerin toplamini bulur. Isçilerin aldigi toplam ücreti görmek için
“select sum(ucret ) from uyeler”
MAX, MIN, AVG: Verilen degerin en büyügünü, en küçügünü ve ortalamasini bulur.
MAX en büyük degeri, MIN en küçük degeri, AVG ise seçilen degerlerin ortalmasini bulur.
“select MAX(UCRET ), MIN(UCRET ), AVG(UCRET ) from uyeler where tarih>’01.01.1999’”
ORDER BY ASC: Tablodan seçtigimiz kayitlari alfabetik siralamak için kullanilir.
“select * from uyeler order by asc”
ORDER BY DESC: Tablodan seçtigimiz kayitlari son kayıt sırasına göre siralamak için kullanilir.
“select * from uyeler order by desc”
GROUP BY: Genelde istatistik amaçlar için kullanilir. Mesela hangi tarihte kaç isçinin ise
alindigini bulmak için.
ALIAS: Genelde tablonun veya kolonun adını başka bir şeymiş gibi değişirebiliriz.
Uyeler tablosundaki uyeadi kolonunun adını isim yaptık yani isim olarak çağırabiliriz.
“SELECT uyeadi AS isim FROM uyeler”
JOIN: Bazen iki yada daha fazla tablodan veri cekmemiz gerekebilir, bu gibi durumlarda bu
methodu kullanırız.
Birbiri ile ilişkilendirilmiş iki tablomuz var biri uyeler diğeride detaylar olsun.
İki tablodanda aynı anda sorgulama veya veri çekeceğiz. Uyeler tablosunda id=1 ise detaylar
tablosundaki karşılğı ise uyeno=1 olarak yapıyoruz.
“SELECT * FROM uyeler,detaylar WHERE uyeler.id=detaylar.uyeno”
INNER JOIN OLARAK
“SELECT * FROM uyeler INNER JOİN detaylar ON uyeler.id=detaylar.uyeno”
LEFT JOIN OLARAK
“SELECT * FROM uyeler LEFT JOİN detaylar ON uyeler.id=detaylar.uyeno”
UNION ve UNION ALL : Join methoduna benzer ama sadece aynı kolonlara sahip tabloları
birbirine bağlar. Uyeler ve Detylar tablosundaki uyeadlarını sorgular.
Select uyeadi from uyeler UNION Select uyeadi from detaylar”
Sadece UNION kullanırsak iki tabloa aynı isimler olsa bile tekrarlar.
UNION ALL kullanırsak iki tabloda aynı isimler olsa bile sadece tekini sorgular.
“Select uyeadi from uyeler UNION ALL Select uyeadi from detaylar”
SQL FONKSİYONLARI
sql kendi içinde bir cok fonksiyonu barındırır, bunlar sayım ve hesaplama için kullanılabilir.
Fonksiyon sözdizimi kuruluşu;
SELECT fonksiyon(kolon ) FROM tablo
Fonksiyon tipleri;
sql fonksiyonları birkaç temel tip ve kategoriye sahiptir. Temel fonksiyon tipleri:
++ Aggregate (birleşik degerli ) fonksiyonlar
++ Scalar (tekil degerli ) fonksiyonlar
Aggregate (birleşik degerli ) fonksiyonlar
Bu tip fonksiyonlar birçok deger ile çalışır ama sonucu tek bir degerdir.
Bu fonksiyonların MS Access e uygun olanları:
AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar
COUNT(kolon ): Boş degerler haric, girilen kolondaki satır sayısını yollar
COUNT(* ): Verilen tablodaki satır sayısını yollar
FIRST(kolon ): girilen kolondaki ilk degeri yollar
LAST(kolon ): girilen kolondaki son degeri yollar
MAX(kolon ): girilen kolondaki en yuksek degeri yollar
MIN(kolon ): girilen kolondaki en dusuk degeri yollar
STDEV(kolon ): girilen kolondaki basit istatiksel standard sapma degerini yollar
STDEVP(kolon ): girilen kolondaki nüfus istatiksel standard sapma degerini yollar
SUM(kolon ): girilen kolondaki sayıların toplamını yollar
Bu fonksiyonların sql Server a uygun olanları:
AVG(kolon ): girilen kolondaki sayıların aritmetik ortalama degerini geri yollar
BINARY_CHECKSUM: tablonun verilen satırındaki ikilik tabandaki checksum degerini yollar
CHECKSUM: tablonun verilen satırındaki checksum degerini yollar
CHECKSUM_AGG: boş degerler haricindeki verilerin checksum degerini yollar
COUNT(kolon ): Boş degerler haric, girilen kolondaki satır sayısını yollar
COUNT(* ): Verilen tablodaki satır sayısını yollar
COUNT(DISTINCT kolon ): Verilen tablodaki satır sayısını yollar, fakat cift veri bulunan satırları bir defa sayar
FIRST(kolon ): girilen kolondaki ilk degeri yollar
LAST(kolon ): girilen kolondaki son degeri yollar
MAX(kolon ): girilen kolondaki en yuksek degeri yollar
MIN(kolon ): girilen kolondaki en dusuk degeri yollar
STDEV(kolon ): girilen kolondaki basit istatiksel standard sapma degerini yollar
STDEVP(kolon ): girilen kolondaki nüfus istatiksel standard sapma degerini yollar
SUM(kolon ): girilen kolondaki sayıların toplamını yollar
Scalar (tekil degerli ) fonksiyonlar
Girilen degere gore bir deger ile calısır ve sonuc olarak bir deger yollar.
Bu fonksiyonların MS Access e uygun olanları:
UCASE(c ): bolgedeki karakterlerin hepsini buyuk yapar
LCASE(c ): bolgedeki karakterlerin hepsini kucuk yapar
MID(c,start[,end] ): yazı alanından karakterleri calıstırır
INSTR(c ): yazı alanından karakterleri gosterir
LEFT(c,karakterNumarasi ): text alanının girilen sayıya kadar olan kısmını yollar (soldan sayar )
RIGHT(c,number_of_char ): text alanının girilen sayıya kadar olan kısmını yollar (sagdan sayar )
ROUND(c,hassasiyet ): sayı alanını verilen hassasiyete gore yuvarlar
MOD(x,y ): bolme işleminde kalanı gosterir (mod işlemi yapar )
NOW( ): o anki sistem zamanını gosterir
FORMAT(c,format ): alanın gosterim biçimini degiştirir
DATEDIFF(d,birinciTarih,ikinciTarih ): tarih hesaplarını yapmak için kullanılır