C# Programcılık İçin Gereken Programlar

Bundan yaklaşık bir yıl önce kişisel web sitemde yayınlamak üzere C#, Visual Basic ve Delphi hakkında başlangıç düzeyi bilgi içeren ve ders şeklinde düzenlediğim yazılar hazırladım.

Bundan yaklaşık bir yıl önce kişisel web sitemde yayınlamak üzere C#, Visual Basic ve Delphi hakkında başlangıç düzeyi bilgi içeren ve ders şeklinde düzenlediğim yazılar hazırladım. Bu makaleleri ilk yazmaya başladığımda her programlama dili için 5 ders düşünmüştüm. C# ve Visual Basic için hazırladığım derslerin sayısı 4'te kalırken Delphi için yazdığım yazıların sayısı üçte kalmıştı. Dersleri tam gaz kaleme alırken değişken adı benzerliği davası yazma hevesimi kırmıştı. Çünkü programcılık öğrenmek isteyenlere tecrübelerimi aktarırken değişken adı çalma suçlaması ile kendimi sanık pozisyonunda hakim karşısında buldum.

Bu günlerde geçen yıl yarım bıraktığım dersleri tamamlamak üzere yeninden çalışmaya başladım. Dersleri ilk kaleme aldığım zaman C#, Visual Basic ve Delphi dersleri birbirine paralel gidiyordu. Yani önce bir C# dersi, birkaç gün sonra benzer konuları Visual Basic için kaleme alıyordum. Ancak bu kez öyle yapmayacağım. Öncelikle C# derslerini bitireceğim. C# derslerini tamamladıktan sonra bu kez Visual Basic derslerini yeniden hazırlayıp yayınlayacağım. C# ilgili dersleri kaleme alırken bir yıl önce kaleme aldığım dersleri gözden geçirip eklemeler yapacağım. Doğrusu geçen yıl bu zamanlar programcılık derslerini okuyup sonra da az çok programcılıkla uğraşanlara bu derslerin yeni halinin ek bir katkısı olmayacaktır. Çünkü bu derslerin hedef okur grubu C#, Visual Basic veya Delphi ile programcılığına yeni başlayanlar olacaktır. Başka bir deyişle bu dersleri, geçen yıl yayınlanan derslerin genişletilmiş baskısı olarak değerlendirebilirsiniz.

Bir makale veya kitap kaleme alınırken bir okur grubu hedeflenir ve ona göre bir anlatım düzeyi seçilip konular ulaşılmak istenen okur grubunun "tahmini" beklentilerine göre sıralanır. Bu derslerin hedef okur grubu daha önce C#, VB.NET, Delphi ve C++ programlama dilleri ile 'uğraşmamış' olanlardır. Ya da bu programlama dilleriyle ilgili derslerde hocalarını izlemekte zorluk çeken öğrencilerdir, aldıkları kitabı okuyup anlamakta zorlananlardır, her hangi bir sitede rastladıkları makalede kullanılan kavramlara uzak olanlardır. Öğretim üyeleri veya programcılık dersini veren hocalar öğrencilere ders anlatırken ne fazla bilgili öğrencileri ne de o programlama diliyle daha önce hiç yakınlığı olmayanları referans alır. Dersleri veren hoca sınıfın ortalamasına göre bir anlatım düzeyi tutturmaya çalışır.

Bu dersleri kaleme alırken gerçekte klasik anlamda bir amacım yoktu: Programcılık üzerine yazmayı, birilerinin yazdıklarımdan yararlanıyor olmasını seviyorum. Programcılık üzerine yazdıklarımı önceleri(yani bundan 15 yıl kadar önce) bilgisayar dergilerinde yayınlayarak, kitap şeklinde düzenleyerek sizlere ulaştırdım. Eskisi kadar olmasa bile kitap yazmayı sürdürüyorum. Her ne kadar bir çok insan sırf Memik Yanık programcılık konulu kitaplar yazmasın diye seferber olmuş olsa bile yine de yazmayı sürdürüyorum.

Yıllardır bilgisayar ve programcılık üzerine yazarken temel ilkem veya ön şartım yazdıklarımın ilk okumada anlaşılmasını sağlamaktı. Bundan vazgeçmiş değilim. Daha önce 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 özelliği kolay okunmasıdır. Yoksa bu derslerde verilen bilgilerin tümünü başka sitelerde ve programcılık kitaplarında bulabilirsiniz. Bu derslerin asıl işlevi programcılık öğrenmeye karar vermiş olanların veya programcılık derslerini zevkle izlemek isteyenlerin önünü açmaktır, öğrenme sürelerini kısaltmaktır.

Çevrenizde C#, VB, Delphi veya C++ programlama dilini bilenlere gıpta mı ediyorsunuz veya C#'ı, C++, Delphi'yi nasıl öğrenirim diye kara kara düşünüyor, okulunuzda gördüğünüz C#, C++ derslerinden nasıl geçerim diye kaygılanıyorsanız ilk olarak bu olumsuz düşünceleri bir tarafa bırakın derim. Yıllarca kitaplarımın arkasında büyük puntolarla 'Memik YANIK tarafından yazılan kitaplarda ilk okumada anlaşılmayan hiçbir konu yoktur' yazdırdım. Bu cümle birçok insanın bana saldırıp hakaretler edip küfürler savurmasına neden olsa bile bu iddiadan vazgeçmiş 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 seçerken benim kitaptan yararlanmıştır' diye suçladı.

Birçok forumda her gün ismi belli olmayan çok sayıda kişinin Memik Yanık'a hakaretler düzmesinin tek nedeni yazdıklarımın ilk okumada mutlaka anlaşılıyor olması değildir elbette. Tepki çekmemin 2. bir nedeni değişik konularda kitaplar yazmamdır. Bir çok 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 çeviri yapıyordur' şeklinde görüşler ileri sürdüler. Sanki bir gün Clipper kitabını, birkaç gün sonra ise Visual Basic kitabını yazıp yayınlamışım gibi suçlandım. Hal bu ki bütün bu kitapları tam 15 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.

Gerçekte programcılık kitaplarında kimse bilim yapmıyor, kimse yeni bir şey üretmiyor. Yapılan tek şey; bütün özellikleri ortada olan programlama dilini kendi anlayışıyla kendi cümleleri ile anlatmaktır. Örneğin yüz yıllardır aşk üzerine yazılmış on binlerce roman vardır, aşk konulu binlerce film vardır. Aynı şekilde C# üzerinde yazılmış yüzlerce kitap vardır. Bütün yazarlar aynı konuları anlatıp, aynı metotlardan, aynı sınıflardan söz ediyorlar. O zaman C# 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, cümleleri, konuları sıralayış vs size uygunsa o kitap sizin için 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 seçerken dikkatli olmalısınız. Olur ya boş bulunup daha önce register(!) edilmiş veya kullanım hakları 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 açıklamayı yapmayı gerekli görmekteyim: Bu derslerde kullandığım değişken adlarının mevcut Türkçe programcılık kitaplarındaki değişken adları ile benzerlik göstermesi tesadüf eseridir.

C# Programcısı İçin Gerekli Araçlar

Daha önce herhangi bir programlama dili ile az çok kod yazdıysanız 'off şimdi bu C#'ı kim öğrenecek, Microsoft firması bu programlama dilini keşke hazırlamasaydı, bir sürü Class, yeni bir dil' diyorsanız bu düşüncenizden sizi uzaklaştırmaya yüz binlerce kişiye programcılık öğretmiş Memik YANIK olarak talibim. Daha önce Visual Basic 6 ile az çok program yazdıysanız C# yerine Visual Basic for .NET'i tercih edebilirsiniz. Ötesi, C# ile Visual Basic'in .NET sürümünün yeteneklerini karşılaştırdığımızda aralarında önemli bir fark yoktur. Kişisel görüşüme göre C#'ı öğrenmek, .NET uyumlu Visual Basic'i öğrenmekten daha zor değildir. Daha açık bir anlatımla Visual Basic'in NET sürümünü tercih etme nedeniniz C#'ın daha zor öğrenilen bir dil olacağını sanma düşüncesi olmasın.

Daha önce C ile az çok uğraştıysanız C#'ın söz dizimine çabuk alışacaksınız. Nesneye yönelik programcılık kavramları hakkında bilgi sahibiyseniz, başka bir deyişle C++ üzerinde az çok çalıştıysanız C#'ı öğrenmek sizin için daha kolay olacaktır. Benzer şekilde daha önce JAVA hakkında bilgi edinmiş olanların C#'ı öğrenmeleri kolay olmaktadır.

Birileri bu dersleri 2 cümle ile anlatın derlerse söyleyeceklerim şunlardır: 'Bu dersler bir programla dili nasıl öğrenilir sorusuna cevap verme uğraşısıdır' diyebilirim. Bu derslerin sonuna gelindiğinde C# hakkında temel bilgilere sahip olacak ve bu derslerde sözü edilmeyen .NET sınıflarını kolayca öğrenebileceğinizi biliyor olacaksınız, C# programcısı olma yolunda en zor engeli aşmış olacaksınız. Başka bir anlatımla bu dersleri sonuna kadar izleyen kişilerde programlama dili öğrenme korkusu olmayacaktır.

Her ne kadar bu başlıkta C# ile program yazmak için gereken araçları bir bir sayıp anlatacak olsam bile mutlaka gerekli olan öğrenme isteğidir. C#'ı öğrenmek sizin için önem arz ediyorsa ister bu dersleri izlemiş olun ister izlememiş, bir şekilde C#'ı öğrenirsiniz. Zaten kısa sürede C#'ı öğrenmeleri zorunluluk olanlar gidip kitap alacaklar veya programcılık eğitimi veren bir kuruma başvuracaklardır.

Orada burada Memik YANIK ve kitapları aleyhine konuşan, yazan birilerini görürseniz (ki görmeniz yüksek bir ihtimaldir) onlara hemen inanmayın derim. Öncelikle bu sayfalarda yazılanları okuyun derim. Bu arada kişisel sitemde bilgisayar kitapları hakkında yazdıklarıma biraz göz atmanızı öneririm. Tabii ki yazdığım kitaplarda hiç hata yoktur hepsi eksiksizdir diyecek değilim. Benim itirazım kitaplarımın incelenmeden, okunmadan karalanmasıdır. Bazı arkadaşlar ise yıllar önce yayınlanan, çoktandır satıştan kalkan kitaplarımı bugünün şartlarına göre değerlendiriyorlar. Örneğin 2007 yılında yayınlanan Delphi 2007 kitabım dururken kalkıp 2000 yılında yayınlanan Delphi kitabım üzerine konuşuyorlar, 2000 yılında yayınlanan programcılık kitabını 2008 yılının ihtiyaçlarına, şartlarına göre değerlendiriyorlar.

C# programlama dili ile ilgili bu dersleri izleyebilmek için başlangıçta bilgisayarınızda .NET Framework'ün kurulu olması yeterlidir. Çünkü .NET Framework ile birlikte C#, Visual Basic for .NET ve C++ derleyicileri zaten geliyor. Maddeler halinde yazmak gerekirse C# programlama dili ile program yazmak için size .NET Framework, Not Defteri gereklidir. Buna göre Not Defteri ile C# programınızı yazıp CS uzantısı ile kaydedersiniz. Sonra DOS penceresine geçip .NET Framework ile gelen C# derleyicisi(CSC.EXE) sayesinde derleme yapıp EXE dosyayı hazırlarsınız. Hiç meraklanmayın bu işlemin ayrıntılarını ileriki sayfalarda anlatacağım. Hemen eklemek gerekirse; .NET Framework'ü Microsoft ücretsiz dağıtmaktadır ve Vista ile birlikte gelmektedir. Bu nedenle Vista kullanıyorsanız microsoft.com'dan indirip kurmanız gerekmez.

Kullandığınız bilgisayarda Windows XP kuruluysa .NET Framework'ü Microsoft'un sitesinden indirip kurabilirsiniz. Birkaç yıl önce .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'ün 3.0/3.5 sürümleri piyasaya verildi. Microsoft firması önceleri .NET Framework 2.0'a bazı sınıfları ve yardımcı araçlar ekleyip buna .NET Framework 3.0 dedi. Sonrasında ise .NET Framework 3.5 hazırlandı. Bu dersler boyunca anlatılanları izleyip küçük örnekleri deneyebilmeniz için size .NET Framework 2.0 yeterli olacaktır. Tabii kurmuşken en son sürüm olsun diyenler bilgisayarlarına .NET Framework'ün 3.5 sürümünü kurabilirler.

Visual Studio

Bu derslerin sizin için verimli olması için daha sonra sözü edilecek Visual Studio 2005 veya 2008'i edinip bilgisayarınıza kurmanız veya C# için hazırlanmış ücretsiz Express Edition'ı Microsoft'un sitesinden indirip kurmanız gerekir. Express sürümü edinmek daha kolay olduğu için Express sürüme ağırlık vereceğim. Tabii bilgisayarlarına Visual Studio'yu kurmuş olanları da gözeteceğim. Bu dersleri izlerken Visual Studio'nun 2005 veya 2008 sürümü de kullanılabilir. Bu derslerde size C#'în temel özelliklerini anlatmayı hedeflediğim için Visual Studio ile ilgili ayrıntılardan söz etmeyeceğim.

Bu paragrafı yukarıda .NET Framework'ün sürümlerimden söz edilen paragraf ile birlikte okuyanların bir kısmı bu Visual Studio'da ne oluyor diye sorabilirler. Hemen açıklayayım. Gerçekte C# veya .NET Framework uyumlu herhangi bir programlama dili ile program yazmak için .NET Framework ve Not Defteri gibi bir editör programı yeterli olmaktadır.

Ne ki çok sayıda dosyadan meydana gelebilen C# uygulamalarını Not Defteri gibi kısıtlı özelliklere sahip bir editörle yazmak imkansız olmasa bile çok 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 için bilinmez olmayacaktır.

Son 2 paragraftan kafası karışanlar için ek açıklama: Microsoft firma .NET Framework adı verilen bir sınıf kitaplığını hazırladı. Bu sınıf kitaplığında program yazarken gerek duyabileceğiniz çok sayıda sınıf bulunmaktadır. Örneğin yazdığınız programda bir düğ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ıf kitaplıkları ancak C#, Visual Basic .NET ve C++ gibi programlama dilleri ile kullanılabildiği için Microsoft firması bu 3 programlama dilinin derleyicilerini .NET Framework ile birlikte dağıtmaktadır. Başka bir deyişle kullandığınız bilgisayara .NET Framework'ü kurmanız halinde elinizde hem Visual Basic hem de C# derleyicisi olmuş oluyor.

Express Edition

Visual Studio son derece gelişmiş ve program yazmayı kolaylaştırdığı gibi yüksek fiyatla satılan bir program geliştirme aracıdır, yani bir IDE'dir. Microsoft firması korsan kullanımı azaltmak, C# ve .NET uyumlu diğer programlama dillerini henüz öğrenenleri düşünerek Express Edition adı verilen Visual Studio'ya göre kısıtlı özelliklere sahip IDE'ler hazırlayıp dağıtmaya başladı.

Visual Studio ile C#, Visual Basic, C++ ve ASP.NET uygulamaları geliştirmek mümkün iken Express Edition'lar dile özeldir. Yani .NET uyumlu hangi programlama dili kullanılacaksa o dil için hazırlanmış Express Edition adı verilen IDE'yi yani program geliştirme aracını Microsoft'un sitesinden indirip kurmak gerekir. Hemen eklemek gerekir ki C# için hazırlanmış olan Express Edition bir programlama dili olmayıp C# uygulamalarını kolayca hazırlayabilmeniz için Microsoft tarafından hazırlanıp ücretsiz olarak dağıtılın bir IDE'dir, yani bir yardımcı programdır.

Karışıklık olmasın diye ek bilgi verelim:C# derleyicisi .NET Framework ile birlikte dağıtılmaktadır. .NET Framework 1.0 ve 1.1 ile birlikte C# derleyicisinin 1.0 sürümü verilirken .NET Framework 2.0 ile birlikte C# derleyicisinin 2.0 sürümü gelmektedir. Geçen yıl kullanıma sunulan .NET Framework 3.5 ile birlikte ise C# derleyicisinin 3.0 sürümü gelmektedir. C# derleyicisinin 1.1'den 2.0 sürümüne gelinde önemli gelişmeler olmuştu. C# derleyicisinin 3.0 sürümünde çok sayıda yenilik olmasına rağmen hepsi dile yapılan birer ektir. Başka bir deyişle C# 2.0 ile yazılan kodlar C# 3.0 ile sorunsuzca derlenebilmektedir.

Kısaca anlatmak gerekirse Visual C# için hazırlanmış Express Edition, Visual Studio'yu edinemeyip ancak programlarını Not Defteri ile hazırlamak istemeyenlere uygundur. Bana sorarsanız C#'ı öğrenirken Express Edition yeterli olacaktır. Visual Studio'yu edinme imkanınız varsa Express Edition'a kayıtsız kalabilirsiniz. Bu derslerde C# 3.0 ile gelen yeniliklerden söz edilmeyeceği için Express Edition'ın 2005 sürümü kullanılabilir. Tabi en son sürüm olsun diyenler 2008 yılında kullanıma sunulan sürümü indirip bilgisayarlarına kurabilirler.

  • Etiketler;
Memik Yanık
Hakkında bilgi yakın zamanda eklenecektir.
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Hocam saolun. bilginize talibim. Şu C# ı bir sökeyim kendime güvenim gelecek. Yapabileceğimi çok iyi biliyorum , sorun en kısa ne kadar zamanda yapabilirim.. Bana başlangıç için tavsiyeleriniz varsa yerine getirmeye hazırım.. Okumam gereken kitaplar vs. Herşey için şimdiden çok teşekkür ediyorum..
anadolu01 merhaba; Henüz kitap almana gerek yok derim. Tabi acelen yoksa.. Yani hele burada yayınlanacak birkaç dersi oku... Sonra duruma göre kendin karar verirsin..
MEMİK HOCA SEN ÇOK YAŞA
Merhaba bu program ile bilgisyarın donanımına hükmedebiliyormuyuz.bu dili öğrenmek istiyorum.
merhaba; insanlar en zor bilgiyi paylaşıyorlar, siz ise bu grubu girmiyorsunuz.ben de bu sebepten öncelikle size çok teşekkür etmek istiyorum. acaba c# ile tarayıcıdan optik okuyucu gibi faydalanmak mümkün olur mu? benim hedefim de bu. yol gösterilmesine çok ihtiyacım var. çalışmalarınızda kolaylıklar dilerim.
kim ne derse desin. meyve veren ağaç taşlanır... hocam emekleriniz için çok teşekkürler :)
Bilgi ve tecrübelerinizi paylaştığınız için teşekkür ederim. Saygı ve Sevgilerle. (Önemli Not: Bana bir harf öğretenin kırk yıl kölesi olurum. Hz. Ali R. A.)
hocam Delphi 2007 for Win32 Kitabınızın içindekiler dosyasını sitenizden indirip bir göz attım gerçektende işlenmemiş konu kalmamış nerdeyse .. ama 2 şeyi eksik gördüm yada gözümden kaçtı eğer varsada özür diliyorum .. 1 ) 2007 IDE deki Refactoring 2 ) SOAP ile ilgili konu başlıklarını göremedim ... Eğer varda ben gözden kaçırdıysam çok özür dilerim ...
Her şey iyi güzel hoş da, exe nin debug dosyasına kaydedildiğni biliyorum ancak öyle yapınca icon gözükmüyor. Başka bir şekilde exe ye dönüştürmenin bir yolu var mı? Şimdiden teşekkürler :)

Yukarı Git