KMRT BSRN

"Hiç kimsenin ilgisine ihtiyaç duymadığın gün olgunlaşırsın. Hiç kimseden beklentiye girmediğin gün yara almazsın. Ve hiç kimseye bağımlı kalmazsan kazanırsın." OSHO

This is DEBUG Code. This is RELEASE Code..

1 Yorum


Geliştirdiğimiz uygulamaları DEBUG modda test ederiz ve RELEASE modda ise dağıtırız. Bu farklı mod durumlarında kullandığımız kod adımları ya da bağlantı kurduğumuz veritabanı gibi nesnelerin konumlarında bir değişiklik olabilir. Tabii ki bu her zaman bağlantı kurulan bir konum olmayabilir. DEBUG modda farklı RELEASE modda farklı çalışan kod bloklarınız olabilir(Ki ikiside oluyor 🙂 ). Bu gibi durumlarda, uygulamayı RELEASE etmeden önce, DEBUG kodlarını kapatıp Release kodlarını açmak gerekebilir. DEBUG ederkende tam tersi RELEASE kodlarını kapatıp DEBUG kodlarını açmak gerekebilir. Mesela;

Uygulamada bir hata olduğunu anladık ve VS 2010 ile projemizi açıp DEBUG modda(çünkü testler yapacağız) database’e aşağıdaki gibi DEBUG anında makinamızda bulunan bir veritabanına bağlanacağımız satırı aktif hale getirdik.

private void Form2_Load(object sender, EventArgs e)
{
// DEBUG – Test anında bu bağlantı ile çalışacak..
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("DEBUG !!");
MessageBox.Show(conn.ConnectionString);

// RELEASE – Uygulama dağıtıldığında bu bağlantı ile çalışacak..
//System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("RELEASE !!");
//MessageBox.Show(conn.ConnectionString);

}

Sonra ilgili değişikliği yaptık ve RELEASE modda uygulamayı derleyip dağıtacağız. Fakat RELEASE anında farklı bir konumdaki veritabanına uygulamanın bağlanması gerekiyor. O zaman uygulamayı RELEASE modda derlemeden önce ne yapacağız..

private void Form2_Load(object sender, EventArgs e)
{
// DEBUG – Test anında bu bağlantı ile çalışacak..
//System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("DEBUG !!");
//MessageBox.Show(conn.ConnectionString);

// RELEASE – Uygulama dağıtıldığında bu bağlantı ile çalışacak..
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("RELEASE !!");
MessageBox.Show(conn.ConnectionString);
}

işte bu şekile sokmamız gerekiyor. Çünkü benim test ederken(DEBUG mod) kullandığım veritabanı ile uygulamayı müşterilerime dağıttığımda(RELEASE mod), müşterilerimin kullandığı veritabanı farklı olabilir.(ki olur! 🙂 ) Durumu resimlemek gerekirse şu şekilde;

image

Tabii bu şekilde yapmak yerine kolay yöntemini de göstereceğim. 🙂 Bu şekilde ikide bir değiştirmek yerine olayı şu şekilde yapabilirsiniz..

private void Form2_Load(object sender, EventArgs e)
{
System.Data.SqlClient.SqlConnection conn = null;
  #if DEBUG
    // DEBUG – Test anında bu bağlantı ile çalışacak..
    conn = new System.Data.SqlClient.SqlConnection("DEBUG !!");
#else
    // RELEASE – Uygulama dağıtıldığında bu bağlantı ile çalışacak..
    conn = new System.Data.SqlClient.SqlConnection("RELEASE !!");
#endif

MessageBox.Show(conn.ConnectionString);
}

İşte bu #if-#endif olayı bizim için yönetecektir. İlgili MSDN kaynağı için tıklayınız..

VS 2010 üzerinde bulunan “çalıştır” butonu yanındaki combobox alanından “Debug” ve “Release” modlar arasında değişim yaptığınızda #if-#endif kodunda farklı alanlar renkelencektir. Buda hangi modda hangi kodun çalışacağını size gösterir.

image

Herkese iyi kodlamalar..

Reklamlar

Yazar: K. Murat BAŞEREN, MBA, MCP

I am a senior software developer, MCP, consultant, blogger, former chemist and software trainer. My interests range from software developer to technology. I am also interested in web development, education, and coffee.

One thought on “This is DEBUG Code. This is RELEASE Code..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s