16 Nisan 2014 Çarşamba

MSSQL Server 2008 R2 Database kopyalamak

Database kopyalamanın birçok yolu var bunlardan birtanesi de MSSQL'in Generate Scriptini kullanarak yapılan kopyalamadır.

♥ 1.Adım

♥ 2.Adım

♥ 3.Adım

♥ 4.Adım

♥ 5.Adım
♥ 6.Adım

♥ 7.Adım

♥ 8.Adım


14 Nisan 2014 Pazartesi

Visual Studio Kısayolları


CTRL+ALT+SPACE tuş kombinasyonu ile otomatik kod tamamlama(İntellisense Auto Select) özelliğini devreye sokabilir veya devre dışı bırakabilirsiniz.

CTRL+E+C seçilen satırları yorum satırı yapar.

CTRL+E+U seçilen satırları yorum satırından çıkartır.

CTRL+M+M İmlecin bulunduğu kod bloğunu açar veya kapatır.

CTRL+M+O Namespace içindeki tüm kod bloglarını kapatır.

CTRL+M+L Namespace içindeki tüm kod bloglarını açar.

CTRL+SHIFT+U Seçili harfleri büyük harfe çevirir.

CTRL+U Seçili harfleri küçük harfe çevirir.

CTRL+K+D Tüm kodları kod düzenine getirir.

SHIFT+ALT+T İmlecin bulunduğu satır ile bir alt satırın yerini değiştirir.

F9 İmlecin bulunduğu satıra breakpoint koyar.

F10 Debug modda satır satır izlememizi sağlar

F11 debug modda metodların içerisine girerek izlememizi sağlar

CTRL+D,Q Debug modda seçili değişkenin veya kontrolün değerini izlemek için QuickWatch penceresini açar.

8 Nisan 2014 Salı

Delegate ve Event Kullanımı

Delegate(Temsilci) Nedir?

Temsilciler bir veya birden çok metodu gösteren referans türünden nesnelerdir. 

Delegate kullanımı 3 aşamada gerçekleşir
1.Tanımlama
2.Örnekleme (Instance)
3.Çağırma

Örnek
class Program
    {
       public delegate void islemler(int x, int y);

        static void Main(string[] args)
        {
            islemler operation = new islemler(Carp);
            operation += new islemler(Topla);
            operation(5, 3);
            Console.ReadLine();  
        }


        static void Carp(int x, int y)
        {
            Console.WriteLine("Çarpma sonucu : {0} ", x * y);
        }

        static void Topla(int x, int y)
        {
            Console.WriteLine("Toplama sonucu : {0} ", x + y);
        }

    }


1.Tanımlama


<Erişim Belirleyicisi> delegate <Dönüş Tipi> Delege_İsmi(parametreler);

public delegate void islemler(int x,int y);

2. Örnekleme


islemler operation = new islemler(Carp);
operation += new islemler(Topla);


buradaki Carp ve Topla birer metoddur ve oluşturduğumuz temsilcimizin imzasına uygundur. Yani int tipinde 2 tane parametre alır ve geriye hiç bir değer döndürmezler.

bir temsilciye birden fazla delegate tanımlarsak işleniş sırası FIFO (İlk giren ilk çıkar) mantığında olur. Yani burda ilk olarak Carp metodu ve ardından Topla metodu çalışacaktır.

bir temsilciye  += operatörü ile metod atayabileceğimiz gibi -= operatörü ile de atadığımız metodu çıkarabiliriz.

3.Çağırma


operation(5, 3);

Delegate üzerinden fonksiyonları çağırdığımız zaman delaget ’in Invoke() metodunu çağırmış oluruz.
Yani “operation(5,3)” ifadesi, “operation.Invoke(5,3)” metodunu çalıştırır.

Invoke ; çalışma sırasında nesnelere erişimi sağlamak ve değişiklik yapmak için nesnenin hafızada bir kopyası oluşturulur, değişiklik yapılır ve eskisi ile değiştirilir.


Event(Olay) Nedir?

Olayları görsel programlamada farkında olmadan kullanırız. Örneğin Butona tıklanması, Klavyeden bir tuşa basılması, Mouse'u hareket ettirmek vs. bunların hepsi birer olaydır.

Temsilciye tanımladığımız metodları çalıştırmak için temsilciyi açık bir şekilde başlatmamız gerekir. Yukarıdaki örnekteki operation(5, 3) de olduğu gibi. Ancak bazı durumlarda biz başlatmasak da metodun kendiliğinden çalışmasını isteyebiliriz. Mesela stok takip programında bir ürünün miktarının belli bir limitin altına düştüğünde. İşte bu gibi durumlarda Event kullanmamız gerekir. Şimdi bir örnek üzerinden açıklayalım. Örneğimizde 1000 lt su kapasitesi olan bir su deposu taştığında Ekrana "Depo Taştı" yazısını yazmak istiyoruz.

class Program
    {
        public delegate void depoEventHandler();
        public static event depoEventHandler depoEvent;

        public class Depo
        {

            private int suseviyesi = 0;

            public int SuSeviyesi
            {
                get { return suseviyesi; }
                set
                {
                    suseviyesi = value;
                    if (suseviyesi > 1000 && depoEvent != null)
                        depoEvent();
                }
            }
        }

        static void Main(string[] args)
        {
            depoEvent += new depoEventHandler(Doldu);

            for (int i = 0; i < 1250; i += 200)
            {
                Depo t = new Depo();
                t.SuSeviyesi = i;
                Console.WriteLine("{0}", i);
                Thread.Sleep(1000);
            }

        }

        static void Doldu()
        {
            Console.WriteLine("Depo Taştı");
        }

    }

1. Adım=> Temsilcimizi tanımlıyoruz.

public delegate void depoEventHandler();

Olayla bağlantıda bulunacak delegatetin ismine dikkat ederseniz EventHandler yazdık. Bu kural olmamakla beraber programcılıkta standart bir yazım şeklidir. Bu yazıma uymasanız hata almazsınız ama programlamada belirli bir standartı yakalamak istiyorsanız bu şekilde kullanmanızı tavsiye ederim.

2.Adım=> Olayımızı tanımlıyoruz

 public static event depoEventHandler depoEvent;

Olay tanımlarken olay isminden önce temsilcimizi yazıyoruz. Böylece olay gerçekleştiğinde çalıştırılması gereken metod yapısını oluşturduğumuz depoEventHandler isimli temsilcimizin belirleyecektir.

3.Adım=>Olayımızı tetikliyoruz.

        public class Depo
        {

            private int suseviyesi = 0;

            public int SuSeviyesi
            {
                get { return suseviyesi; }
                set
                {
                    suseviyesi = value;
                    if (suseviyesi > 1000 && depoEvent != null)
                        depoEvent();
                }
            }
        }
Depodaki su seviyesini belirten bir propertimiz var ve bu propertimizin (SuSeviyesi) her değiştiğinde değerin 1000 i geçip geçmediğini kontrol ediyoruz. burdaki if in içeriğindeki depoEvent != null ifadesi olayımıza bir metod atanıp atanmadığını kontrol ediyor. Eğer su seviyesi 1000 lt den büyükse işte o zaman olayımız gerçekleşmiş demektir ve olayın belirttiği metod çalışacaktır.

4.Adım => Olayın yüklenmesi

 depoEvent += new depoEventHandler(Doldu);

Sonuc:


1 Nisan 2014 Salı

Telnet Client'ı aktive etmek


telnet is not recognized as an internal or external command operable program or batch file  hatası alıyorsanız Telnet Client’ı aktive etmemiş olabilirsiniz. Telnet Client'ı aktive etmek için aşağıdaki adımları uygulayınız.