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.
22 Aralık 2008 Pazartesi
Delphi Prism
2 yıl kadar önce Delphi 2007 çıktığında bir makale yazmış ve Delphi programcılarına yeni Rad Studio hakkında bilgi vermeye çalışmıştım. Yakın bir zamanda Delphi Prism adında yeni bir uygulama geliştirme aracı daha doğrusu bir derleyici programcıların istifadesine sunuldu. Bu ürün vesilesi ile bir Delphi tarihi özeti geçeceğim. Microsoft’un ilk .NET Framework sürümünü hazırladığı günlerde Delphi’nin kullanıma sunulmuş en son sürümü Delphi 7’di. Masaüstü uygulamalar geliştirmek için o günlerin en iyi programlama dili ve uygulama geliştirme aracıydı. Derken Microsoft firması .NET Framework teknolojisini ve .NET uyumlu programlama dillerini kullanıma sundu. Bir süre sonra Borland firması Delphi 8 adıyla Delphi'nin .NET uyumlu sürümünü piyasaya vermekle birlikte Microsoft’un Visual Studio’su ve yeni programlama dilleri(Visual Basic .NET ve C#) kadar programcılardan ilgi görmedi. İşin özü konu Web uygulamaları geliştirmek olduğunda programcılar ağırlıklı olarak tercihlerini Microsoft ürünü araçlardan yana yaptılar. Kişisel görüşüme göre asıl sorun Borland’ın .NET Framework desteği konusunda Microsoft’u geriden takip etmesiydi. Örneğin Delphi ile Web uygulaması geliştiren programcılar .NET Framework 2.0 desteği için uzun süre beklemek zorunda kaldılar. Şu günlerde Microsoft firması Visual Studio 2008 ile .NET Framework 3.5 desteğini sunarken Borland(artık CodeGear demek gerek) ürünü Rad Studio 2007 ile gelen .NET uyumlu Delphi 2007 ile ancak .NET Framework 2.0 uyumlu ASP.NET uygulamaları geliştirmek mümkün olabilmektedir. Bir süre önce CodeGear yani Embarcadero firması(Delphi ve C++ Builder’ın yeni sahibi firma) RemObjects firmasının Oxygene adlı Object Pascal derleyicisinin haklarını satın alıp Delphi Prism adıyla piyasaya verdi.
Konunun uzmanlarının bildiği gibi C#, C++ ve Visual Basic programlama dilleri ile .NET uyumlu uygulamalar geliştirmek için kullanılan bilgisayara ilgilenilen .NET Framework sürümünü kurmak yeterli olmaktadır. Çünkü Microsoft firması sözünü ettiğim derleyicileri .NET Framework ile birlikte ücretsiz olarak dağıtmaktadır. Programcı kodunu istediği dilde Not Defteri veya başka bir editörle yazıp .NET Framework ile gelen derleyici ile derleyip kullanabiliyor. Tabii Not Defteri veya başka bir editörle .NET uyumlu uygulama geliştirmek zahmetli olduğu için programcılar Visual Studio'yu veya yukarıda saydığım dillere özel ücretsiz Express Edition'ları kullanıyorlar.
Gelelim Delphi Prism'e. Yukarıda anlatılanlara göre Microsoft'un .NET Framework ile birlikte verdiği derleyiciler .NET ile gelen sınıfları kullandıkları için .NET Framework kurulu olmayan bilgisayarda C# veya Visual Basic derleyicilerinden yararlanmak mümkün değildir. Bu durumda herşeyden önce eski adı Oxygene olan Delphi Prism derleyicisini kurmamız gerekiyor. Bu amaçla CodeGear.com'dan veya RemObjects.com'dan deneme sürümünü indirip kurduğunuzda Delphi'nin kurallarına göre .NET uyumlu uygulama geliştirmek mümkün hale geliyor.
Tabii programcılar Rad Studio veya Visual Studio gibi IDE'lere alışalı yıllar olduğu için IDE desteği olmayan derleyicilere dönüp bakmıyorlar artık. RemObjects firması Oxygene adlı Object Pascal derleyicisini hazırlarken Visual Studio desteğini verdi. Başka bir deyişle RemObjects firması .NET Framework ile gelen derleyicilerin sayısını bir arttırıp Visual Studio ile Object Pascal kodu yazabilme imkanını Delphi programcılarına sundu. Yani işin özü; daha önce Delphi ile masaüstü uygulamalar geliştirdiniz; sonra baktınız ki Delphi'nin .NET uyumlu sürümü .NET uyumlu Web uygulamalarını geliştirmede yetersiz kalıyor. Ötesi Visual Basic veya C# gibi yeni bir programlama dili öğrenmek istemiyorsunuz. Bu durumda imdadınıza Oxygene adlı Object Pascal derleyicisi yetişiyordu. Ne mi yapıyordunuz? Kullandığınız bilgisayara önce .NET Framework, sonra Visual Studio'yu kuruyordunuz. Devamında RemObjects.com'dan Oxygene'i indirip kuruyorsunuz. Sonra ekrana Visual Studio'nun New Project diyalog kutusunda tıpkı Visual Basic gibi tıpkı C# gibi Oxygene adlı Object Pascal derleyicisinin listelendiğini görüyordunuz.
Oxygene programcılardan ilgi görünce Delphi ve C++ Builder'ın yeni sahibi Embarcadero firması RemObjects ile anlaşıp Oxygene'e Delphi Prism adını verip dağıtmaya başladı. Tekrar etmek gerekirse Delphi Prism ile uygulama geliştirebilmek için kullandığınız bilgisayara önceden .NET Framework ve Visual Studio’yu kurmanız gerekiyor. Çünkü Delphi Prism Visual Studio ile entegre çalışıyor. Delphi Prism kimler için sorusuna şu cevap verilebilir: Visual Studio ile Delphi programlama dilini kullanarak masaüstü ve web uygulamaları geliştirmek isteyenler tercih edebilir. Tabii Visual Studio ortamında kullanılan Prism %100 Delphi uyumlu değildir. Ötesi Delphi Prism ile Delphi diline yapılan eklemeler ve geliştirmeler bulunmaktadır. Örneğin Procedure ve Function yerine, yani her ikisinin yerine Method anahtar kelimesi kullanılabilmektedir. Hemen sözü edilmesi gereken bir diğer konu ise şudur: Tespitlerim beni yanıltmıyorsa yakın zamanda piyasaya verilen Rad Studio 2009 paketinden çıkan Delphi sürümü ile ASP.NET uygulaması geliştirmek mümkün değildir. Akla hemen şu soru geliyor : Delphi Prism, CodeGear Rad Studio ile entegre çalışabiliyor mu? Tespitlerime göre henüz böyle bir entegrasyon yok. Belki bir süre sonra Delphi Prism'in Rad Studio ile çalışan versiyonu hazırlanır.
Konunun uzmanlarının bildiği gibi C#, C++ ve Visual Basic programlama dilleri ile .NET uyumlu uygulamalar geliştirmek için kullanılan bilgisayara ilgilenilen .NET Framework sürümünü kurmak yeterli olmaktadır. Çünkü Microsoft firması sözünü ettiğim derleyicileri .NET Framework ile birlikte ücretsiz olarak dağıtmaktadır. Programcı kodunu istediği dilde Not Defteri veya başka bir editörle yazıp .NET Framework ile gelen derleyici ile derleyip kullanabiliyor. Tabii Not Defteri veya başka bir editörle .NET uyumlu uygulama geliştirmek zahmetli olduğu için programcılar Visual Studio'yu veya yukarıda saydığım dillere özel ücretsiz Express Edition'ları kullanıyorlar.
Gelelim Delphi Prism'e. Yukarıda anlatılanlara göre Microsoft'un .NET Framework ile birlikte verdiği derleyiciler .NET ile gelen sınıfları kullandıkları için .NET Framework kurulu olmayan bilgisayarda C# veya Visual Basic derleyicilerinden yararlanmak mümkün değildir. Bu durumda herşeyden önce eski adı Oxygene olan Delphi Prism derleyicisini kurmamız gerekiyor. Bu amaçla CodeGear.com'dan veya RemObjects.com'dan deneme sürümünü indirip kurduğunuzda Delphi'nin kurallarına göre .NET uyumlu uygulama geliştirmek mümkün hale geliyor.
Tabii programcılar Rad Studio veya Visual Studio gibi IDE'lere alışalı yıllar olduğu için IDE desteği olmayan derleyicilere dönüp bakmıyorlar artık. RemObjects firması Oxygene adlı Object Pascal derleyicisini hazırlarken Visual Studio desteğini verdi. Başka bir deyişle RemObjects firması .NET Framework ile gelen derleyicilerin sayısını bir arttırıp Visual Studio ile Object Pascal kodu yazabilme imkanını Delphi programcılarına sundu. Yani işin özü; daha önce Delphi ile masaüstü uygulamalar geliştirdiniz; sonra baktınız ki Delphi'nin .NET uyumlu sürümü .NET uyumlu Web uygulamalarını geliştirmede yetersiz kalıyor. Ötesi Visual Basic veya C# gibi yeni bir programlama dili öğrenmek istemiyorsunuz. Bu durumda imdadınıza Oxygene adlı Object Pascal derleyicisi yetişiyordu. Ne mi yapıyordunuz? Kullandığınız bilgisayara önce .NET Framework, sonra Visual Studio'yu kuruyordunuz. Devamında RemObjects.com'dan Oxygene'i indirip kuruyorsunuz. Sonra ekrana Visual Studio'nun New Project diyalog kutusunda tıpkı Visual Basic gibi tıpkı C# gibi Oxygene adlı Object Pascal derleyicisinin listelendiğini görüyordunuz.
Oxygene programcılardan ilgi görünce Delphi ve C++ Builder'ın yeni sahibi Embarcadero firması RemObjects ile anlaşıp Oxygene'e Delphi Prism adını verip dağıtmaya başladı. Tekrar etmek gerekirse Delphi Prism ile uygulama geliştirebilmek için kullandığınız bilgisayara önceden .NET Framework ve Visual Studio’yu kurmanız gerekiyor. Çünkü Delphi Prism Visual Studio ile entegre çalışıyor. Delphi Prism kimler için sorusuna şu cevap verilebilir: Visual Studio ile Delphi programlama dilini kullanarak masaüstü ve web uygulamaları geliştirmek isteyenler tercih edebilir. Tabii Visual Studio ortamında kullanılan Prism %100 Delphi uyumlu değildir. Ötesi Delphi Prism ile Delphi diline yapılan eklemeler ve geliştirmeler bulunmaktadır. Örneğin Procedure ve Function yerine, yani her ikisinin yerine Method anahtar kelimesi kullanılabilmektedir. Hemen sözü edilmesi gereken bir diğer konu ise şudur: Tespitlerim beni yanıltmıyorsa yakın zamanda piyasaya verilen Rad Studio 2009 paketinden çıkan Delphi sürümü ile ASP.NET uygulaması geliştirmek mümkün değildir. Akla hemen şu soru geliyor : Delphi Prism, CodeGear Rad Studio ile entegre çalışabiliyor mu? Tespitlerime göre henüz böyle bir entegrasyon yok. Belki bir süre sonra Delphi Prism'in Rad Studio ile çalışan versiyonu hazırlanır.
Kaydol:
Kayıtlar (Atom)