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 anlaşılma konusunda iddialı olsa bile önceleri biraz zorlanabilirsiniz. Bu kitabın ilk 3 bölümünde yazılanları anlamakta zorlanıyorsanız kişisel sitemdeki Programcılık Dersleri adı altında bir araya getirdiğim birkaç makaleyi okuduktan sonra kitaba dönmenizi öneririm. Kişisel sitemdeki Visual Basic konulu makaleleri okuyup tekrar kitaba döndüğünüzde bir süre sonra yazılanların sizin için daha anlaşılır olduğunu göreceksiniz. Bu kitap Visual Basic ve .NET programcılığı hakkında başlangıç konularını içerse bile ileri düzey diye anılan kitaplardan aşağı bir tarafı yoktur. Tabii bazı konuları yer yokluğundan dolayı yüzeysel anlattığımı, birkaç konuya ise hiç değinmediğimi bilmenizi isterim. Bu kitaba 150 sayfa daha ekleme imkânı bulabilseydim rahatlıkla bu kitaba “Dünyanın En Kapsamlı Visual Basic Kitabı” diyebilirdim Tabii ki daha fazla sayfaya sahip yabancı Visual Basic kitapları olsa bile o kitaplarda hem ASP.NET hem de ADO.NET yani veritabanı konuları bulunmaktadır.
Varsayalım ki öğrencisiniz ve okulunuzda verilen 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 kişisel sitemdeki Visual Basic konulu makaleleri okumayı ihmal etmeyin demeyeceğim. Kitabın ilk 100 sayfasına şöyle bir göz gezdirip “ben bu konuları zaten biliyorum” deyip atlamanızı istemem. Çü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. En başta söylemek isterim: Bu kitabın sayfalarını atlamadan okuduğunuzda sanki dünyanın en kolay öğrenilen teknik konusuyla karşı karşıyasınız yorulmadan kısa bir sürede .NET programcılığına adapte olursunuz. Tabii ki bu kitapta bazı konuları bulamayabilirsiniz. Örneğin bu kitapta Remoting’den söz edilemedi.
Bu kitabı kaleme alırken beni en çok zorlayan çalışma, kitapta hangi konulara yer yerip, kitap için seçtiğim konulara ayrılacak sayfaların sayısını tespit etmek oldu. Ö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 ortadadır. Asıl zorluk ise burada başlıyor: Çünkü Assembly çok kapsamlı bir konudur. Kitapta hiç söz edilmemesi başka sorun, bütün yönleri ile anlatıldığında ise kitabın sayfa sayısı fazla olmaya başlamaktadır. Benim tercihim orta yolu bulmak şeklinde oldu. Yani Assembly’leri bütün ayrıntıları ile anlatmak yerine temel özelliklerinden söz etmekle yetindim.
Benzer orta yol tercihini Attribute’ler, Generic sınıflar, Windows Mesajları, Reflection sınıfları için de yaptım. Gelelim bu kitapta torpil geçtiğim konulara: 2004 yılında yazdığım C# kitabını kaleme alırken başka bir Türkçe C# kitabından izinsiz çalıntı yapmakla suçlandım. Suçlamaların dayanak noktası değişken adı benzerliğiydi. Değişken adı(i, j, sayi vs) benzerliğine sıfıra bölme hatasının, selection sort işleminin ve Word belgeleri üzerinde nasıl işlem yapıldığının anlatıldığı sayfalarda rastlanmıştı. Her ne kadar benzer olduğu söylenen değişkenlerin neredeyse tamamını 1994 yılında yayınlanan Clipper kitabımda yıllar önce kullanmış olsam bile çalıntı yapmakla suçlandığım değişkenleri kullandığım konulara bu kitapta biraz torpil geçip daha ayrıntılı bir şekilde ele aldım. Ötesi değişken adı benzerliğinden dolayı tekrar suçlanmamak değişkenlere bazen Osmanlıca bazen de İngilizce adlar verdim. Yani anlayacağınız 2004’te yayınlanan C# kitabımda kullandığım değişken adlarından dolayı suçlanmasaydım bu kitapta Word’e ayrılan sayfalar daha az olurdu.
Bu kitabımı gerçekte bir süre önce yayınlanan C# 3.0 kitabımdan yola çıkarak kaleme aldım. Bu nedenle C# 3.0 kitabımı edinmiş okurlar benzer konu sıralaması ve benzer cümlelerle karşılaşacaklardır. Çünkü Visual Basic ve C# programlama dilleri .NET Framework uyumlu oldukları için 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. Örneğin bu kitabın Application Sınıfı adlı bölümü C# kitabımın aynı adlı bölümünden farklıdır.
Bu kitapta .NET uyumlu Visual Basic programlama dilini bütün ayrıntıları anlatmamış olmama rağmen kitabın oldukça kapsamlı olduğunu söyleyebilirim. Çünkü 1070 sayfa boyunca Visual Basic anlattım. Üstelik sayfaların kenar boşluklarını şartları zorlayıp azaltıp sayfa sayısını düşürmeye çalıştım. Nasıl mı bir anlatım şekli tercih ettim? Birinci önceliğim her zaman olduğu gibi kolay okunmak ve hemen anlaşılmak oldu. Yani istedim ki bu kitabın her sayfası ilk okumada hemen anlaşılsın. Tabii daha önce hiçbir programcılık tecrübesi olmayan bir okur kitabı hızlıca okursa ilk okumada anlamayacağı konular ve ayrıntılar mutlaka olacaktır.
Kitapta konuları nasıl mı sıraladım? İlk bölümde Visual Studio’yu anlatır gibi yapıp programcılıkla ilgili bazı temel kavramlardan söz ettim. Daha önce Visual Studio’yu kullanıp az çok uygulama geliştirmiş olan birisi bu kitabın ilk 20 sayfasına baktığında kitabın düzeyine uymayan sayfaların bulunduğunu veya ilk 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ümlem var: İlk okumada anlaşılmayı hedefliyorsanız okurunuzu bazı kavramlar bağlamında hazırlamanız gerekir. İkinci cümlem 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 duydum? Çünkü konu projeleri çalıştırmak ve hata ayıklamak olduğunda debug modu nedir, release sürüm nedir sorularına mutlaka cevap verilebilinmelidir.
Devamında yani kitabın 2. bölümünde yaklaşık 50 sayfa boyunca küçük bir VB kitabı yazar gibi kitap metni içinde Programcılığa Giriş adını verdiğim 2. bölüm için yazdıklarımın bir kısmını buraya alacağım: “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 olduklarını sanabilirler. Sanabilirler diyorum çünkü Programcığa Giriş adlı bölümde Visual Basic ile program yazılırken gerek duyulan pek çok kavram hakkında teknik açıklamalar yapılmaktadır. Bu nedenle bu kitabı eline alan herkesin 2. bölümü dikkatli okumasını öneriyorum. Daha önce Visual Studio ile az çok kod yazanlar veya .NET uyumlu herhangi bir dille ilgilenmiş bazı okurlar bu bölümdeki konu başlıklarına bakıp yazılanları dikkatlice okumadan sayfaları hızlıca geçebilirler. Ö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 tasarım anında çift tıklanır ve istenen kodlar yazılır. Aslında bu yorum yanlış değildir. Ne ki programcı işin geri planını öğrenmek 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.”
.NET uyumlu Visual Basic ile uygulama geliştirme konusunda henüz yolun başında olanların temel kavramlara sahip olmasını sağlamak için “Programcılığa Giriş” adlı bölümle yetinmedim. Bir sonraki yani 3. bölümün adı Konsol Uygulamaları” olsa bile 40 sayfa boyunca okuru Visual Basic ile programcılık konusunda belli bir düzeye getirmeye ve temel kavramlar hakkında bilgi vermeye çalıştım. Kitap metni içinde Konsol Uygulamaları için yazdığım birkaç cümleyi buraya alacağım. “Konsol Uygulamaları adını verdiğim bölümde Visual Basic kodu yazılmak istendiği zaman “ilk” gerek duyulacak kavramlar ve sınıflar anlatılmaktadır. Bu nedenle bu bölümün herkes tarafından dikkatlice okunmasını önermekteyim. Her ne kadar konsol uygulaması geliştirip başkasına verme ihtimaliniz düşük olsa bile bu bölümde Visual Basic ile program geliştirmenin geri planı üzerinde biraz durulmaktadır.”
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 geçiştirilirken bu kitapta 34 sayfa boyunca Application, WindowsFormsApplicationBase ve ApplicationContext sınıflarından söz edildi. Gerçekte bu 3 sınıftan bi haber olup iyi program yazmak mümkündür. Ne ki Visual Studio ile hazırlanan Visual Basic uygulamalarının geri planı hakkında bilgi sahibi olmayan programcı günün birinde sorun yaşar. Örneğin şöyle bir soru soralım: 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ının temel yapısının bilinmesini gerektirmektedir.