Programcılık Dersleri(C#) : 5

Bu derste Visual Studio’nun program geliştirme ortamı hakkında kısaca bilgi verilecektir. Daha önce Visual Studio’nun herhangi bir sürümünü kullandıysanız bu dersi atlamak isteyebilirsiniz. Bu derse en azından göz gezdirmenizi önermek isterim. Çünkü bu derste ileride işlenecek bazı konulara temel oluşturan birkaç ayrıntıdan söz edilmektedir.  5. C# Dersi : Visual Studio’nun Program Geliştirme Ortamı

 

Bu derste Visual Studio’nun program geliştirme ortamı hakkında kısaca bilgi verilecektir. Daha önce Visual Studio’nun herhangi bir sürümünü kullandıysanız bu dersi atlamak isteyebilirsiniz. Bu derse en azından göz gezdirmenizi önermek isterim. Çünkü bu derste ileride işlenecek bazı konulara temel oluşturan birkaç ayrıntıdan söz edilmektedir. Aslında C# programlama dilinden bağımsız olarak Visual Studio hakkında yüzlerce sayfa yazılabilir. Ne ki bu derslerde böyle bir amacım yoktur. Bu derslerde amaç C# programlama dilini ve .NET Framework ile gelen sınıflar hakkında başlangıç düzeyi bilgi vermek olduğu için Visual Studio hakkında kısa bir özet yapılmakla yetinildi.

 

Visual Studio 2008’in kurulması kolay ve sorunsuzdur. Visual Studio 2008 DVD’si sürücüye takıldığında veya “Setup.exe” programı çalıştırıldığında ekrana aşağıda verilen pencere gelmektedir. Visual Studio’nun değişik sürümleri bulunmaktadır. Professional sürüm işinizi görecektir. Visual Studio’nun deneme sürümünü microsoft.com’dan indirebilirsiniz.

cs ders 5 resim 1 Programcılık Dersleri(C#) : 5 programlama

Bu penceredeki ilk seçenek tıklandığında size birkaç tanıdık soru yöneltildikten sonra kurma işlemi tamamlanmaktadır. Bu tanıdık sorulardan birisi Visual Studio’ya ait dosyaların kurulacağı sürücü ve klasördür. Visual Studio varsayım olarak C:\Program Files\Microsoft Visual Studio 9.0\ klasörüne kurulmaktadır.

cs ders 5 resim 2 Programcılık Dersleri(C#) : 5 programlama

Bu pencerede kurma tipi olarak Custom seçilirse Install düğmesi yerini Next düğmesine bırakır. Önce Custom radyo düğmesini seçip Next düğmesini tıkladığınızda ekrana Visual Studio’nun kurulacak bileşenlerinin seçildiği pencere gelir.

cs ders 5 resim 3 Programcılık Dersleri(C#) : 5 programlama

Bu pencereden yararlanıp Visual Studio’nun kurulacak bileşenlerini seçebilirsiniz. Örneğin Visual Studio ile Visual Basic veya C++ dilinde uygulama geliştirmeyi düşünmüyorsanız bu dillerle ilgili bileşenlerin kurulmalarını engelleyebilirsiniz. Visual Studio bilgisayara kurulduktan sonra Başlat menüsünde Microsoft Visual Studio 2008 adında bir program grubu hazırlanmakta ve bu program grubuna Visual Studio’ya ait kısayollar dahil edilmektedir.

 

Visual Studio kurulup başlatıldığında ekrana aşağıda verilen diyalog kutusu getirilerek program geliştirme ortamının düzenlenmesi konusunda seçim yapmanız istenir. C# programları geliştirmek istediğim için bu diyalog kutusunda Visual C#’ı seçtim. Bu seçim sayesinde Visual Studio’nun ortamı C#’ın varsayılan seçimlerine göre ayarlanır.

cs ders 5 resim 4 Programcılık Dersleri(C#) : 5 programlama

Bu diyalog kutusunda Visual C#’ı seçtiğinizi varsayalım. Bir süre sonra Visual Basic’in ayarlarına dönmek isterseniz Tools menüsünden Import and Export komutu verildiği zaman çalışmaya başlayan Wizard’ın ilk adımını temsil eden diyalog kutusunda Reset all Settings radyo düğmesini seçip ortamın hangi dilin varsayılan ayarlarına göre düzenleneceği konusunda seçim yapılan bu diyalog kutusunu ekrana getirebilirsiniz.

 

cs ders 5 resim 5 Programcılık Dersleri(C#) : 5 programlama

 

Bu diyalog kutusundaki Reset all settings radyo düğmesini seçip Next düğmesiyle işleme devam ettiğinizde Wizard ekrana Choose a Default Collection of Settings diyalog kutusunu getirir. Hangi dilin ayarlarının geçerli olmasını istiyorsanız o dili seçebilirsiniz. Örneğin eski bir Visual Basic programcısı iseniz C# uygulamaları geliştirirken Visual Basic’in ayarlarının geçerli olmasını sağlayabilirsiniz.

 

cs ders 5 resim 6 Programcılık Dersleri(C#) : 5 programlama

Visual Basic’in varsayılan ayarları ile Visual C#’ın ayarları arasındaki önemli farklardan birisi şudur: Visual Basic ayarları geçerli iken Visual Studio sizi hazırladığınız projeyi hemen kaydetmek zorunda bırakmıyor. Tabii bu diyalog kutusunda hangi dilin varsayılan ayarlarını seçerseniz seçin sonradan Tools menüsünden Options komutu ile ekrana getirilen diyalog kutusunda ortam ayarlarında istediğiniz değişikliği yapabilirsiniz. 2004 yılında yayınlanan C# kitabımda Data Adapter Configuration Wizard ile DataAdapter nesnesinin özelliklerini ayarladım diye yargılandığıma göre yarın bir gün yerli yazarın birisi çıkıp bu Import and Export Settings Wizard’ı kullanmayı ilk ben akıl ettim derse sorumluluk kabul etmem. Ayrıca bu memlekette Wizard tarafından ekrana getirilen diyalog kutularının birden fazla kitapta aynı sırada olduğunu rapor edecek çok sayıda bilim adamı(!) olduğuna göre bu Wizard’dan yararlanmak risk teşkil edebilir.

 

Visual Studio çalıştırıldığında yeni proje hazırlayabilmeniz veya mevcut projeleri açabilmeniz için Start Page ekrana getirilmektedir. Bu sayfadaki Recent Projects kutusunda Open adı altında gruplanan seçenekler ile mevcut projeleri açabilirsiniz. Create adı altında gruplanan 2 seçenekten yararlanıp yeni proje hazırlayabilirsiniz.

 

Mevcut projelerden birisini açmak istiyorsanız Open adı altında gruplanan seçeneklerden Project’i tıklamanız gerekir. Project seçeneğini tıklarsanız geçerli kullanıcıya ait “Belgelerim” klasörünün altında yer alan Visual Studio Projects klasöründeki projeler listelenir. Visual Studio ile hazırlanan her proje için ayrı bir klasör hazırlanmakta ve projeye ait dosyalar bu klasöre kaydedilmektedir.

cs ders 5 resim 7 Programcılık Dersleri(C#) : 5 programlama

Visual Studio ile C# projesi hazırlamak üzere Start Page’deki Create adı altında gruplanan 2 seçenekten Project’i tıklarsanız ekrana New Project diyalog kutusu gelir. Project types kutusunda listelenen seçenekler Visual Studio’nun bilgisayara kurulan bileşenlerine göre değişmektedir. C# projesi hazırlamak istediğim için Project types kutusunda Visual C# ve Templates kutusunda Windows Foms Application şablonunu seçtim.

 

cs ders 5 resim 8 Programcılık Dersleri(C#) : 5 programlama

 

Tam bu noktada bazen kafaların karışmasına neden olan Visual C# ile C# ayrımına değinmek gerekiyor. Visual C#, Microsoft firmasının ticari markasıdır. Madem C# programlama dilini Microsoft firması geliştirdi ve bu kitapta Microsoft firması tarafından geliştirilen Visual Studio’dan yararlanıyoruz C# ile Visual C# aynı anlamda kullanılabilir.

 

C# uygulamalarını geliştirirken Visual Studio yerine C# için hazırlanmış Express Edition’ı kullanıyor olsaydım New Project diyalog kutusunda daha az şablon listelenirdi. Aşağıda verilen ekran görüntüsü C# için hazırlanmış Express Edition’a aittir.

cs ders 5 resim 9 Programcılık Dersleri(C#) : 5 programlama

 

Visual Studio 2003 veya 2005 ile C# projesi hazırlanmak istendiği zaman ekrana getirilen New Project diyalog kutusunda .NET Framework sürümünü tercih etme imkanı yoktu. Visual Studio 2003 ile .NET Framework 1.1 uyumlu projeler hazırlanabilirken Visual Studio 2005 ile .NET 2.0 uyumlu projeler hazırlanabiliniyordu. Visual Studio 2008’de ise proje hazırlarken .NET Framework’ün 2.0, 3.0 veya 3.5 sürümlerinden birisini seçme imkanın bulunmaktadır. New Project diyalog kutusunda seçilen .NET Framework sürümüne göre Templates liste kutusunda listelenen şablonlar değişmektedir.  

 

Başlangıçta projeler için(yani eğitim amaçlı projelerde) .NET Framework’ün 2.0 veya 3.5 sürümünü seçmenin bir önemi olmamasına rağmen 3.5 sürümünü tercih ettim. New Project diyalog kutusunda .NET Framework’ün 2.0 sürümünü tercih ederseniz C# 3.0 ile ilgili bazı yeniliklerden yararlanamazsınız. Örneğin LINQ teknolojisi ile sorgulama yapamazsınız. New Project diyalog kutusunun alt kısmında Name seçeneğinden yararlanarak projenin adını girebilir ve Location seçeneği ile projenin kaydedileceği klasörü belirleyebilirsiniz.

 

Visual Studio ile hazırlanan C# projelerinin geçerli kullanıcıya ait Belgelerim klasörünün altında bulunan Visual Studio Projects klasörüne kaydedileceği varsayılmaktadır. Hazırlamak istediğim projeyi “C:” sürücüsündeki “\Projeler” klasörüne kaydetmek istediğim için Browse düğmesini tıklayıp klasör seçilen Project Location diyalog kutusunu ekrana getirip bu klasörü seçtim.

cs ders 5 resim 10 Programcılık Dersleri(C#) : 5 programlama

Yukarıda anlatılan şekilde proje hazırladığınızda Visual Studio ayrıca bir Solution hazırlamaktadır. Solution’lar proje grubu gibi işlev görmektedir. Başlangıçta projenin adı aynı zamanda Solution adı olarak kullanılmaktadır. Solution’a birden fazla proje dahil edeceksiniz farklı bir ad vermeniz önerilir. Proje hazırlanırken Visual Studio tarafından oluşturulan klasörleri gösterebilmek için Solution’a farklı bir ad verdim. Bu ayarlamalardan sonra New Project diyalog kutusunu OK düğmesiyle kapatırsanız Visual Studio projeyi hazırlar ve aşağıdaki gibi bir Visual Studio penceresi ile karşılaşırsınız.


cs ders 5 resim 11 Programcılık Dersleri(C#) : 5 programlama

Başlangıçta Solution Explorer ve Properties pencereleri Visual Studio penceresinin sağ tarafına yuvalanmış durumdadır. Sol tarafta ise Toolbox gizlenmiş durumdadır. Bu ekran görüntüsü Visual Studio bilgisayara kurulduktan hemen sonra alındığı için sizin bilgisayarda Visual Studio ile ilgili pencerelerin yerleşim şekli farklı olabilir.

 

Proje hazırlanırken belirtilen klasörün altında proje ile aynı ada sahip bir klasör hazırlanıyor. Buna göre her Visual C# projesi için ayrı bir klasör hazırlanmaktadır. Proje için hazırlanan klasör ve dosyaları aşağıda görebilirsiniz.

cs ders 5 resim 12 Programcılık Dersleri(C#) : 5 programlama

 

Bu ekran görüntüsünde Solution için hazırlanan klasörün içinde proje ile aynı ada sahip bir klasörün hazırlandığını görebilirsiniz. Solution birden fazla projeden meydana gelmeyecekse Solution ile projeye ait dosyaların bir arada olmasını tercih edebilirsiniz. Solution için ayrı bir klasörün hazırlanmasını istemiyorsanız New Project diyalog kutusundaki Create directory for solution onay kutusunu pasif duruma getirmelisiniz.

 

Projeye ait klasöre kaydedilen “Form1.cs” uzantılı dosya projedeki formu temsil etmektedir. Formların görsel yapısı ile ilgili bilgiler Designer.cs dosyalarında tutulurken “resx” uzantılı dosyalarda ise formla ilgili kaynaklar(resource) tutulmaktadır. Visual Studio tarafından hazırlanan C# projesi dosyalarına “csproj” uzantısı verilmektedir. Visual Studio ile proje hazırladığınızda aynı zamanda bir Solution hazırlanır ve Solution’a ait bilgiler “sln” dosyalarında saklanmaktadır.

 

Yukarıda örnek olması için hazırladığım C# projesine “Proje1″ adını verdim. Bu proje adını yerli programcılık kitabı yazarları daha önceden kendi adlarına register etmiş olabilir. Bu nedenle kendinizi riske etmeyip Proje1 yerine projelere argo veya gavurca adlar vermeniz önerilir. Örneğin Proje1 yerine “Project1” veya “En_baba_proje” qibi adları tercih edebilirsiniz.

 

Solution Explorer Penceresi


Üzerinde çalıştığınız projeye hangi formların ve dosyaların dahil edilmiş olduğunu görmek istiyorsanız Visual Studio’nun Solution Explorer penceresine bakabilirsiniz. Solution Explorer penceresinde bir bakıma projeye ait klasörün içeriği görüntülenmektedir. Solution Explorer penceresinin başlık çubuğunu çift tıklayıp bağımsız pencere olmasını sağlayabilirsiniz. Aşağıda verilen ekran görüntüsünü proje için 2. bir form hazırladıktan sonra aldım. Projeye 2. bir form dahil etmek demek gerçekte .NET Framework ile gelen Form sınıfının mirasçısı 2. bir sınıf hazırlamak demektir. Tıpkı Form1 sınıfında olduğu gibi Form2 sınıfının bir yarısı Form2.cs dosyasında, diğer yarısı ise Form2.Designer.cs dosyasında yer almaktadır.

cs ders 5 resim 13 Programcılık Dersleri(C#) : 5 programlama
 

Solution ve proje hakkında bilgi içeren bu pencereyi View menüsünden komut vererek veya Standard araç çubuğundaki ilgili düğmeyi tıklayarak ekrana getirebilirsiniz. Bu ekran görüntüsünü aldığım sırada “Proje1” adını verdiğim projede Form1 ve Form2 adında 2 form vardı. Visual Studio ile hazırlanan projelerde her form için ikisi CS uzantılı 3 dosya hazırlanmaktadır.

 

Windows Forms Application şablonu ile hazırlanan projenin kaydedildiği klasöre bakıldığında Bin ve Obj adında 2 klasörün hazırlandığı görülür. Visual Studio başlangıçta bu 2 klasörü Solution Explorer penceresinde listelemiyor. Üzerinde çalıştığınız proje ile ilgili bütün dosya ve klasörlerin listelenmesini istiyorsanız Solution Explorer penceresindeki Show All Files düğmesini tıklamanız gerekir. Bu düğmenin işlevini aşağıda görebilirsiniz.

cs ders 5 resim 14 Programcılık Dersleri(C#) : 5 programlama

C# projesine dahil edilmiş referansları görmek istiyorsanız Solution Explorer penceresinde References seçeneğini tıklamalısınız. Visual Studio 2008 ile hazırlanan C# projelerine 8 referans otomatik olarak dahil edilmektedir. Ek bir işlem yapmaya gerek kalmadan bu referanslarda bulunan namespace’lerdeki sınıfları kullanabilirsiniz. DLL dosyaları veya buradaki adıyla referanslar doğaları gereği gerek duyulduğunda belleğe yüklenirler.

cs ders 5 resim 15 Programcılık Dersleri(C#) : 5 programlama

.NET Framework ile gelen veya kendi hazırladığınız referanslardan birisindeki sınıflardan yararlanacaksanız References seçeneğine ait kısayol menüsünden Add Reference komutunu vermelisiniz. Her ne kadar burada referans eklemeden söz edilse bile eklenen herhangi bir şey yoktur. Yapılan şudur: Yararlanılmak istenen referanslar hakkında Visual Studio bilgilendirilmektedir. Yoksa referanslar yani DLL dosyaları ilgili klasörde durmaktadır.


cs ders 5 resim 16 Programcılık Dersleri(C#) : 5 programlama

 

Bu komutu verirseniz ekrana Add Reference diyalog kutusu gelir. Projede kullanmak istediğiniz bileşen veya referansı seçip OK düğmesini tıklamanız yeterlidir. 

 

cs ders 5 resim 17 Programcılık Dersleri(C#) : 5 programlama

 

Bu pencerede .NET sekmesinde listelenen her seçenek veya referans gerçekte .NET Framework ile gelen birer DLL dosyasıdır. Kendiniz Visual Studio ile gelen Class Library şablonu ile kolayca DLL dosyaları hazırlayıp .NET Framework ile gelenlerde oluğu gibi bu DLL dosyalarından yararlanabilirsiniz.

 

Form Designer ve Code Editor Pencereleri

 

Şimdiye kadar verilen ekran görüntülerinden tespit olabileceğiniz gibi yeni bir proje hazırlandığınızda projeye otomatik olarak dahil edilen formun görsel yapısı Visual Studio penceresinin Form Designer adı verilen orta kısımda görüntülenmektedir. Aşağıda verdiğim ekran görüntüsünü aldığım sırada projedeki ilk formun görsel yapısı görüntüleniyordu.

cs ders 5 resim 18 Programcılık Dersleri(C#) : 5 programlama

Açık olan her form veya kod dosyası için Windows Form Designer penceresinin üst kısmında bir sekme hazırlanmaktadır. Bu sırada Solution Explorer penceresinde Form2.cs’nin üzerinde çift tıklama yaparsanız bu kod dosyası dahilinde hazırlanan Class’ın yani Form2’nin görsel yapısı görüntülenir. Açık olan formlardan birisine ait kodları görmek istiyorsanız o formu seçip View menüsünden Code komutunu vermelisiniz.

 

Form2 aktif form iken View menüsünden Code komutu verilirse bu formu oluşturan kodlar görüntülenir. Aşağıda verilen ekran görüntüsünü almadan önce Solution Explorer ve Properties pencerelerini gizledim. Bu kodu yakından incelediğinizde “Form2” adında ve .NET Framework ile gelen Form sınıfının mirasçısı bir Class’ın hazırlandığını görürsünüz.

cs ders 5 resim 19 Programcılık Dersleri(C#) : 5 programlama

 

Projedeki 2. formu temsil eden Form2 sınıfına ait kodların bir kısmı bu dosyada iken diğer yarısı “Form2.Designer.cs” dosyasında bulunmaktadır. Projedeki mevcut kod dosyalarını açmak için Solution Explorer penceresine başvurmak yerine File menüsünden Open-File komutunu verebilirsiniz.

 

Kod yapısı görüntülenen formun görsel yapısını görmek istiyorsanız View menüsünden Designer komutunu vermelisiniz. Projedeki formlara ait kodları veya görsel yapılarını görüntülerken Solution Explorer penceresinden yararlanabilirsiniz. Söz konusu forma ait kısayol menüsünden View Designer komutunu verirseniz formun görsel yapısı, View Code komutunu verirseniz forma ait kodlar görüntülenir.

 

ToolBox Penceresi

Visual Studio bilgisayara kurulup başlatıldığında ekrana getirilen bir diğer pencere Toolbox penceresidir. Toolbox’ta formların üzerine yerleştirebileceğiniz kontroller yani .NET Framework ile gelen hazır sınıflar listelenmektedir. Visual Studio penceresinin sol tarafında Toolbox’tan başka ayrıca Server Explorer penceresini temsil eden bir düğme bulunmaktadır.

Bu ekran görüntüsünü aldığım sırada Server Explorer penceresi açık olmasına rağmen gizlenmişti. Bu pencereden veritabanı işlemleri yapılırken yararlanılmaktadır. Bu derslerde veritabanı işlemlerinden söz edilmediği için Server Explorer penceresini kapattım.

cs ders 5 resim 20 Programcılık Dersleri(C#) : 5 programlama
 

Toolbox’ın otomatik gizlenme özelliğini iptal etmek istiyorsanız Auto Hide düğmesini tıklamalısınız. Auto Hide özelliği devrede değilken Toolbox penceresinin başlık çubuğunda çift tıklama yapıp bağımsız pencere olmasını sağlayabilirsiniz.

 

cs ders 5 resim 21 Programcılık Dersleri(C#) : 5 programlama

 

.NET Framework ile birlikte Toolbox’ta birer düğme ile temsil edilenlerden çok daha fazla kontrol verilmektedir. Üzerinde çalıştığınız forma yerleştirmek istediğiniz kontrol Toolbox’ta yer almıyorsa Tools menüsünden Choose Toolbox Items veya Toolbox’a ait kısayol menüsünden Choose Items komutunu verebilirsiniz.

 

Örneğin SQL Server veya Access veritabanlarına bağlanırken kullanılan SqlConnection ve OleDbConnection kontrolleri başlangıçta Toolbox’ta yer almıyor. Bu kontrollere gerek duyanların Toolbox’a ait kısayol menüsünden komut verip ekrana gelen Choose Toolbox Items diyalog kutusunda ayarlama yapmaları gerekir.

cs ders 5 resim 22 Programcılık Dersleri(C#) : 5 programlama
 

Toolbox’ta listelenen kontrollerin birisini seçip forma yerleştirmek demek gerçekte söz konusu kontrolün yani Class’ın örneğini almak olarak düşünmek gerek. Forma yerleştirilen kontrol söz konusu Class’ın yani formun bir üyesi olur. Tabii Button veya TextBox gibi sınıfların örneklerini alırken yani nesne hazırlarken Visual Studio’dan yararlanmak yerine bu işlemi kod yazarak yapabilirsiniz.

 

Form ve Kod Pencerelerinin Organizasyonu

 

Şimdiye kadar verilen ekran görüntülerinden tespit etmiş olabileceğiniz Properties, Toolbox, Solution Explorer ve Server Explorer gibi pencerelerin dışında açık olan her form için Visual Studio penceresinin orta kısmında bir sekme hazırlanmaktadır. Programcı açık olan hangi formla ilgileniyorsa o formu temsil eden sekmeyi tıklar. Aşağıda verilen ekran görüntüsünü aldığım sırada açık durumda olan 3 form vardı ve Form2’nin görsel yapısı görüntüleniyordu.

cs ders 5 resim 23 Programcılık Dersleri(C#) : 5 programlama

Programcı bu sırada Form1 veya Form2’ye ait sekmeyi tıklayıp bu formları görüntüleyebilir. Başka bir deyişle bu şartlarda form pencerelerini simge durumuna küçültmek mümkün değildir. Açık olan her formun ayrı bir pencereye sahip olmasını istiyorsanız Tools menüsündeki Options komutu ile ekrana getirilen diyalog kutusunda ayarlama yapmalısınız.

 

cs ders 5 resim 24 Programcılık Dersleri(C#) : 5 programlama

Options diyalog kutusunda General adı altında gruplanan seçeneklerden Multiple documents radyo düğmesini seçerseniz açık olan her form ayrı bir pencereye sahip olur ve bu pencereleri simge durumuna küçültebilirsiniz. Aşağıda verilen ekran görüntüsünü “Multiple documents” radyo düğmesini seçtikten sonra aldım.

 

cs ders 5 resim 25 Programcılık Dersleri(C#) : 5 programlama

 

Bu ekran görüntüsünü aldığım sırada 3 form açıktı. Bu pencerelerinin boyutlarını ve Visual Studio penceresi içindeki konumlarını istediğiniz gibi ayarlayabilirsiniz. Bu metni kaleme alırken ekran görüntülerini istediğim gibi ayarlayabilmek için Options diyalog kutusunda Multiple documents radyo düğmesini seçip formların bağımsız pencere olmalarını sağladım.

 

Projelerinin Bileşenleri


Visual Studio ile geliştirilen uygulamalara Solution adı verilmekte ve Solution’larda projeler bulunmaktadır. Üzerinde çalıştığınız Solution hakkında bilgi edinmek istiyorsanız Solution Explorer penceresine bakabilirsiniz. Madem C# uygulamalarını geliştirirken Visual Studio veya Express Edition kullanıyoruz Visual Studio’nun hazırladığı projeler hakkında bilgi edinmek gerekir.

Visual Studio ile hazırlanan C# projelerinde formlardan ve formları temsil eden kod dosyalarından başka “Program.cs” adında bir kod dosyası bulunmaktadır. Visual Studio veya Express Edition ile hazırlanan C# projeleri çalışmaya bu dosyadan başlamaktadır. Çünkü C# projelerinin başlangıç noktası olan Main() metodu bu kod dosyasında bulunmaktadır. “Program.cs” dosyası Visual Studio 2003’te yoktu. Bu dosyanın en önemli işlevi Main() metodunu içermesidir. Main() metodunu alıp başka bir kod dosyasına yerleştirirseniz “Program.cs” dosyasına gerek kalmaz. Madem Visual Studio kullanıyoruz bence Program.cs dosyasını aynı şekilde bırakmakta fayda vardır.

cs ders 5 resim 26 Programcılık Dersleri(C#) : 5 programlama
 

C# projeleri Main() metoduna sahip olmak zorundadır. Çünkü C# projeleri tıpkı C ve C++ projelerinde olduğu gibi Main() metodundan itibaren çalışmaya başlarlar. Ayrıca Main() metodu public ve static olma­lıdır. Bu örnekte Main() metodu geriye bir değer göndermediği için void olduğu işaret edildi.

 

C# projelerinin ikinci önemli bileşenleri formlar ve formlarla ilgili kod dosyalarıdır. Visual Studio, projelere dahil edilen her form için 3 ayrı dosya hazırlamaktadır. Asıl kod dosyaları yani programcının yazdığı kodlar form ile aynı ada sahip CS uzantılı dosyada saklanmaktadır. Formun görsel yapısı ile ilgili bilgiler ise “Designer.cs” dosyasında tutulmaktadır. Designer.cs dosyasının içeriği genellikle Visual Studio tarafından oluşturulduğu için programcılar pek ilgilenmezler.

cs ders 5 resim 27 Programcılık Dersleri(C#) : 5 programlama

 

Visual Studio, formlara ait Designer.cs dosyasındaki kodları bir bakıma tasarım anında yorumlayıp söz konusu form çalışma anında ekrana geldiğinde nasıl bir görünüme sahip olacağı konusunda programcıyı önceden yani tasarım anında bilgilendirmektedir.

 

Formun üzerine nesne yerleştirilmesi veya formun özelliklerinde değişiklik yapılması halinde Visual Studio tarafından geri planda “Designer.cs” dosyasında değişiklik yapılır. Başka bir deyişle formların ve formalara yerleştirilen nesnelerin görsel özellikleriyle ilgili satırlar “FormAdı.Designer.cs” dosyasında bulunmaktadır. Tabii bu C# derleyicisi için şart değildir. Çünkü bu ayrım Visual Studio’nun tercihidir.

 

Projelerdeki her form için “cs”” ve “resx” uzantılı 3 dosya hazırlanmaktadır. Not Defteri ile CS uzantılı dosyaları açıp inceleyebilir veya değiştirebilirsiniz. Aşağıda verilen ekran görüntüsünü Form1’e ait CS dosyasını Not Defteri ile açtıktan sonra aldım.

cs ders 5 resim 28 Programcılık Dersleri(C#) : 5 programlama
 

Form nesnelerini veya .NET Framework ile gelen Form sınıfının mirasçısı sınıfları kendiniz kod yazarak hazırlayabilirsiniz ancak bu durumda Visual Studio penceresi içinde tasarım anında formları görsel yapısının görüntülenmesinde sorunlar yaşanır.

 

C# projeleri hard diske “csproj” uzantısı ile kaydedilmektedir. “csproj” uzantılı proje dosyalarında projedeki form ve class’lar hakkında bilgi bulunmaktadır. “csproj” uzantılı dosyanın içeriğine bakıp projede kaç form ve class’ın olduğunu öğrenebilirsiniz.

cs ders 5 resim 29 Programcılık Dersleri(C#) : 5 programlama

 İleri ki sayfalarda değinileceği gibi Visual Studio ile yeni bir proje hazırlandığı zaman ayrıca “sln” uzantılı bir Solution dosyası hazırlanıyor. Visual Studio ile hazırlanan C# projelerinde yukarıda sözü edilen dosyalara ek olarak Properties adı altında gruplanan 5 dosya daha bulunmaktadır. Bu 5 dosya sayesinde projenin özellikleri ayarlanmaktadır. Örneğin uygulama dahilinde kullanılan resim dosyaları Resources.resx dosyasına dahil edilebilmektedir. Bu 5 dosya projeye ait klasörün içinde Properties klasöründe saklanmaktadır.


cs ders 5 resim 30 Programcılık Dersleri(C#) : 5 programlama

 

Üzerinde çalıştığınız projenin başka bilgisayarlarda kullanılmak veya çalıştırılmak üzere alınan/götürülen dosyaların hepsine birden Assembly denilmektedir. Assembly tek exe dosyadan meydana gelebileceği gibi çok sayıda resim, text vb. dosyasından da oluşabilir. Assembly hakkındaki bilgiler Properties klasöründe tutulan AssemblyInfo.cs dosyasında tutulmaktadır. Bu dosyanın içeriği Project Properties penceresinden ulaşılan Assembly Information diyalog kutusunda yapılan ayarlardan etkilenmektedir. Bana sorarsanız henüz yolun başında olanların Assembly nedir ne işe yarar gibi sorularla ilgilenmelerine gerek yoktur.

 

Yukarıdaki sayfalarda ekran görüntüsü verilen New Project diyalog kutusunda değişik amaçlar için kullanabileceğiniz çok sayıda şablon listelenmektedir. Bu kitapta bu şablonların birkaçından söz edilecektir. Örneğin Empty Project şablonu herhangi bir forma ve “Program.cs” dosyasına sahip olmayan bir proje hazırlamaktadır.

 

Visual Studio veya Express Edition ile hazırlanan projeler hakkında bilgi sahibi olmanız için New Project diyalog kutusunu ekrana getirip Empty Project şablonu ile bir proje hazırlayıp kaydettim. Aşağıda verilen ekran görüntüsünden tespit edeceğiniz gibi Solution Explorer penceresinde herhangi bir klasör veya dosya listelenmiyor.

 

cs ders 5 resim 31 Programcılık Dersleri(C#) : 5 programlama
 

Bu şartlarda projenin kaydedildiği klasöre bakacak olursanız sadece solution ve proje dosyalarının hazırlandığını görebilirsiniz. Daha sonra bu proje için Main() metodunu içeren “Program.cs” dosyasını ve başlangıç formunu hazırlayabilirsiniz.

 

Solution Hazırlamak

 

Yukarıdaki sayfalarda Solution Explorer penceresiyle ilgili olarak verilen bazı ekran görüntülerinde Solution varken bazılarında yoktu. Üzerinde çalıştığınız Solution tek projeden meydana geliyorsa Solution Explorer penceresinde Solution adının yer almasına gerek duymayabilirsiniz. Bu durumda Tools menüsündeki Options komutu ile ekrana getirilen diyalog kutusunda Project and Solutions seçenek grubunda ayarlama yapmalısınız. Bu diyalog kutusunda Always show solution onay kutusunu pasif duruma getirirseniz Solution Explorer penceresinde Solution adı listelenmez.

cs ders 5 resim 32 Programcılık Dersleri(C#) : 5 programlama

Yukarıda belirtildiği gibi Visual Studio ile yeni bir proje hazırladığınızda ayrıca bir Solution hazırlanmaktadır. Bu konuda adım adım bilgi vermek için Visual Studio’nun File menüsünden komut verip New Project diyalog kutusunu ekrana getirdim.

 

cs ders 5 resim 33 Programcılık Dersleri(C#) : 5 programlama

Visual Studio, projeye verilen adı aynı zamanda Solution adı olarak kullanmaktadır. Karışıklık olmasın diye proje adı ile Solution adının farklı olmasını sağladım. Bu şartlarda OK düğmesi tıklanırsa kullandığım bilgisayardaki “C:\Projeler” klasöründe “Solution1” adında bir klasör hazırlanıp solution’a ait SLN uzantılı dosya bu klasöre konulur. Ayrıca bu klasörün içinde proje için “WindowsApplication1” adında bir klasör hazırlanıp projeye ait dosya ve diğer klasörler bu klasörün içine konulur.

 

Bildiğiniz gibi New Project diyalog kutusundaki Create directory for solution onay kutusu seçili değilken solution için ayrı bir klasör hazırlanmayıp proje ve solution dosyaları bir arada tutulmaktadır. Tekrar etmek gerekirse Visual Studio ile bir C# projesi hazırladığınızda otomatik olarak SLN uzantılı bir solution dosyası hazırlanmaktadır. Solution’lar projeleri gruplamaya yaradıkları için geliş­tirdiğiniz uygulama birden fazla projeden meydana gelmeyecekse SLN uzantılı Solution dosyasını unutabilirsiniz.

cs ders 5 resim 34 Programcılık Dersleri(C#) : 5 programlama

Otomatik olarak hazırlanan Solution’u görmek istiyorsanız Solution Explorer penceresine bakabilirsiniz. Birden fazla proje söz konusu olmadığı sürece otomatik olarak hazırlanan Solution işlevsel değildir. Başka bir deyişle aynı anda birden fazla projeyi açmayı düşünmüyorsanız Solution’larla ilgilenmenize gerek yoktur.

 

Visual Studio tarafından hazırlanan Solution’a ait kısayol menüsündeki New Project komutu ile yeni bir projeyi veya Existing Project komutu ile mevcut projeler­den birisini Solution’a dahil edebilirsiniz. Kısayol menüsünden New Project komutunu verirseniz ekrana Add New Project diyalog kutusu gelir.

 

Tahmin edebileceğiniz gibi Solution’larda .Net destekli ve Microsoft ürünü herhangi bir program­lama dili ile hazırlanmış başka projeler olabilmektedir. Konumuz C# olduğu için Project Types kutusunda Visual C# Projects ve Templates liste kutusunda ise Windows Application’i seçip OK düğmesini tıklayınca Solution Explorer penceresi aşağıda verilen şekle dönüştü.

cs ders 5 resim 35 Programcılık Dersleri(C#) : 5 programlama

Solution’da birden fazla proje varken bu projelerden birisi aktif projedir. Aktif projenin adı Solution Explorer penceresinde kalın olarak yazılmaktadır. Yanda verilen ekran görüntü­sünü aldığım sırada “WindowsApplication1” adlı proje aktifti. Diğer projeyi aktif proje yapmak istiyorsanız o projeye ait kısayol menüsünden Set as StartUp Project komutunu vermelisiniz. Solution’daki projelerden birisini çıkarmak istiyorsanız o projeye ait kısayol menüsünden Remove komutunu verebilirsiniz.

 

Yukarıda otomatik olarak hazırlanan Solution’a sonradan 2. bir projeyi dahil ettim. Ancak işe boş bir Solution hazırlamakla başlayabilirsiniz. İçeriği boş solution hazırlamak istiyorsanız New Project diyalog kutusundaki Blank Solution şablonundan yararlanabilirsiniz.

 

Herhangi bir proje içermeyen yeni bir Solution hazırlamak için Project Types liste kutusunda Visual Studio Solutions ve Templates kutusunda ise Blank Solution şablonunu seçip solution için klasör seçip OK düğmesini tıklarsanız aşağıdaki gibi Visual Studio penceresi ile karşılaşırsınız. Bu sırada Solution’a dahil edilmiş olan herhangi bir proje olmadığı için Solution Explorer penceresinde yalnızca Solution adı listelenir.

cs ders 5 resim 36 Programcılık Dersleri(C#) : 5 programlama

 

Bu sırada mevcut projelerden birisini Solution’a dahil edebilir veya Solution için yeni bir proje hazırlayabilirsiniz. Bu işlemler için Solution Explorer penceresinde Solution’a ait kısayol menüsünden New Project veya Existing Project komutlarından birisini verebilirsiniz. Herhangi bir zamanda SLN uzantılı Solution dosyasını açmanız halinde Solution’a dahil edilmiş olan bütün projeler açılır.

 

Projeleri Çalıştırmak Ve Derlemek


Şimdi sırada yukarıdaki sayfalarda anlatılan şekilde hazırlanan projeleri çalıştırmak, test etmek ve derlemek var. Bu düşünce ile New Project diyalog kutusunu ekrana getirip Windows Forms Application şablonu ile “Proje1” adında bir proje hazırlayıp bu projeyi “C:” sürücüsünde “\Proje1” klasörüne kaydettim. Projeyi kaydettiğim klasörü özellikle işaret ettim. Çünkü proje çalıştırıldığında veya derlendiğinde geri planda Visual Studio tarafından hazırlanan dosyalardan söz etmek istiyorum.

Ayrıca New Project diyalog kutusunda Create directory for solution onay kutusu pasif duruma getirip proje hazırlanırken otomatik olarak hazırlanan Solution’la ilgili dosyanın ayrı bir klasöre konulmasını engelledim. Program geliştirme aracı yani IDE olarak Visual Studio yerine C# için hazırlanmış Express Edition’ı kullananlar için şunu söylemek isterim: Projeleri çalıştırmak bağlamında Visual Studio ile Express Edition birbirinden pek farklı değildir.

Şimdi hazırladığım projede herhangi bir değişiklik yapmadan, başlangıç formuna kontrol yerleştirmeden ve başka bir Class hazırlamadan çalıştıracağım. Projeleri çalıştırmak, başka bir deyişle projeyi test edip hata içerip içermediğini kontrol etmek için genellikle Debug menüsündeki Start Debugging komutu kullanılmaktadır. Genellikle dedim; çünkü projeleri çalıştırmanın başka yöntemleri de vardır.

cs ders 5 resim 37 Programcılık Dersleri(C#) : 5 programlama

Çalışır durumdaki projeye ait ilk formu Kapat düğmesi ile kapatıp projenin çalışmasını sona erdirip tasarım moduna geçebilirsiniz. Projenin çalışmasını sona erdirip Design moduna geçilirse Visual Studio’nun Toolbox ve Properties gibi pencereler tekrar görüntülenir.

Visual Studio ile hazırlanan C# projeleri Debug menüsünden komut verilerek çalıştırıldıkları, başka bir deyişle test edildikleri zaman Visual Studio tarafından otomatik olarak EXE dosya hazırlanmaktadır. Proje çalıştırıldığında hazırlanan EXE dosyanın yerini aşağıda görebilirsiniz. Bu EXE dosya ancak proje hazırlanırken tercih edilen .NET Framework sürümünün(2.0, 3.0 veya 3.5) kurulu olduğu bilgisayarda çalışabilir. Aşağıda ekran görüntüsü verilen dosya listesindeki “pdb” uzantılı dosyaya dikkatinizi çekmek istiyorum. Kodun debug edilmesi yani hatalardan ayıklanması işlemiyle ilgili bilgiler bu dosyaya yazılmaktadır. Tabii bu bölümde hata ayıklama işlemleri üzerinde durmayacağımız için “pdb” uzantılı dosyanın işlevinden söz edilmeyecektir.

cs ders 5 resim 38 Programcılık Dersleri(C#) : 5 programlama

Yukarıda söylendiği gibi Visual Studio ile hazırladığınız C# projesini çalıştırıp test etmek için Debug menüsünden Start Debugging komutunu verebilir veya direk F5 tuşuna basabilirsiniz. Aslında Debug menüsünden bu komutu vermekle Visual Studio’ya bir bakıma “hazırladığım projeyi entegre hata ayıklayıcının nezaretinde test etmek istiyorum ve varsa hatalarından ayıklamak istiyorum” demiş oluyorsunuz. Üzerinde çalıştığınız projeyi Ctrl+F5 tuşları ile çalıştırırsanız projeyi entegre Debugger’dan bağımsız çalıştırmış olursu­nuz.

 

En başında belirtmek gerekir ki Start Debugging komutu verildiği zaman proje için otomatik olarak hazırlanan EXE dosya başkalarına verilecek, başla bir deyişle projeden yararlanacaklara verilecek EXE kopya değildir. Elbette Start Debugging komutu sayesinde otomatik olarak hazırlanıp projeye ait klasörün içinde yer alan “\Bin\Debug” klasörüne yerleştirilen EXE dosyayı alıp başka bilgisayarda çalıştırmak mümkündür. Ancak debug modunda iken hazırlanan EXE dosyanın dağıtılması önerilmiyor.

 

Şimdi gelelim şu Debug moduna. Programcılar genelde uygulamalarını geliştirmeyi ve test etmeyi Debug modunda yaparlar. Ne zaman ki uygulama tamamlanıp testlerden geçer o zaman Release sürümü hazırlayıp kullanıcılara öyle verirler. Yukarıdaki sayfalarda işaret edildiği gibi Visual Studio ile yeni C# projesi hazırlanıp kaydedildiği zaman projeye ait klasörün içinde “Bin” ve “Obj” adında 2 klasör hazırlanmaktadır.

 

Derleme sırasında hazırlanan geçici dosyalar “Obj” klasörüne konulmaktadır. Obj klasörünün altında “Debug” ve “Release” adında 2 klasör hazırlanmaktadır. Aynı şekilde “Bin” klasörünün içinde yine “Debug” ve “Release” adında 2 klasör hazırlanmaktadır. Uygulamanın Debug sürümü Bin klasörünün içinde bulunan \Bin\Debug klasörüne konulurken Release sürümü \Bin\Release klasörüne yerleştirilmektedir.

 

Yukarıda belirtildiği gibi Visual Studio ile bir Windows Forms Application hazırlayıp bu uygulamayı kaydedip sonrada Debug menüsünden Start Debugging komutunu verdiğinizde Visual Studio söz konusu uygulamayı önce derlemektedir. Tabi Visual Studio bu işlemi yaparken .NET Framework ile gelen C# derleyicisini kullanmaktadır. Derleme işlemi sırasında hazırlanan dosyalar \uygulama\obj\Debug klasörüne yerleştirilmektedir.

cs ders 5 resim 39 Programcılık Dersleri(C#) : 5 programlama

Start Debugging komutu verildiği zaman Visual Studio derleme yapıp bu dosyaları hazırladıktan sonra ayrıca “uygulama\Bin\Debug” klasörüne kodun EXE’sini ve birkaç dosya daha yerleştirilip bu EXE dosya çalıştırılmaktadır.

Hazırladığınız proje veya Solution’ı çalıştırıp test etmek yerine derlemek istiyorsanız Build menüsündeki komutlardan yararlanmanız gerekir. Build menüsünde gerçekte aşağıda verilen ekran görüntüsündekinden daha fazla komut bulunmaktadır. Başlangıçta Solution’ların derlemesiyle ilgili komutlar Build menüsünde yer almıyor. Eğer birden fazla projeyi bir Solution’da topluyorsanız Tools menüsünden komut verip ekrana Options diyalog kutusunu getirip Project And Solutions sekmesinde ayarlama yapabilirsiniz.

cs ders 5 resim 40 Programcılık Dersleri(C#) : 5 programlama

Bu menüdeki komutların adlarına üzerinde çalışılan projenin adı eklenmektedir. Bu sırada üzerinde çalıştığım projenin Proje1’di. Üzerinde çalıştığınız projeyi derlemek üzere Build menüsünden Build komutunu verirseniz Visual Studio projenizi derler. Derleme sırasında önce Uygulama adı\obj\Debug klasörüne bazı dosyalar yerleştirilir.

Derleme işleminin ikinci aşamasında birisi EXE olmak üzere birkaç dosya hazırlanıp “Uygulama adı\Bin\Debug” klasörüne yerleştirilir. EXE dosyayı çift tıklayıp veya Başlat menüsünden Çalıştır komutunu verip projenizi çalıştırabilirsiniz. Tabii profesyonel programcılar projeleri için kurma CD’si hazırlayıp uygulamalarını öyle dağıtırlar. Kurma CD’sini Visual Studio ile gelen Setup Wizard’dan yararlanarak hazırlayabilirsiniz.

Derleme sonucu hazırlanıp “\Obj\Debug” ve “\Bin\Debug” klasörlerine yerleştirilen dosyaları silmek istiyorsanız Build menüsünden Clean komutunu vermelisiniz. Daha önce derlediğiniz projeyi Build komutu ile tekrar derlediğinizde projenin yalnızca değişen kısımları gözetilir. Rebuild komutu ise projeyi sanki ilk kez derleniyormuş gibi yeni baştan derler.

Debug modundan Release moduna geçmek istiyorsanız Visual Studio’nun Debug menüsünden komut verip Cunfiguration Manager diyalog kutusunu ekrana getirmelisiniz. Başlangıçta bu komut Debug menüsünde yer almıyor ve bu nedenle Tools menü­sündeki Options komutu ile ekrana getirilen diyalog kutusunda ayarlama yapmak gerekmektedir.

cs ders 5 resim 41 Programcılık Dersleri(C#) : 5 programlama

Options diyalog kutusunda Project and Solution seçenek grubundaki Show advanced build configurations onay kutusunu seçmelisiniz. Bu ayarlamayı yapıp Debug menüsünde Cunfiguration Manager komutunun yer almasını sağlayıp bu komutu verdiğinizde akrana aşağıda verilen diyalog kutusu gelir.

cs ders 5 resim 42 Programcılık Dersleri(C#) : 5 programlama

Bu ekran görüntüsünü aldığım sırada üzerinde çalıştığım projenin dahil olduğu Solution bir tek projeye sahipti. Bu sırada Solution’da birden fazla proje olsaydı bu projeler de listelenirdi. Bu diyalog kutusundaki Active Solution configuration ve Active solution platform liste kutularında yapılan seçimlerden bütün projeler etkilenmektedir.

Active Solution configuration
liste kutusunu açıp Release’i seçerseniz Debug modundan Release moduna geçmiş olursunuz. Bu andan itibaren Debug menüsünden Start Debugging komutunu verip projeyi çalıştırırsanız EXE kodun Release sürümü hazırlanır ve bu EXE dosya “\Bin\Release” klasörüne yerleştirilir. Bu sırada yani Release modunda iken Build menüsünden Clean… komutunu verirseniz “\Obj\Release” ve “\Bin\Release” klasörlerine yerleştirilmiş dosyalar silinir.

Debug modunda iken Build menüsünden Build… veya Rebuild… komutu verilerek derleme yapıldığında derleme sonucu hazırlanan dosyalar yine “\Obj\Release” ve “\Bin\Release” klasörlerine yerleştirilmektedir. Hangi modda olduğunuzu öğrenirken Project Properties penceresinden yararlanabilirsiniz.

cs ders 5 resim 43 Programcılık Dersleri(C#) : 5 programlama

 Bu dersi baştan sonra inceleyenlerin tespit etmiş olabileceği gibi bazı küçük ayrıntılar hariç burada anlatılan işlemlerin hemen hepsini başka kaynaklarda bulmak mümkündür. Hatta daha önce eski Visual Basic ve Delphi IDE’sini az çok kullanmış olanların kaynak karıştırmalarına bile gerek kalmadan bu metinde anlatılanları kendilerinin zaten biliyor olmaları uzak bir ihtimal değildir. Buna rağmen yarın bir gün sırf bu metni kaleme aldım diye yargılanmamak, sanık pozisyonunda hakim karşısına çıkmamak için ek açıklama yapma gereğini duyuyorum: Ey yetkililer, ey yerli programcılık kitabı yazarları; 1994 yılından bu yana Microsoft’un IDE’lerini kullanan programlama dilleri üzerine çok sayıda kitap yazmış birisi olarak yukarıdaki sayfalarda yazdıklarımı gidip bozuk cümlelerle dolu yerli programcılık kitaplarından öğrenmemin bir mantığı var mıdır? Yani yukarıda verilen bilgilerin daha önce yayınlana bazı programcılık kitaplarında yer alıyor olması bence Visual Studio’nun suçudur. Keşke Visual Studio “at sahibine göre kişner” atasözünü kendisine rehber edip yazarına ve programcısına göre çalışsa, yazarına göre işlem yapsa…

 

 

 

Arama Terimleri:

görsel programlamada kod kısımlarını yazmak, c# projeleri, c program, c# aynı solution birden fazla proje, c# örnek programlar, c# görsel projeler, visual basic 2010 yapılmış hazır programlar, visual c# dersleri, visual c# resim arama, visual studio 2010 örnek programlar

Yazar - 23 Mart 2009. Kategori PROGRAMLAMA. Bu yazıya yazılan yazıları RSS üzerinden takip edebilirsiniz RSS 2.0. Yorum yazabilir veya geri izlemede bulunabilirsiniz.

2 için yapılam toplam yorum - Programcılık Dersleri(C#) : 5

  1. çok başarılı.

  2. vallaha helal olsun bundan daha iyisi olamazdı. harika bir makale

Yorum Yap