Programcılık Dersleri(Visual Basic) : 1

En başta belirtmek gerekir ki bu dersin iceriği daha once C# konulu ilk dersi okuyanlar icin fazla orijinal değildir. Gercekte .NET uyumlu Visual Basic ile ilgilenmesine rağmen C# ile ilgili ilk dersi okuyanları duşunerek bu dersin iceriğinin biraz farklı olmasına ozen gosterdim. Bircok okulda Visual Basic 6 dersleri verilmeye devam edildiği icin dersin sonunda Visual Basic 6 kullanıcıları icin birkac cumle ekledim.

Hemen şunu soylemeliyim ki; Visual Basic .NET ile Visual Basic 6 birbirinden oldukca farklı yaklaşımlara sahip iki programlama dilidir. Bu nedenle Visual Basic 6 ile yazılan programları Visual Basic for .NET’e donuşturmeye calışmak bence fuzuli bir uğraştır. Visual Studio ile gelen donuşturme sihirbazı ile ilgilenmenize gerek yoktur diyorum.

Diğer yandan merak edilen bir konu var: Visual Basic’in .NET uyumlu surumunu oğrenmek C#’ı oğrenmekten daha kolay veya daha zor değildir. Sonucta her iki dil de .NET Framework ile gelen aynı sınıfları kullandıkları icin birbirine ustunlukleri de yoktur. daha once az cok Visual Basic kodu yazmış olanlara Visual Basic'in .NET surumunu, C veya C++ gecmişi olanlara ise C#'ı oneriyorum.

Birileri bu dersleri 2 cumle ile anlatın derlerse soyleyeceklerim şunlardır: “Bu dersler Visual Basic gibi bir programla dili nasıl kolay oğrenilir sorusuna cevap arama uğraşısıdır" diyebilirim. Bu derslerin sonunda Visual Basic for .NET hakkında temel bilgilere sahip olacak ve bu derslerde sozu edilmeyen .NET sınıflarını nasıl kolayca oğrenebileceğinizi biliyor olacak ve Visual Basic programcısı olma yolunda en zor engeli aşmış olacaksınız.

Her ne kadar bu başlıkta Visual Basic for .NET ile program yazmak icin gereken aracları bir bir sayıp anlatacak olsam bile mutlaka gerekli olan oğrenme isteğidir. Visual Basic'in .NET uyumlu surumunu oğrenmek sizin icin hayati onem arz ediyorsa ister bu dersleri izlemiş olun ister izlememiş, bir şekilde Visual Basic’i oğrenirsiniz. Zaten kısa surede Visual Basic for .NET’ı oğrenmeleri zorunluluk olanlar 2. veya 3. dersi beklemeden gidip kitap alacaklar veya bir eğitime katılacaklardır.

Orada burada Memik YANIK ve kitapları aleyhine konuşan birisini gorurseniz ona hemen inanmayın derim. Oncelikle bu sayfalara yazılanları okuyun derim. Bu arada kişisel sitemde bilgisayar kitapları hakkında yazdıklarıma biraz goz atmanızı oneririm. Hemen haber vermem gerekirse kısa bir sure once Visual Basic 9.0 kitabım yayınlandı.

.NET uyumlu Visual Basic programlama dili ile ilgili bu dersleri izleyebilmek icin başlangıcta bilgisayarınızda .NET Framework’un kurulu olması yeterlidir. Cunku .NET Framework ile birlikte C#, Visual Basic for .NET ve C++ derleyicileri zaten geliyor. Maddeler halinde yazmak gerekirse C# ile program yazmak icin size
·
· .NET Framework
· Not Defteri

gereklidir. Buna gore Not Defteri ile Visual Basic kodu yazıp VB uzantısı ile kaydedersiniz. Sonra DOS penceresine gecip .NET Framework ile gelen Visual Basic derleyicisi(VBC.EXE) sayesinde derleme yapıp EXE dosya hazırlarsınız. Hic meraklanmayın bu işlemin ayrıntılarını bir sonraki derste anlatacağız. Hemen eklemek gerekirse; .NET Framework’u Microsoft ucretsiz dağıtmaktadır ve Vista ile birlikte gelmektedir. Bu nedenle Vista kullanıyorsanız Microsoft’un sitesinden dosya indirmeniz gerekmez.

Kullandığınız bilgisayarda Windows XP kuruluysa .NET Framework'u Microsoft’un sitesinden indirip kurabilirsiniz. Birkac yıl once .NET Framework 1.1 vardı. Sonra 2005 yılının başında .NET Framework 2.0 hazırlanıp dağıtıldı. Yakın bir zamanda ise .NET Framework’un 3.0/3.5 surumleri piyasaya verildi. Microsoft onceleri .NET Framework 2.0’a bazı yardımcı sınıflar ve araclar ekleyip buna 3.0 dedi. Sonrasında ise .NET Framework 3.5 hazırlandı. Bu dersler boyunca anlatılanları izleyip deneyebilmeniz icin .NET Framework 2.0 yeterlidir.

Ya Visual Studio?
Bu derslerin sizin icin verimli olması icin daha sonra sozu edilecek Visual Studio 2005/2008’i edinip bilgisayarınıza kurmanız veya Visual Basic icin hazırlanmış ucretsiz Express Edition’ı Microsoft’un sitesinden indirip kurmanız gerekir. Ucretsiz Express surumu edinmek kolay olduğu icin bu derslerde Express surume ağırlık vereceğim. Tabii bilgisayarlarına Visual Studio’yu kurmuş olanları da gozeteceğim. Bu dersleri izlerken Visual Studio’nun 2005 veya 2008 surumu kullanılabilir. Bu derslerde size Visual Basic programlama dilinin .NET uyumlu surumunun temel ozelliklerini anlatmayı hedeflediğim icin Visual Studio ile ilgili ayrıntılardan soz etmeyeceğim.

Bu paragrafı yukarıda .NET Framework’un surumlerimden soz edilen paragraf ile birlikte okuyanların bir kısmı bu Visual Studio’da ne oluyor diye sorabilirler. Hemen acıklayayım. Gercekte Visual Basic veya .NET Framework uyumlu herhangi bir programlama dili ile program yazmak icin .NET Framework ve Not Defteri gibi bir editor programı yeterli olmaktadır.

Ne ki cok sayıda dosyadan meydana gelebilen Visual Basic uygulamalarını Not Defteri gibi kısıtlı ozelliklere sahip bir editorle yazıp DOS penceresinde derlemek imkansız olmasa bile zahmetlidir. Bu nedenle konu .NET Framework uyumlu programlama dilleri olduğunda Microsoft ancak bu dillerde program yazma ve derleme işlemini kolaylaştıran Visual Studio’yu satarak para kazabilmektedir. İleri ki konularda derleyici nedir, IDE nedir gibi sorular sizin icin bilinmez olmayacaktır. Bu arada Visual Basic, .NET Framework ve Visual Studio'nun surumlerinin birbirine karıştırıldığı kitaplar gorurseniz şaşırmayın.



Son 2 paragraftan kafası karışanlar icin ek acıklama: Microsoft firması once .NET Framework adı verilen bir sınıf kitaplığını hazırladı. Bu sınıf kitaplığında program yazarken gerek duyabileceğiniz cok sayıda sınıf bulunmaktadır. Orneğin yazdığınız programda bir duğmeye gerek duyduğunuzda .NET Framework ile gelen Button sınıfından, TextBox’a gerek duyduğunuzda TextBox sınıfından yararlanabilirsiniz. Bu sınıfları C#, Visual Basic .NET ve C++ gibi programlama dilleri kullanılabilsin diye Microsoft firması bu 3 programlama dilinin derleyicilerini .NET Framework ile birlikte ucretsiz dağıtmaktadır. Başka bir deyişle kullandığınız bilgisayara .NET Framework’u kurmanız halinde elinizde hem Visual Basic hem de C# derleyicisi olmuş oluyor. Yani hazır sınıflar var, bu sınıfların kullanılabildiği programlama dillerinin derleyicileri de var. Geriye bir tek tercih edilen programlama dilinde uygulama yazılırken programcıya yardım edecek arac kalıyordu. Bu da once yalnızca Visual Studio iken sonra da Visual Basic icin hazırlanan Express Edition alternatifi geldi.

Express Edition nedir ki?
Visual Studio son derece gelişmiş ve program yazmayı kolaylaştırdığı gibi yuksek fiyatla satılan bir program geliştirme aracıdır, yani bir IDE’dir. Microsoft firması korsan kullanımı azaltmak, Visual Basic ve .NET uyumlu diğer programlama dillerini henuz oğrenenleri duşunerek Express Edition adı verilen Visual Studio’ya gore kısıtlı ozelliklere sahip "dile ozel" IDE’ler hazırlayıp dağıtmaya başladı.

Visual Studio ile C#, Visual Basic, C++ ve ASP.NET uygulamaları geliştirmek mumkun iken Express Edition’lar "dile" ozeldir. Yani .NET uyumlu hangi programlama diliyle uygulama geliştirilecekse o dil icin hazırlanmış Express Edition adı verilen IDE’yi yani program geliştirme aracını Microsoft’un sitesinden indirip kurmak gerekiyor. Hemen eklemek gerekir ki Visual Basic icin hazırlanmış olan Express Edition bir programlama dili olmayıp Visual Basic uygulamalarını kolayca hazırlayabilmeniz icin Microsoft tarafından hazırlanıp ucretsiz olarak dağıtılın bir IDE’dir, yani bir yardımcı programdır.

Buna rağmen bircok yerli yabancı kitabın kapağına baktığınızda sanki Visual Basic'in Express Edition diye bir surumunun olduğunu sanabilirsiniz. Orneğin elimde yabancı bir kitabın Turkce cevirisi var. Kitabın Turkce adı yerine orijinal adını vereyim: Visual Basic 2005 Express Edition. Bu adlandırmada birden fazla yanlış var: Visual Basic'in 2005 diye bir surumu yoktur ve buradaki 2005 Visual Basic'in olmayıp Visual Basic icin geliştirilen Express Edition'ın surum nosudur.



Karışıklık olmasın diye bir konuyu tekrarlayalım:Visual Basic derleyicisi .NET Framework ile birlikte dağıtılmaktadır. .NET Framework 1.0 ve 1.1 ile birlikte Visual Basic derleyicisinin 7.0 surumu verilirken .NET Framework 2.0 ile birlikte Visual Basic derleyicisinin 8.0 surumu gelmektedir. Gecen yıl kullanıma sunulan .NET Framework 3.5 ile birlikte ise Visual Basic derleyicisinin 9.0 surumu gelmektedir. Visual Basic derleyicisinin 7.0’dan 2.0 surumune gelindiğinde onemli gelişmeler olmuştu. Visual Basic derleyicisinin 9.0 surumunde cok sayıda yenilik olmasına rağmen hepsi dile yapılanlar birer ektir. Başka bir deyişle Visual Basic 8.0 icin yazılan kodlar Visual Basic 9.0 ile sorunsuzca derlenebilmektedir.

Kısaca anlatmak gerekirse Visual Basic icin hazırlanmış Express Edition, Visual Studio’yu edinemeyip ancak programlarını Not Defteri ile hazırlamak istemeyenlere uygundur. Bana sorarsanız Visual Basic oğrenirken Express Edition size yeterli olacaktır. Visual Studio’yu edinme imkanınız varsa Express Edition’a kayıtsız kalabilirsiniz. Bu derslerde Visual Basic 9.0 ile gelen yeniliklerden soz edilmeyeceği icin Express Edition’ın 2005 surumu kullanılabilir. Tabi en son surum olsun diyenler 2008 yılında kullanıma sunulan surumu indirip bilgisayarlarına kurabilirler.


Visual Basic 6

Bu derslerde Visual Basic 6’dan soz etmeyi başta duşunmemiş olmakla birlikte bu konuyu ilgi duyanların olacağını sandığım icin kısaca Visual Basic 6’dan soz edeceğim. 1998 yılında piyasaya verilen Visual Studio 6 paketi Visual Basic ve Visual C++ programlama dilerini, Visual FoxPro veritabanı programını ve Visual InterDev web geliştirme araclarını iceriyordu.

Her ne kadar bu araclar Visual Studio 6 adı altında bir araya getirilmiş olsa bile kurulduklarında birbirinden bağımsız IDE’lere sahiptirler. Visual Basic 6 oğrenilmesi son derece kolaydır. Bu nedenle yakın bir zamana kadar programcılığa başlayanlara Visual Basic 6 iyi bir secimdir deniliyordu. Visual Basic 6 bilgisayara kurulup yeni bir proje hazırlandığında aşağıdaki gibi bir Visual Basic penceresi ile karşılaşılmaktadır.


Gordunuz gibi Visual Studio 6'yı kurup Visual Basic'i başlatıp yeni bir proje hazırlarsanız karşınıza boyle bir Visual Basic penceresi cıkar. Bu şartlarda Visual Basic projesi Project1.vbp ve Form1.frm adında 2 dosyaya sahiptir. Project menusundeki komutlardan yararlanıp projeye 2. bir formu dahil edebilirsiniz. Projenizde birden fazla forma varsa Project menusundeki Properties komutundan yararlanıp ekrana proje ozelliklerinin ayarlandığı diyalog kutusunu getirebilirsiniz.



Bu diyalog kutusunda yapılan ayarlamalar vbp uzantılı proje dosyasına yazılmaktadır. frm uzantılı dosyasında ise formun ozellikleri ve form icin yazılan kodlar olmaktadır. Programcı Toolbox'tan yararlanıp formun uzerine duğme veya TextBox yerleştirdiğinde geri planda formu temsil eden frm uzantılı dosyada değişiklik yapılır. Burada VB 6 hakkında ayrıntılı bilgi verme duşuncemiz olmadığı icin Visual Basic 6 uygulaması geliştirmenin son derece kolay olduğunu işaret etmekle yetineceğim.

Bazen MSN'de konuşurken benden programlama dili onerisi isteyenlere şoyle bir cumle ile cevap veriyorum: İlk oğreneceğiniz programlama dili buyuk bir ihtimalle profesyonel programcı olup geliştirdiğiniz uygulamalarda kullanacağınız dil olmayacaktır. Cunku bugun programcılığa başlayan birisi biraz tecrube kazanıp bu işten ekmek yiyecek duruma gelene kadar oğrendiği programlama dilinde koklu değişikliklerin olması ihtimali yuksektir. Bu nedenle arkadaşın birisi "ben Visual Basic 6 ile programcılık oğrenmek istiyorum ne dersiniz?" diye sorduğunda "hayır .NET uyumlu olmayan Visual Basic'ten kesinlikle uzak dur" demiyorum.


ASP.NET ile VB.NET İlişkisi
Şunu hemen belirtmek gerekir ki Visual Basic'in .NET surumu hakkında edinilen bilgilerin buyuk bir kısmı ASP.NET ile web uygulaması geliştirilirken kullanılmaktadır. Bu nedenle ASP.NET uygulaması geliştirmek isteyenlerin oncelikle kullanacakları dil(Visual Basic veya C#) hakkında temel bilgilere sahip olmaları onerilir.

Web uygulaması geliştirmek isteyenler .NET uyumlu Visual Basic veya C#’ı oğrendikten sonra Visual Studio’yu veya Web Developer Express Edition’nı kullanabilirler. Visual Basic veya C# konusunda belli bir duzeye gelmeden ASP.NET ile Web uygulaması geliştirmek isteyenler zorlanırlar. Bir diğer onerim şudur: .NET Framework ile gelip veritabanı işlemleri yapılırken kullanılan sınıflar yani ADO.NET adı altında bir getirilen sınıflar hakkında bilgi edinmeden Web uygulaması geliştirmek isteyenler zorlanacaklardır.


Programcılık Kitapları

Bir makale veya kitap kaleme alınırken bir okur grubu hedeflenir ve ona gore bir anlatım duzeyi secilip konular ulaşılmak istenen hedef okur grubunun "tahmini" beklentilerine gore sıralanır. Bu derslerin hedef okur grubu daha once Visual Basic'in .NET uyumlu surumuyle “uğraşmamış” olanlardır. Ya da Visual Basic'le ilgili derslerde hocalarını izlemekte zorluk cekenlerdir, aldıkları Visual Basic konulu kitabı okuyup anlamakta zorlananlardır, her hangi bir sitede rastladıkları Visual Basic konulu makalede kullanılan kavramlara uzak olanlardır.

Bu dersleri kaleme alırken klasik anlamda bir amacım yoktu: Programcılık uzerine yazmayı, birilerinin yazdıklarımdan yararlanıyor olmasını seviyorum. Programcılık uzerine yazdıklarımı onceleri(yani bundan 17 yıl kadar once) bilgisayar dergilerinde yayınlayarak, kitap şeklinde duzenleyerek okurlara ulaştırdım. Eskisi kadar olmasa bile kitap yazmayı surduruyorum. Her ne kadar bir cok insan sırf Memik Yanık programcılık konulu kitaplar, makaleler yazmasın diye seferber olmuş olsa bile yine de yazmayı surduruyorum.

Yıllardır bilgisayar ve programcılık uzerine yazarken temel ilkem veya on şartım yazdıklarımın ilk okumada anlaşılmasını hedeflemek oldu. Bundan vazgecmiş değilim. Daha once herhangi bir şekilde herhangi bir dilde 2 satır kod yazdıysanız ve programcılığa merakınız varsa burada yazılanları ilk okumada mutlaka anlarsınız. Bu nedenlerdir ki bu derslerin ayırt edici ozelliği kolay okunmasıdır. Yoksa bu derslerde verilen bilgilerin tumunu başka sitelerde ve programcılık kitaplarında bulabilirsiniz. Bu derslerin asıl işlevi; programcılık oğrenmeye karar vermiş olanların veya programcılık derslerini zevkle izlemek isteyenlerin onunu acmaktır, oğrenme surelerini kısaltmaktır.
Yıllarca kitaplarımın arkasında buyuk puntolarla “Memik YANIK tarafından yazılan kitaplarda ilk okumada anlaşılmayan hicbir konu yoktur” yazdırdım. Bu cumle bircok insanın bana saldırıp hakaretler edip kufurler savurmasına neden olsa bile bu iddiadan vazgecmiş değilim. Hatta birileri hızını alamayıp “Memik Yanık kitaplarında verdiği 3–5 satırlık kısacık kodlarda kullandığı değişkenlere ad secerken benim kitaptan yararlanmıştır” diye beni sucladı. Başka bir anlatımla Memik Yanık kitaplarında kullandığı 3-5 satırlık ornek kodları yazarken tanımlamak istediği değişkene ne ad vereceğini gunlerce duşunmuş olmasına rağmen Integer tipindeki değişkene i veya j; dosyanın(filename) yol bilgisini aktaracağı değişkene "dosya" adını verebileceğini bir turlu duşunememiş(!). Memik Yanık oyle bir akıl tutulması yaşamış ki değişkenlere ad secerken yıllar once cıkan kitaplarındaki değişken adları dururken başkalarının kitaplarından değişken adı calmayı tercih etmiştir(!).

Bircok forumda her gun ismi belli olmayan cok sayıda kişinin Memik Yanık’a hakaretler duzmesinin tek nedeni yazdıklarımın ilk okumada mutlaka anlaşılıyor olması değildir elbette. Tepki cekmemin 2. bir nedeni değişik konularda kitaplar yazmamdır. Bir cok kişi “Bir kişi nasıl olurda hem Visual Basic, hem Delphi hem de Clipper hakkında kitaplar yazabilir? Olsa olsa başkasına yazdırıyordur veya ceviri yapıyordur” şeklinde goruşler ileri surduler. Sanki bir gun Clipper kitabını, birkac gun sonra ise Visual Basic kitabını yazıp yayınlamışım gibi suclanıyorum. Hal bu ki butun bu kitapları tam 20 yılda yazdım. Bazı kitaplarımın arkasına "bu kitap telif bir kitaptır yabancı yazarların kitaplarından araklanmadı" diye yazmış olmama rağmen inandırıcı olamadım.

Gercekte programcılık kitaplarında kimse bilim yapmıyor, kimse yeni bir şey uretmiyor. Yapılan tek şey; butun ozellikleri ortada olan programlama dilini kendi anlayışıyla kendi cumleleri ile anlatmaktır. Orneğin yuz yıllardır aşk uzerine yazılmış on binlerce roman vardır, aşk konulu binlerce film vardır. Aynı şekilde Visual Basic uzerinde yazılmış yuzlerce kitap vardır. Butun yazarlar aynı konuları anlatıp, aynı metotlardan, aynı sınıflardan soz ediyorlar. O zaman Visual Basic konulu kitapların arasındaki fark nedir diye soranlara verilecek cevap şudur: Fark anlatım şeklindedir. Elinize aldığınız kitapta yazarın anlatım şekli, cumleleri, konuları sıralayış şekli vs size uygunsa o kitap sizin icin iyidir.

Bu dersleri izleyen okurları bir konuda uyarmak istiyorum: Siz siz olun yazdığınız kodlarda tanımlayıp kullandığınız değişkenlere ad secerken dikkatli olmalısınız. Olur ya boş bulunup daha onceden register(!) edilmiş veya kullanım hakları bazı yerli yazarlarca kapatılmış "i", "j", "sayi", "dosya" gibi adlara sahip değişkenler tanımlarsanız ve bu tespit edilirse başınızın belaya girebileceğini unutmamalısınız(!). Bu uyarıya rağmen şu acıklamayı yapmayı gerekli gormekteyim: Bu derslerde kullandığım değişken adlarının mevcut Turkce programcılık kitaplarındaki değişken adları ile benzerlik gostermesi tesaduf eseridir.

memik yanıktan alıntı yaptım sade ve gzl anlatımı var ondan dolayı paylastım.
__________________