17 Ağustos 2010 Salı

Visual Basic 10.0 Kitabımın Önsözü(*)

Varsayalım ki daha önce hiç kod yazmadınız ve programcılık öğrenmeye karar verdiniz. Başka bir deyişle programcılıkla ilgili temel kavramlara henüz sahip değilsiniz. Bu durumda bu kitap kolay okunma ve hemen anlaşılma konusunda iddialı olsa bile önceleri biraz zorlanabilirsiniz. Bu kitabın ilk 3 bölümünde yazılanları anlamakta zorlanıyorsanız www.memikyanik.net’teki Programcılık Dersleri adı altında bir araya getirilen Visual Basic konulu birkaç makaleyi okuduktan sonra kitaba dönmenizi öneririz. Verilen adresteki Visual Basic konulu makaleleri okuyup kitaba döndüğünüzde yazılanların sizin için daha anlaşılır olduğunu göreceksiniz.

Varsayalım ki öğrencisiniz ve okulunuzda verilen .NET uyumlu Visual Basic derslerini anlamakta zorlandığınız için Visual Basic kitabı almaya karar verdiniz. Başka bir deyişle kod yazmaya yabancı değilsiniz. Bu durumda bu kitabın ilk 3 bölümünü okumakta zorlanmayacaksınız. Bu nedenle size memikyanik.net’teki Visual Basic konulu makaleleri okumayı ihmal etmeyin demeyeceğiz. Kitabın ilk 100 sayfasına şöyle bir göz gezdirip “ben bu konuları zaten biliyorum” deyip geçmenizi istemeyiz. Çünkü bu kitabın ilk 3 bölümünde birçok ayrıntıdan söz edilmektedir.

Varsayalım ki daha önce başka bir programlama dili ile kod yazdınız ve .NET uyumlu Visual Basic ile uygulama geliştirmeye karar verdiniz. Bu kitabın sayfalarını atlamadan okuduğunuzda kısa bir sürede .NET programcılığına adapte olursunuz. Tabii ki bu kitapta .NET programcılığıyla ilgili bazı konuları bulamayabilirsiniz.

Bu kitabı kaleme alırken bizi en çok kitapta yer yerilecek konuları seçmek ve seçilen konulara ayrılacak sayfaların sayısını tespit etmek zorladı. Örneğin Assembly’ler hakkında mutlaka bilgi vermek gerekiyordu. Ötesi Assembly kavramı hakkında bilgi sahibi olmayan birisine mevcut Assembly’lerden söz etmenin zorluğu ortadaydı. Asıl zorluk ise burada başlıyor: Çünkü Assembly çok kapsamlı bir konudur. Kitapta hiç söz edilmemesi sorunlara neden olurken, bütün yönleri ile anlatıldığında ise kitabın sayfa sayısı fazla olmaktadır. Tercihimiz orta yolu bulmak şeklinde oldu. Yani Assembly’leri bütün ayrıntıları ile anlatmak yerine temel özelliklerinden söz etmekle yetindik. Benzer orta yol tercihini Attribute’ler, Generic sınıflar, Windows Mesajları için de yaptık.

Bu kitabı gerçekte bir süre önce yayınlanan C# 3.0 kitabımızdan yola çıkarak kaleme aldık. Bu nedenle C# 3.0 kitabımızı edinmiş okurlar benzer konu sıralaması ve benzer cümlelerle karşılaşacaklardır. Çünkü Visual Basic ve C# programlama dilleri .NET Framework ile gelen aynı sınıfları kullanmaktadır. Tabii ki her iki kitap arasında bazı farklılıklar yok değildir. Örneğin Visual Studio ile hazırlanan Visual Basic projeleri ile C# projelerinin yapıları birbirinden oldukça farklıdır. Bu nedenle bu kitabın Application Sınıfı bölümü C# kitabının aynı adlı bölümünden oldukça farklıdır.

Bu kitapta .NET uyumlu Visual Basic programlama dilini bütün ayrıntıları anlatmamış olmamıza rağmen kitabın oldukça kapsamlı olduğunu söyleyebiliriz. Çünkü 860 sayfa boyunca Visual Basic anlattık. Üstelik sayfaların kenar boşluklarını şartları zorlayıp azaltıp sayfa sayısını düşürmeye çalıştık. Nasıl bir anlatım şekli tercih ettik? Birinci önceliğimiz her zaman olduğu gibi kolay okunmak ve hemen anlaşılmak oldu. Yani istedik ki bu kitabın her sayfası ilk okumada hemen anlaşılsın. Tabii daha önce hiç kod yazmamış okurlar kitabı hızlıca okurlarsa ilk okumada anlamayacakları konular ve ayrıntılar mutlaka olacaktır.

Bu kitapta konuları nasıl mı sıraladık? İlk bölümde Visual Studio’dan bağımsız olarak Visual Basic kodu üzerinde durduk. Visual Basic kodumuzu Not Defteri ile hazırlayıp konsolda derledik. Böylece .NET uyumlu Visual Basic programlama dili hakkında ön bilgiye sahip olduk. Devamında kitabın ikinci bölümünde Visual Studio’yu anlatır gibi yapıp programcılıkla ilgili bazı temel kavramlardan söz ettik. Daha önce Visual Studio’yu kullanıp az çok uygulama geliştirmiş olan birisi bu kitabın 20 sayfalık ikinci bölümüne baktığında kitabın düzeyine uymayan sayfaların bulunduğunu veya ikinci bölümdeki sayfaların gereksiz yere Visual Studio ile ilgili ekran görüntüleri ile doldurulduğunu düşünebilir. Böyle bir yorumda bulunan arkadaşlara 2 cümlemiz var: İlk okumada anlaşılmayı hedefliyorsanız okurunuzu bazı kavramlar bağlamında hazırlamanız gerekir. İkinci cümlemiz ise şudur: Bu kitabın görece fazla ekran görüntüsünün kullanıldığı ilk bölümde Release-Debug modlarından söz edilmektedir. Bu 2 moddan söz etmeye neden mi gerek duyduk? Çünkü konu projeleri çalıştırmak ve hata ayıklamak olduğunda debug modu nedir, release sürüm nedir sorularına mutlaka öncelikle cevap verilmelidir.

Devamında yani kitabın 3. bölümünde yaklaşık 50 sayfa boyunca küçük bir Visual Basic kitabı yazar gibi okura programcılıkla ilgili temel kavramları anlatmaya çalıştık. Kitap metni içinde Programcılığa Giriş adını verdiğimiz 3. bölüm için yazdıklarımızın bir kısmını buraya aldık: “Daha önce az çok kod yazmış olanlar bu bölümün sayfalarına şöyle bir baktıklarında bütün yazı¬lanların bildikleri konular oldukla¬rını sanabilirler. Sanabilirler diyoruz çünkü Programcığa Giriş adlı bölümde Visual Basic ile program yazılır¬ken gerek duyulan pek çok kavram hakkında teknik açıkla¬malar yapılmaktadır. Örneğin Olaylar ve Metot Hazırlamak böyle bir konudur.Birçok kişinin nazarında forma bir düğme yerleştirilir, sonra bu düğme çift tıklanır ve istenen kodlar yazılır. Aslında bu yorum yanlış değildir. Ne var ki programcı işin geri planını öğren¬mek zorundadır. Olaylar ve Metot Hazırlamak başlığı altında yazılanlar hem daha önceleri görsel bir araçla kod yazmayanlar için ilk okumada anlaşılacak basitliktedir hem de olaylar hakkında az çok bilgisi olanlara işin geri planı kısaca anlatılmaktadır. Bu nedenle bu kitabı eline alan herkesin 3. bölümü dikkatli okumasını öneriyoruz.”

Bu kitap hakkında net bilgiye sahip olmak isteyenlerin Application Sınıfı adlı bölümü incelemeleri önerilir. Yerli yabancı birçok kaynakta Application sınıfından hiç söz edilmezken veya bu sınıfın birkaç statik metodu birkaç cümle ile geçiştirilirken bu kitapta 32 sayfa boyunca Application, WindowsFormsApplicationBase ve ApplicationContext sınıflarından söz edildi. Gerçekte bu 3 sınıftan bi haber olup iyi programlar yazmak mümkündür. Ne var ki Visual Studio ile hazırlanan Visual Basic uygulamalarının geri planı hakkında bilgi sahibi olmayan programcılar günün birinde sorun yaşarlar. Örneğin birden fazla forma sahip Visual Basic uygulamasındaki 2. veya 3. formun aynı anda birden fazla kopyasının ekrana gelmesini istemiyor olabilirsiniz. Bu sorunun çözümü Visual Studio ile hazırlanan C# uygulamalarında kolay iken Visual Basic uygulamaları hakkında temel bilgiye sahip olmayı gerektirmektedir.

2004 yılında yayınlanan C# kitabımızı kaleme alırken başka bir Türkçe C# kitabından izinsiz çalıntı yapmakla suçlandık. Suçlamaların dayanak noktası değişken adı benzerliğiydi. Adlarını çalmakla suçlandığımız i, j, sayi, deger gibi değişkenleri sıfıra bölme hatasını, selection sort işlemini ve Word belgeleri üzerinde nasıl işlem yapıldığını anlattığımız sayfalarda tanımlayıp kullanmıştık. Her ne kadar benzer olduğu söylenen değişken adlarının neredeyse tamamını 1994 yılında yayınlanan Clipper 5.2 kitabımızda yıllar önce kullanmış olsak bile “çalıntı” değişkenleri kullandığımız konulara bu kitapta biraz torpil geçip daha ayrıntılı bir şekilde ele aldık. Değişken adı benzerliğinden dolayı tekrar suçlanmamak için değişkenlere bazen Osmanlıca bazen İngilizce bazen de argo adlar verdik.

Visual Basic üzerine yazacaklarımız bu kitapla sınırlı değildir. www.memikyanik.com’dan mail adresimizi alıp her türlü sorununuzu yazabilir veya direk bağlantı kurabilirsiniz. Bu kitabı yazarken yararlandığımız temel kaynak MSDN oldu. Bu nedenle başka yerli programcılık kitaplarıyla olabilecek değişken adı benzerlikleri tesadüften ibarettir.


* Bu kitap basım aşamasındadır. Kısa bir süre içinde yayınlanacaktır.