Bilgisayara Giriş - Akademik Personel Bilgi Bankası

advertisement
2009
2010
Bilgisayara Giriş
20092010 Güz – Bahar Öğretim Yılı
Ders Notları
Arzu Erdem
Kaynaklar:
1. Yazılım Uzmanı 1, Selçuk Tüzel
2. Yazılım Profesyoneli 2, Fulya
SATAR . Engin ÖREN
3. Herkes için Visual Basic 2005, Jeff
Kent
4. Microsoft
Visual
Basic.Net
Başlangıç Rehberi, İhsan Karagülle
5. Visual Basic.Net 2003, Y.İnan,
N.Demirli
Arzu Erdem
Kocaeli Üniversitesi
2009 2010
Bölüm 1. KURULUM ve GİRİŞ
Bu kısımda Microsoft Visual Studio.NET 2003 programının nasıl kurulacağını ve kurulum
sırasında nelere dikkat edileceğini adım adım inceleyeceğiz.
Lisanslı olarak aldığınız Microsoft Visual Studio. NET 2003 programı altı CD'den
oluşmaktadır. Bunlardan iki tanesi program kurulumunu içeren CD'lerdir. Eğer
bilgisayarınızFramework yapısına uygun değilse, bunu ayarlayacak bir adet Windows
Prerequisites CD'si vardır. Diğer üç CD ise en son istenildiği takdirde kurulacak MSDN
(yardım) CD' leridir.
Şimdi adım adım kuruluma başlayalım;
1) Bilgisayarımıza Microsoft Visual Studio.NET 2003 Dics 1'i takalım. Bunun
sonucunda eğer şekildeki ekran karşımıza gelirse, kurulum başlamadan önce
bilgisayarımızda çeşitli ayarlamalar yapılacak anlamındadır. Kuruluma devam etmek
için Visual Studio.NET Prerequisites seçeneğine tıklıyoruz.
2) Eğer
şekildeki
ekran
ile
karşılaşırsanız,
bilgisayarınızda
Web uygulamaları ve servisleri
geliştirerek bilgisayarınızı bir Web
Server olarak kullanacaksanız,
mutlaka Front
Page
Server
Extensions bileşenini kurmanız
gerekmektedir. Bunu IIS içinden
gerçekleştirebilirsiniz. Bu işlemi
nasıl
yapacağınızı
Setup
Instructions butonuna tıklayarak öğrenebilirsiniz. Kurulumu yapmak istemiyorsanız
Skip butonuna basmanız sterlidir.
KURULUM ve GİRİŞ
2009 2010
3) Yandaki görüntü karşımıza
geldiğinde
CD'ler
içinde
bulunan Windows Prerequisites
CD'sini takarak OK butonuna
basalım.
4) Bilgisayarımız için gerekli bileşenleri
yükleme analizini yapan şekildeki ekranı
görünce bir süre bekleyelim.
5) Gelen lisans ekranını okuduktan sonra,
eğer bir sorun yoksa I agree seçeneğini
işaretleyerek Continue linkine tıklayalım.
6) Gelen
listede
eksikler
belirlenmiş
durumdadır. Bunların tamamlanması
için Install Now Linkine tıklamamız
yeterlidir. Bu liste bilgisayarınızda
kurulu programların versiyonuna göre
daha kısa ve uzun olabilir.
7) Gerekli bileşenlerin yüklenmesi bittikten sonra, sağ alt köşede çıkan Done linkine
tıklayarak bu ilk kademeyi sonlandırıyoruz.
3
Programlamaya Giriş
2009 2010
8) Program kurulumu için ikinci kısım olan Visual Studio.NET seçeneğine tıklıyoruz.
9) Şekildeki ekran karşımıza çıkınca, ilk kurulum CD' sini takarak OK butonuna
basıyoruz.
10) Kurulumda gerekli dosyaların kopyalanması ve yapılandırılması için kısa bir süre
bekledikten sonra, karşımıza gelen ekranda lisans maddelerini okuyarak I agree
seçeneğini işaretliyoruz. Ardından Product Key kısmına 25 haneli kurulum anahtarını
doğru olarak girdikten sonra, Continue linkine tıklıyoruz.
4
KURULUM ve GİRİŞ
2009 2010
11) Eğer elinizdeki CD' 1er
Microsoft
Visual
Studio.NET kurulumuna
ait ise aşağıdaki ekranda
aynı anda bu yapı içinde
bulunan
Visual
Basic.NET, Visual C++
.NET, Visual C# .NET,
Visual
J#
.NET
programlarını
kurabilirsiniz.
Tüm
kurulum yaklaşık 1.5 GB
yer
kaplamaktadır.
Ancak
sadece
kullanacağınız seçenekleri kurmak istiyorsanız, diğer programların başlarında
bulunan kutuları boşaltmanız gerekmektedir. Fazla program seçimi hem Disk
üzerinde gereksiz yer kaplayacaktır, hem de kurulum süresini uzatacaktır. Eğer
başka bir Disk bölümünüz varsa ve oraya kurmak istiyorsanız Local Path kısmından
bu seçimi yapabilirsiniz. Ben, Visual C++.Net dışında tüm programları kurmaya
karar verdim ve Disk bölümü olarak E sürücüsünü seçtim. Ayrıca, eksik kurduğunuz
programları sonradan ekleyebileceğinizi unutmayın. Her şey tamamsa install Now
linkine tıklayabilirsiniz.
12) Bilgisayarınızın performansına göre kurulum süresinin ilk bölümü 15 dakika ile 45
dakika arasında sürebilir.
5
Programlamaya Giriş
2009 2010
13) Şekildeki mesaj iletisi karşımıza geldiği zaman artık ilk CD'nin görevi sonlanmış
demektir. İlk kurulum CD'sini çıkartarak yerine ikinci kurulum CD'sini takıp, OK
butonuna basarak kuruluma devam ediyoruz.
14) Evet nihayet kurulum tamamlandı. Kurulum ekranını kapatmak için Done linkine
tıklamanız yeterli olacaktır.
15) Bundan sonra devam etmek zorunda
değilsiniz. Ancak yazılım yaparken,
elinizin altında yardım kütüphanesinin
yüklü olması her zaman yararlıdır. Bunun
için şekildeki listeden
Product
Documentation seçeneğine tıklayıp, MSDN
6
KURULUM ve GİRİŞ
2009 2010
CD'lerinin ilkini takarak gelen ekran yardımları ile yardım dosyalarını yükleyelim.
MSDN'in tamamını Disk üzerine yüklemek için, ekstradan 2 GB alana ihtiyaç
olduğunu hatırlatayım.
7
Bölüm 2. Programlamaya Giriş
Bu bölümde, bir programcının bilmesi gereken temel programlama kavramlarına giriş
yapılacaktır. Bir programı oluşturan öğeler ve programın çalışma süreci tamamlanana kadar
geçirdiği aşamalar ayrı ayrı işlenecektir. Bu kavramlar programcının ve programlama
dillerinin tanımlanmasına yardımcı olacaktır.
Bu bölümün sonunda;
a prensibini açıklayabilecek,
Programlamaya Giriş
Konu 1.
2009 2010
Program Nedir?
Günümüzde bilgisayarların kullanım alanları büyük ölçüde artmıştır. Dolayısıyla işlerimizi
daha hızlı ve düzenli bir şekilde yapmamız, bilgisayarları ne kadar iyi kullandığımıza
bağlıdır. Bunun için de çeşitli amaçlara göre yazılan programları kullanırız.
Program, bilgisayarın belli bir işi yapması için tasarlanan komutların tümüdür. Kullanım
amaçları ve yerlerine göre birçok değişik program türü vardır:
programların çalışması için gerekli olan kaynakları ve ortamı sağlar.
programlardır. Klavye ile yazılan yazıların algılanması için, klavyenin sürücü programı
kullanılır.
ar. İşletim sistemi üzerinde çalışan, kullanıcıların ihtiyaç duyduğu işlevleri
sağlayan programlardır.
Bir Internet sitesini gezmek istediğimizde, Internet Explorer tarayıcısı kullanılabilir. Bu
uygulama, işletim sisteminden sitenin istenen sayfasındaki yazı ve resimleri almasını ister.
İşletim sistemi, ağ kartıyla (Ethernet) sürücü programı sayesinde Internet sitesinin
sunucusuna isteği gönderir.
9
Programlamaya Giriş
2009 2010
Programların Çalışma Modeli
Programların kullanılmasındaki amaç, girilen bilgilerin işlenip sonuçların istenen şekilde
üretilmesidir.
ıların veri girmesi ile başlar. Girilen veriler daha sonra
işlenmek üzere hafızada saklanır.
veriler kullanıcıya aktarılır.
Programlar, belli kurallar çerçevesinde yazılır. Bu yazım kuralları sayesinde bilgisayar,
programın işleyişini anlar ve gerekli sonuçları çıkartır. Yazılan programlar, belirtilen yazım
kuralları kontrol edilerek derlenir. Bu derleme işlemi sonunda, yazılan kaynak kodlar
bilgisayarın anlayacağı tek dile çevrilir. Makine dili denilen bu dil, sadece 1 ve 0
sayılarından oluşur.
Örnek: ATM makinesinden para çekmek.
1
Kullanıcı ATM makinesine kartını yerleştirir.
2
Şifresini girer.
3
ATM cihazında çalışan uygulama kartta yazan bilgileri okur.
4
Şifre kontrolü işlemi yapılır.
5
Şifre doğru girilmişse kullanıcı çekmek istediği miktarı girer.
6
Bankadaki hesap kontrol edilir.
7
Uygunsa kullanıcıya ödeme yapar.
10
Programlamaya Giriş
Konu 2.
2009 2010
Programcı Kimdir?
Programcı, belirli işlevlere sahip programlar geliştirebilen bir uzmandır. Bir programcının,
üzerinde çalıştığı platformu, kullandığı teknolojileri iyi tanıması ve bilgisayarın anlayacağı
mantıksal dilde düşünebilmesi gerekir. Programcıların çoğu genellikle aynı işi gerçekleştirse
de, üstlendikleri görevlere göre programcılar üç gruba ayrılabilir:
programın daha kolay yönetilmesi için küçük parçalara ayıran programcıdır.
amın geliştirilmesi aşamasında, hataların kaynaklarını bulan ve
geliştiricilere raporlayan programcıdır.
Konu 3.
11
Programlama Dilleri
Programlamaya Giriş
2009 2010
Dünyada konuşulan her dilin amacı iletişim sağlamaktır. Farklı kültürlerden insanların
anlaşabilmesi için ortak konuştukları bir dil gerekir. Programlama dillerinin amacı da
bilgisayar ile programcının haberleşmesidir. Programcı, bilgisayara hangi komutların
çalıştırması gerektiğini bilgisayarın anlayacağı dilden konuşarak söyler.
Bilgisayarda, programlar makine diline çevrildikten sonra çalışır. 1 ve 0 sayılarından oluşan
bu makine dili, en alt seviye dildir. Dolayısıyla programların bu dilde yazılması oldukça
zordur. Programcılar konuşma diline daha yakın, kolay anlaşılabilecek diller kullanır. Bu
dillere yüksek seviye programla dilleri denir. Programlama dillerinin seviyeleri, makine
diline yakın olup olmamaları ile ölçülür.
Bir programlama dili şu unsurlardan oluşur:
er ile konuşulur. Programlama dillerinin de
benzer bir davranışı vardır. Programlama dillerindeki bu kelimeler, programlama dilinin
anahtar kelimeleridir (komutlarıdır).
ildir.
Eğer anlamlı bir şekilde bir araya getirilemiyorsa, bu kelimeler hiçbir anlam ifade etmez.
kullanabiliriz. Ancak konuşulan kelimelerin ne için kullanıldığı da önemlidir. Bir
programlama dilinin özelliklerinin nasıl ve ne için kullanıldığı da, bu dilin semantiğidir.
Örneğin bir finans programı, Yeni Türk Lirası cinsinden bir miktarı dolara çevirecektir.
Yapılacak işlem, o andaki parite değerini merkez bankasından aldıktan sonra, girilen
miktarı bu değerle çarpıp kullanıcıya göstermektir. Kullanılan programlama dili ÇARP,
GÖSTER, EŞİTLE komutları ile bu işlemi gerçekleştirecektir.
ÇARP EŞİTLE GÖSTER miktar parite sonuç
Bu şekilde yazılan program söz dizimi açısından doğrudur. Girilen veriler ve komutlar
dışında, programlama dilinin anlamayacağı bir kelime kullanılmamıştır. Ancak komutlar
yanlış sırada kullanılmıştır. ÇARP komutu hangi sayıları çarpması gerektiğini
bilemeyecektir.
parite EŞİTLE sonuç ÇARP miktar GÖSTER parite
Komutları ve değişkenleri, programlama dilinin gramerine göre doğru yerlerde kullanmamız
gerekir. Bu şekilde kullanılan komutlar doğru bir şekilde çalışır. Fakat GÖSTER komutunun
ne için kullanıldığı yani semantiği de önemlidir. İstenilen, miktar ile pariteyi çarpmak,
sonuca eşitlemek ve sonucu göstermektir.
Sonuç EŞİTLE miktar ÇARP parite GÖSTER sonuç
Şu ana kadar 2500‟den fazla programlama dili yazılmıştır. Bunlardan bazıları Pascal, Basic,
C, C++, Java, JavaScript, Cobol, Perl, Python, Ada, Fortran, Visual Basic. NET, Microsoft
Visual C# programlama dilleridir.
12
Programlamaya Giriş
2009 2010
Yüksek seviye programlama dillerine Visual Basic. NET ve Microsoft Visual C++ dillerini
örnek verebiliriz. C ile işletim sistemi yazılabildiğinden, daha alt seviye bir dil olarak
değerlendirilir.
Programlama Dillerinin Tarihçesi
Bilgisayarlar, icat edilmeleriyle birlikte belli bir işi yapmak için bir dizi komuta ihtiyaç
duymuşlardır. En başta çok basit işlemler yapan bu komutlar, zamanla nesne yönelimlilik
(object orientation) gibi ileri seviyede özellikler kazanmıştır.
İlk programlama dilleri, bilgisayarların üzerinde bazı araçların yerlerini değiştirerek veya
yeni bileşenler eklenerek yapılıyordu. Programın işlemesi için bir devinime ihtiyaç vardı.
Eskiden programlar fiziksel olarak yazılıyordu. Daha sonra, fiziksel programlama yerini
elektrik sinyallerine bıraktı. Artık, kurulan elektronik devrelere düşük ya da yüksek
voltajda akım gönderilerek bilgisayarın davranışı belirlenmeye başlanmıştı. Yüksek voltaj 1,
düşük voltaj 0 sayılarını ifade ediyordu. Böylelikle bugün de kullanılan makine dilinin
ortaya çıkması için ilk adımlar atılmış oldu.
Ancak bu şekilde programlar yazmak, sistemi oluşturan elektronik devrelerin her program
için baştan kurulmasını gerektiriyordu. Böylelikle programlar bazı kavramlar çerçevesinde
yazılmaya başlandı. Öncelikle bilgisayar donanımı her program için baştan kurulmamalı,
bunun yerine basit bir donanımın üzerine yazılan komutlar kullanılmalıdır. Daha sonra,
programlar tek bir komutlar zinciri yerine, küçük parçalar halinde yazılmalıdır. Bu
parçaların programın içinde defalarca kullanılabilmesi yordam (subroutine) kavramını
ortaya çıkarmıştır. Bu modelin kullanılması ise mantıksal karşılaştırmaları, döngülerin
kullanılmasını ve yazılan kodlar tekrar kullanıldığı için kütüphane (library) mantığını ortaya
çıkarmıştır.
1957 yılında IBM, düşük seviye (makine diline yakın) bir programlama dili olan FORTRAN
dilini ortaya çıkardı. FORTRAN ile beraber basit mantıksal karşılaştırmalar, döngüler, lojik
(truefalse) ve sayısal (integer, double) değişkenler kullanılmaya başlandı.
1959 yılında, bu programlama dilinin özelliklerini alıp, giriş çıkış (Input/Output – IO) gibi
yeni işlevler sağlayan COBOL dili ortaya çıktı. Daha sonra 1968 yılında, COBOL ve FORTRAN
13
Programlamaya Giriş
2009 2010
dillerinin en iyi özelliklerini alarak Pascal ortaya çıktı. Ayrıca Pascal dili, hafızadaki
adresler üzerinde işlem yapmaya olanak veren işaretçi (pointer) kavramını da beraberinde
getirdi.
1972 yılında C, Pascal dilindeki birçok hatayı gidererek ortaya çıktı. C dili ilk defa Unix
işletim sistemini yazmak için kullanılmaya başlanmıştır. C, düşük seviye bir dil olması,
kuvvetli giriş çıkış işlemleri sağlaması gibi birçok özelliği ile işletim sistemlerinin
yazılmasında tercih edilmiştir.
Bütün programlama dilleri birçok özelliğe sahip olmasına rağmen, modüler programlamanın
birçok eksiğini gidermek amacıyla, yeni bir programlama modeli olan nesne yönelimli
programlama (Object Oriented Programming – OOP) ortaya çıkarıldı. C dilinin ve OOP
modelinin tüm özellikleriyle C++ dili oluşturuldu.
C++ dilini, Sun Microsystems tarafından çıkartılan Java takip etti. Java dilinin kullanım
alanları, nesneye yönelimli bir programlama dili olması ve beraberinde getirdiği artık
toplama (Garbage Collection – GC) gibi performans artırıcı özellikleri ile büyük ölçüde
genişledi.
Microsoft, 2000 yılında .NET platformunu sunarak, otuzdan fazla programlama dilini aynı
çatı altına topladı. VisualBasic.NET ve Visual C# günümüzde .NET platformunu kullanan en
güçlü yüksek seviyeli programlama dilleri arasında yer alır. .NET platformu hakkında daha
detaylı bilgi için Bölüm 2‟ye bakın.
Konu 4.
Programın Derlenmesi
Programlar yazıldıktan sonra, çalışmaya uygun hale getirilene kadar bir dizi işlemden
geçer. Bu işlemi gerçekleştiren, programlama dilinin derleyicisidir. (Compiler)
nin gramer ve söz dizimi yapısına uygun bir şekilde yazılır.
14
Programlamaya Giriş
2009 2010
bir yazım veya mantık hata sıvarsa, programcıya gerekli hata mesajı verilerek derleme
işlemi iptal edilir.
15
Programlamaya Giriş
2009 2010
Bölüm 3. Microsoft .NET Platformu
Microsoft .NET, uygulama geliştiricilerin yazılım geliştirme sürecinde alt yapı işlemleri için
harcadığı eforu en aza indirgemek ve daha güvenli, güvenilir ve sağlıklı uygulamalar
geliştirebilmelerini sağlamak için geliştirilmiş bir alt yapıdır.
Bu bölümü tamamladıktan sonra;
NET Framework ve
bileşenlerini açıklayabilecek,
avantajları tanımlayabileceksiniz.
Konu 1.
Yazılım Geliştirme Dünyası
Microsoft 1975 yılında Bill Gates ve Paul Allen tarafından kurulduğunda, vizyonu “Her eve,
her masaya bir PC” idi. Donanım ve yazılım alanlarındaki gelişmelerin hızı ve birbirlerini
sürekli tetiklemesinin sonucunda bilgisayar kullanıcılarının sayısı hızla arttı. Artan kullanıcı
sayısı beraberinde yeni gereksinim ve talepleri getirdi. Bu taleplerin doğal sonucu olarak da
farklı platformlar ve farklı servis sağlayıcıları ortaya çıktı. İletişim, finansal hizmetler,
ticaret ve eğlence kullanıcıların (özellikle Internet‟in yaygınlaşmasıyla birlikte) en yoğun
talep gösterdiği hizmetler halini aldı. Günümüze baktığımızda, Microsoft‟un çıkış
noktasındaki hedefine büyük oranda ulaştığını görebiliyoruz. Ancak geldiğimiz noktada hızla
artan bilgisayar ve Internet kullanıcısı sayısı, beraberinde güvenlik, iletişim ve entegrasyon
gibi alanlarda çeşitli engelleri de getirdi.
Gelişmelere kendi açımızdan, yani yazılım geliştiriciler açısından baktığımızda işlerin çok
daha zor ve zahmetli durumda olduğunu görürüz. Kurumsal uygulamaların geliştirilmesinde
performans, güvenlik ve süreklilik gibi konularda belirli bir seviyeyi yakalamak için oldukça
fazla efor sarf etmemiz gerekiyor. Örneğin, elektronik cihazlarla soket iletişimi kuracak
uygulamaları geliştirebilmek için iki alternatifimiz var. Birincisi, 3. parti firmalar
tarafından geliştirilmiş olan bileşenler satın almak ve uygulamamıza entegre etmektir.
16
Programlamaya Giriş
2009 2010
Diğer alternatifimiz ise, oldukça uzun sürecek bir kodlama ile benzer bir iletişim katmanını
geliştirmektir. Her ikisi de firmaların birinci tercihi olmayacaktır. Sorunumuz, sadece soket
iletişimi noktasında değil elbette. Bölümün başında da belirttiğimiz gibi uygulama
geliştiriciler, güvenlik, performans ve yetkilendirme gibi pek çok konuda oldukça zahmetli
alt yapı kodlarını geliştirmekle uğraşmak zorunda kalıyor. İşin kötü yanı, geliştirilen bu alt
yapı kodlarının çoğu zaman istenen verimliliği sunmaktan oldukça uzak kalmasıdır. Kabul
etmemiz gereken şey, bu alt yapı kodlarını geliştirecek bilgiye sahip olmadığımız; sahip
olsak bile, alt yapı kodlarını yazacak zamana ve işgücüne sahip olmadığımız; zaman ve
işgücü konusundaki ihtiyaçlarımızı karşılayabilsek bile, bu kodların testi, güvenliği,
güvenilirliği, performansı ve uygulamalara entegrasyonu konusunda hiçbir zaman istenen
düzeye ulaşamayacağımızdır. Keşke ihtiyaç duyduğumuz tüm altyapı işlemleri için hazır,
kullanımı kolay ve esnek bir platform olsaydı.
Hayalini kurduğumuz, aslında şöyle bir sistem:
“Bir sanal mağazada cep telefonlarından sorumlu departmanda satış müdürü olarak
çalışıyorsunuz. İş dışındasınız ve akıllı cihazınıza bir mesaj geliyor: „Piyasaya henüz çıkmış
olan telefonumuz inanılmaz satışlar yapıyor, telefon çok popüler ve stoklarımız da oldukça
azalmış durumda.‟ Bu mesajın hemen ardından, akıllı cihazınız üzerinden, şirketiniz için
fiyat ve teslim zamanı açısından en uygun olan tedarikçiyi bulup, ihtiyacınız kadar telefonu
sipariş edebiliyorsunuz. Peki ya bu koşullar altında çalışmıyor olsaydınız? Şirketiniz, sizi cep
telefonunuzdan arayacak ve problemi iletecekti. Sonra da siz ancak şirketinize
dönebildiğiniz zaman tedarikçilerle teker teker irtibata geçerek hangisinin şirketiniz için en
yararlı olduğuna karar verecektiniz. Sipariş ve teslimat bilgileri üzerinde anlaştıktan sonra
işleminizi tamamlamış olacaktınız. Yani sadece birkaç dakikada yapabileceğiniz basit bir
işlem için, belki de bütün bir gününüzü kaybedecektiniz. Verimliliğiniz düşerken,
zamanınızı etkili şekilde kullanamayacaktınız. Oysa akıllı cihazınız üzerinden tüm bu
işlemleri kısa bir şekilde çözebildiğinizden, işe gitmenize bile gerek kalmadan çok kısa bir
zamanda şirketiniz için en iyi olan seçimi yapabilirsiniz.”
İşler kesinlikle çok daha verimli ve kolay ilerlerdi. Elbette bu, kurulabilecek hayallerin
sadece mobil platforma yönelik bölümünden bir kesit.
17
Programlamaya Giriş
Konu 2.
2009 2010
Sorunun Temeli
Microsoft, vizyonu doğrultusunda attığı adımların yazılım geliştiricilere yansıyan sonuçlarını
sürekli izliyordu ve yazılım geliştiricilerin sorunlarını şu başlıklar altında ele alıyordu.
farklı kurumlar arasındaki
iletişim sorunu.
tiyaç duydukları anda, kesintisiz, hatasız ve
güvenli bir şekilde ve istedikleri platformdan erişebilmeleri gereksinimi.
yapı kodları ile uğraşması ve bunun
sonucunda, uygulama geliştirme ve test süresinin uzaması.
kodların tekrar tekrar yazılması gereksinimi.
Konu 3.
Çözüm Platformu
18
Programlamaya Giriş
2009 2010
Microsoft 1990 yılında, yaşanacak 10 yılı da öngörerek, bu ve benzeri sorunlara çözüm
sunacak, uygulama geliştiricilerin ve son kullanıcıların işlerini kolaylaştıracak bir platform
geliştirmeye başladı. Microsoft bu platforma öylesine inanıyordu ki, kaynaklarının
%80‟inden daha fazlasını, yani kaderini bu platforma bağlamıştı. Çok geniş bir analiz ve
geliştirme ekibinin çalışmaları sonucunda ortaya çıkan ürün 2000 yılında dünyaya
sunulduğuna, insanların karşılarında gördükleri yapı karşısında hissettiklerini tanımlamak
için kullanılabilecek en uygun kelime “hayranlık” idi.
Microsoft.NET platformu, her türlü yazılım geliştirme ihtiyacına yönelik hazır bir altyapı
sunarak, uygulama geliştiricilerin Windows, Web ve mobil platformlara yönelik
uygulamaları çok daha hızlı, kolay ve güçlü bir şekilde geliştirebilmelerine olanak
tanıyordu. Uygulama geliştiriciler şifreleme, kimlik doğrulama, yetkilendirme, soket
iletişimi, her türlü veri kaynağına yönelik veritabanı işlemleri, XML ve Web servisi
teknolojilerine kadar burada saymadığımız (editörler bir bölümün 100 sayfayı geçmesine
pek sıcak bakmıyorlar) pek çok teknolojiyi ve hatta milyonlarca hazır sınıf ve fonksiyonu
karşılarında gördüler. Bugüne kadar günler, haftalar ve hatta aylar harcayarak geliştirmeye
çalıştıkları bu yapıların hepsini, karşılarında kullanıma hazır bir şekilde görmekten de son
derece memnunlardı.
19
Microsoft Visual Studio
2009 2010
Bölüm 4. Microsoft Visual Studio
Ara yüzü
Bu bölüm, Microsoft Visual Studio ara yüzünü tanımayı sağlar ve etkili bir biçimde
kullanmayı gösterir. Ev ve işyerindeki çalışma ortamını düzenlemek, daha verimli çalışmayı
sağlar. Yazılım geliştirirken de çalışılan ortamı tanımak ve kişiselleştirmek, rahat çalışmak
açısından önemlidir.
Bu bölümü tamamladıktan sonra;
ortamını tanıyacak,
ullanabilecek,
yardımını etkili bir şekilde kullanabileceksiniz.
20
Microsoft Visual Studio
Konu 1.
2009 2010
Visual Studio Çalışma Ortamı
Visual Studio, çok gelişmiş özelliklere ve yardımcı araçlara sahip bir dosya editörüdür. .NET
platformu üzerinde geliştirilen proje dosyaları dışında, metin dosyaları, *.sql ve *.rtf
uzantılı dosyalar da düzenlenebilir. Visual Studio ortamını oluşturan ve kullanımını
kolaylaştıran dört ana bileşen vardır:
I. Çalışma Sayfaları
Visual Studio ortamında dosyalar, birer çalışma sayfası (Tab Pages) olarak açılır. Bu
dosyalar sekmeler halinde sıralanır. Sayfalar arasında CTRL+TAB kısayolu ile geçiş yapılır.
Bu çalışma modelinde, sadece bir sayfa görünür ve üzerinde çalışma yapılır. Ancak Visual
Studio bize, çalışma ortamını parçalara bölme imkânı verir. Örnek:
1
Visual Studio çalışma ortamını açın. Başlangıç sayfası karşınıza çıkar. (Eğer başlangıç
sayfasını göremiyorsanız, Help menüsünden Show Start Page komutunu seçin.)
2
View menüsünden, Web Browser alt menüsünü işaretleyin ve Show Browser
komutunu seçin. Visual Studio, açmak istediğimiz Internet tarayıcısı için yeni bir sayfa
oluşturur.
3
CTRL tuşunu basılı tutarak TAB tuşuna basın. Açtığınız Internet tarayıcısından
başlangıç sayfasına dönülür.
4
Başlangıç sayfasını sağ tıklayın ve açılan menüden New Vertical Tab Group
komutunu seçin. Visual Studio, sayfaları “sekme gruplarına” ayırarak birden fazla sayfa
üzerinde çalışma imkânını sağlar.
5. Başlangıç sayfasını, sayfa başlığını tıklayıp fare düğmesini basılı tutarak Internet
tarayıcısının bulunduğu sekme grubuna taşıyın.
21
Microsoft Visual Studio
2009 2010
İPUCU Visual Studio ortamını bir Web tarayıcısı olarak kullanabilirsiniz.
Araç Çubukları
Visual Studio, menü komutları için görsel kısayolları araç çubukları (Toolbars) ile sunar.
Benzer işlemler için kullanılan komutlar bir araç çubuğunda gruplanır. Örneğin Standard
araç çubuğu, yeni dosya oluşturmak, bir dosyayı açmak ve kaydetmek gibi genel dosya
işlemleri için kullanılır.
Araç çubukları, varsayılan durumda menülerin altında bulunur. Ancak araç çubukları
taşınarak yerleri değiştirilebilir veya kayan duruma getirilebilir. Ayrıca istenen araç
çubukları saklanabilir veya gösterilebilir. Araç çubuklarının listesini görmek için View
menüsünden Toolbars alt menüsünü işaretleyin.
Visual Studio bize kendi araç çubuklarımızı oluşturma imkânı da verir. Farklı işlevlere sahip
komutlar gruplanıp, kişisel bir araç çubuğu oluşturulabilir. Örnek:
1
Başlangıç sayfasının üstündeki bir araç çubuğunu sağ tıklayın. Açılan menüde,
varılan tüm araç çubukları listelenir. İşaretli olan araç çubukları eklenmiş araç
çubuklarıdır. Bu listeden Web araç çubuğunu seçin.
2
Web araç çubuğunu çift tıklayın. Bu işlem, araç çubuğunu “Floating” (kayan menü)
durumuna getirir. Tekrar çift tıklandığında, araç çubuğu “Dockable” (sabit) durumuna
gelir.
3
Araç çubuğunu sağ tıklayın. Açılan menünün en altındaki Customize (özelleştir)
komutunu seçin.
4
Toolbars sekmesinde New (yeni) komutunu tıklayın. Açılan pencerede araç
çubuğunun ismi için “Genel İşlemlerim” yazın. OK düğmesini tıklayın. Visual Studio, verilen
isimde bir araç çubuğu oluşturur ve kayan durumda görüntüler.
5
Commands (komutlar) sekmesinde, Categories (kategoriler) listesinden Help
kategorisini seçin. Bu listenin yan tarafında bulunan Commands listesinden Index komutunu
bulun. Bu komutu taşıyıp, oluşturduğumuz “Genel İşlemlerim” araç çubuğuna bırakın.
22
Microsoft Visual Studio
2009 2010
Bu şekilde şu komutları da ekleyin:
Categories Commands
Tools Options
File
Exit
View Show Web Browser
Window Close All Documents
1
Araç çubuğunu çalışma ortamının altına taşıyarak sabitleyin.
2
Araç çubuğunu sağ tıklayın ve listeden “Genel İşlemlerim” araç çubuğunu seçerek
çalışma ortamından kaldırın.
Menüler
Birçok çalışma ortamının yaptığı gibi, Visual Studio da benzer öğeler üzerinde işlevleri olan
komutları menüler halinde gruplar. Menülerin araç çubuklarından farkı, sabit olmaları ve
özelleştirmeye açık olmamalarıdır. Menüler bu bölümde detaylı olarak ele alınacaktır.
Paneller
Paneller, Visual Studio içindeki pencerelerdir. Çalışma ortamında birçok panel bulunur.
Bunlar arasında Solution Explorer, Toolbox, Object Browser, Properties, Watch, Output,
Search Result, Task List gibi sıkça kullandığımız paneller sayılabilir.
İPUCU Görmek istenen paneller View menüsünden seçilebilir.
Paneller, Visual Studio ortamı içersinde istenen yere taşınabilir veya sabitlenebilir.
Panellerin birkaç genel özelliği vardır:
Auto Hide (Otomatik gizle). Panelin, fare imleci üzerindeyken gözükmesi ve imleç
çekildikten sonra gizlenmesidir.
23
Microsoft Visual Studio
Dockable (Sabitlenebilir).
sabitlenebilme özelliğidir.
2009 2010
Panelin,
Visual
Studio
ortamı
içersinde
bir
yerde
Floating (Kayan). Kayan paneller herhangi bir yere sabitlenemez. Ancak her sayfanın
üstünde durur ve böylece sürekli görünür.
Panellerin bu özelliklerine Window menüsünden erişilebilir.
Örnek:
1
View menüsünden Other Windows alt menüsünü işaretleyin ve Favorites panelini
seçin. Panelin başlığında, biri Auto Hide, diğeri Close olmak üzere iki düğme görülür.
2
Auto Hide düğmesini tıklayarak paneli gizleyin.
3
Paneli tekrar seçin, Window menüsünden Auto Hide özelliğini seçin. Daha sonra aynı
menüden Floating özelliğini seçin. Panelin taşınabildiği, ancak sabitlenemediği görülür.
4
Panel seçiliyken, Window menüsünden Dockable özelliğini seçin. Bu sefer, panelin
taşındığında çalışma ortamının herhangi bir yerine sabitlenebildiği görülür.
5
Panel seçiliyken, Window menüsünden Hide komutunu seçin. Paneli tekrar açmak
için bu adımları tekrarlayın.
Konu 2.
Start Page
Visual Studio çalışma ortamını açtığımız zaman karşımıza ilk gelen başlangıç sayfasıdır. Bu
sayfa üç bölümden oluşur (Resim 3.3).
Projects. O ana kadar çalıştığınız projeleri gösterir. Bu menüden son projelerinizi
açabilirsiniz. Son projelerde gözükmeyen bir proje (Open Project) veya yeni bir proje (New
Project) de açabilirsiniz.
24
Microsoft Visual Studio
2009 2010
Online Resources. Bu bölümde örnek uygulamalar (Find Samples), ipuçları bulabilir, en
yeni teknolojileri, güncellemeleri veya en son eklenen haberleri takip edebilir, MSDN
kütüphanelerinde kod örnekleri ve makaleler araştırabilirsiniz.
My Profile. Bu bölümde çalışma şeklinize göre bir profil seçebilirsiniz. Profiller; kullanılan
kısayollara, panellerin yerlerine ve görünümlerine, Visual Studio yardımını kullanırken
yapılan filtrelemeye göre değişir.
Örneğin, profili Visual Basic Developer olarak ayarlarsak Toolbox, sayfaların sol tarafında
çivili olarak durur. Yardım panelinde bir arama yapmak istediğimizde ise, sonuçlar Visual
Basic filtresine göre çıkar. Ayrıca Solution Explorer paneli CTRL+R kısayolu ile açılır.
Görünüm, kısayollar ve yardım filtresi birbirinden bağımsız olarak da ayarlanabilir. Bu
durumda seçilen profil, custom (özel) olarak gözükecektir. At Startup seçeneklerinden,
Visual Studio açılırken hangi pencerenin gözükeceğini belirleyebilirsiniz. Örneğin,
başlangıçta en son çalıştığınız projenin açılmasını istiyorsanız, “Load last loaded solution”
seçeneğini tercih etmelisiniz.
İPUCU Giriş sayfasını kapattıktan sonra, Help menüsünden Show Start Page seçeneğini
tıklayarak açabilirsiniz.
25
Microsoft Visual Studio
Konu 3.
2009 2010
Menüler
Visual Studio menüleri birçok uygulamanın menülerine benzer niteliktedir. Menü
isimlerinde, belirli bir harfinin altı çizilmiştir. Belirtilen harflere ALT tuşu ile birlikte
basıldığında, o menülere kısayolla ulaşılır. Menü komutlarının bazılarında ise, sadece o
komuta özel bir kısayol tanımlıdır. Bu kısayollar CTRL veya SHIFT gibi birkaç tuş
kombinasyonu ile gerçekleşir.
File (Dosya). Tüm dosya işlemleri bu menü altındadır. Standard araç çubuğu ile bu
menüdeki bazı komutlara ulaşılır. File menüsündeki komutlar ile:
Yeni bir proje, bir dosya veya boş bir çözüm (solution) oluşturmak,
varılan bir dosyayı açmak,
leri (Recent Files) açmak,
ür.
Edit (Düzenle). Tüm yazı düzenleme işlemleri için, bu menüdeki komutlar kullanılır. Text
Editor araç çubuğu da bu menünün komutlarına kısayoldur. Edit menüsündeki komutlar ile:
Copy, Cut, Paste, Delete, Select All gibi temel işlemleri
Find And Replace, Go, Bookmark gibi navigasyon işlemleri
Outlining ile metinleri gruplama işlemleri
çük harf çevrimi gibi ileri
seviye işlemler gerçekleştirilir.
26
Microsoft Visual Studio
2009 2010
View (Görünüm). Visual Studio çalışma ortamındaki tüm paneller bu menü komutlarıyla
gösterilir. Ayrıca Navigate Backward ve Navigate Forward komutlarıyla en son çalışılan
satıra geri dönülür.
Project (Proje). Projeye dosya eklemek, çıkarmak, proje özelliklerini göstermek için bu
menü kullanılır.
Build (Derleme). Projelerin çalışmak üzere derlenmesi için gereken komutlar, bu menü
altındadır.
Debug (Hata Ayıklama). Projede hata ayıklarken gereken komutlar Debug menüsü
altındadır. Projeyi Debug durumunda başlatmak, BreakPoints (hata ayıklarken durulması
gereken satırları ayarlamak) gibi işlemler yapılır.
Tools (Araçlar). Visual Studio ile beraber yüklenen yardımcı araçların listelendiği
menüdür. Araç çubuklarını özelleştirmek için kullanılan Customize seçeneği gibi Options
seçeneği de en sık kullanılan özelliklerden biridir.
Visual Studio çalışma ortamının tüm ayarları Options menüsünden yapılır. Environment ve
Text Editor en sık kullanılan seçeneklerdir.
Environment (Ortam). Sayfa düzeni ve görünüm ayarları, yazı tipi (font) ve renk ayarları,
komutlar için kısayol ayarları, Internet tarayıcısı ayarları, yardım ve dinamik yardım
ayarları buradan yapılır.
Text Editor (Metin düzenleyicisi). Farklı programlama dillerine özgü yazı düzeni ayarları
buradan yapılır.
Örnek:
1
Tools menüsünden Options komutunu seçin.
2
Sol panelde bulunan Environment menüsünden Fonts and Colors (yazı düzeni ve
renkler) sekmesine gelin.
3
Sağ panelde bulunan Display items (Öğeleri listele) menüsünden Text alanını seçin
ve Item background (Öğe arka planı) özelliğini Light Grey (Açık gri) olarak belirleyin. Tüm
sayfaların arka plan rengi açık gri olacaktır.
27
Microsoft Visual Studio
2009 2010
1
Sol panelde Environment menüsünden Web Browser sekmesine gelin. Home Page
(ana sayfa) özelliğinin altındaki Use Default seçeneğini kaldırın ve metin kutusuna
www.bilgeadam.com yazın.
2
Sol panelde Text Editor menüsünden Basic alt menüsünü seçin. Burada Visual Basic
diline özel metin düzenleme seçenekleri bulunur. Sağ panelde, Display sekmesinin altında
Line Numbers (Satır numaraları) seçeneğini işaretleyin. Bu seçenek, Visual Basic
projelerinde çalışırken satır numaralarını gösterir.
Window (Pencere). Sayfaların ve panellerin görünümlerini ve özelliklerini değiştirmek
için kullanılan komutlar bu menü altında bulunur. Tüm açık çalışma sayfaları bu menü
altında görüldüğü gibi, istenen sayfa seçilerek ön plana getirilir. Ayrıca, Close All
Documents (Tüm sayfaları kapat) komutu ile açık olan bütün sayfalar kapatılır. Auto Hide
All (Tümünü otomatik gizle) komutu ile, sabit hale getirilmiş tüm paneller gizlenir.
Help (Yardım). Visual Studio çalışma ortamında çok sık kullanılan yardım panellerinin
görünümü bu menü ile sağlanır. Bu menü ile ayrıca, kullanılan Visual Studio çalışma
ortamının sürümü hakkında bilgi alınır, son güncellemeler kontrol edilir, teknik destek için
gereken eposta adreslerine veya telefonlara ulaşılır.
Yardım kullanımı bu bölümde detaylı olarak ele alınacaktır.
28
Microsoft Visual Studio
Konu 4.
2009 2010
Solution Explorer Paneli
Visual Studio çalışma ortamında projeler bir çözüm (solution) altında açılır. Bir çözüm içine
farklı dilde ve tipte projeler dahil edilebilir. Visual Studio ile bir çözüm açıldığında,
Solution Explorer panelinde (Resim 3.5) çözüm içinde bulunan tüm projelerle, ilgili dosya
ve klasörler görüntülenir. Panelde koyu yazı tipinde gözüken proje, çözüm içindeki
başlangıç projesidir.
Bu panelden, öğeler üzerinde silme, kopyalama, taşıma ve ismini değiştirme işlemleri
yapılabilir. Ayrıca panelin üst kısmında, seçilen öğe üzerinde basit işlemler gerçekleştirmek
için bir araç çubuğu bulunur.
Refresh (Yenile). Proje dosyaları üzerindeki değişikliklerin gözükmesini sağlar.
Show All Files (Bütün dosyaları göster). Seçilen projenin bulunduğu klasördeki tüm
dosyaları ve alt klasörleri gösterir. Panelde gözüken beyaz öğeler proje içine dahil
edilmemiş öğelerdir. Proje kapsamında kullanılmak istenen öğeler (örneğin, arka plan
resmi), sağ tıklanıp Include In Project komutu ile projeye dahil edilmelidir.
Properties (Özellikler). Paneldeki tüm öğelerin özellikleri, Properties komutu ile
görülebilir. Bu komut seçildiğinde, öğenin özellikleri Properties paneli ile görüntülenir.
(Properties paneli bu bölümde detaylı olarak ele alınacaktır.)
29
Microsoft Visual Studio
2009 2010
Solution Explorer paneli, View menüsünden görülebildiği
seçeneklerinde CTRL+ALT+L kısayolu ile de görülebilir.
Konu 5.
gibi, varsayılan klavye
Toolbox Paneli
Toolbox (Araç kutusu) paneli, projelerde kullanılan çeşitli bileşenlerin listelendiği paneldir.
Buradaki öğeler, sekmeler içinde gruplanmıştır. Her sekme, ortak platformlarda çalışan
veya benzer işlevleri olan nesnelere sahiptir. Örneğin, Data sekmesinde veritabanı
işlemlerinde kullanılan bileşenler vardır. Windows Forms bileşenleri Windows platformunda
çalışan projelerde, Web Forms bileşenleri ise Web tabanlı projelerde kullanılan
nesnelerdir. ClipBoard Ring sekmesinde ise kopyalanan metinler bulunur. Nesnenin silik
gözükmesi, o anda çalışılan sayfada kullanılamayacağı anlamına gelir.
30
Microsoft Visual Studio
2009 2010
Toolbox panelinde nesneler, en sık kullanılandan en az kullanılana göre sıralanır. Örneğin,
Windows Forms sekmesinde en üstte Label, Link Label, Button, TextBox nesneleri bulunur.
Nesneler, yerleri ve sıraları taşınarak değiştirilebilir, ayrıca başka bir sekmeye de
taşınılabilir. Varsayılan sıralama dışında, alfabetik olarak da sıralama yapılabilir.Visual
Studio çalışma ortamı, Toolbox panelindeki nesnelere yeni isim verme, nesneleri silme
veya panele yeni sekmeler ve nesneler ekleme imkânlarını da sağlar.
Örnek:
1
View menüsünden Toolbox panelini seçin.
2
Panelde herhangi bir yeri sağ tıklayın ve Show All Tabs (Bütün sekmeleri göster)
komutunu seçin.
3
Windows Forms sekmesinde TextBox nesnesini sağ tıklayın. Çıkan menüden Rename
Item (Ad Değiştir) komutunu seçin ve “Metin Kutusu” yazın.
4
“Metin Kutusu” nesnesini taşıyarak sekmenin en üstüne getirin.
5
Paneli sağ tıklayın ve Sort Items Alphabetically (Nesneleri alfabetik olarak sırala)
komutunu seçin. Metin Kutusu nesnesinin, alfabetik sırada yerini aldığı görülür.
6
Paneli sağ tıklayın ve Add Tab (Sekme ekle) komutunu seçin. Sekmeye “Medya”
ismini verin.
7
Sekmeyi sağ tıklayın ve Add/Remove Items (Nesne Ekle/Kaldır) komutunu seçin.
Customize Toolbox iletişim kutusu açılır. Burada Toolbox paneline eklenebilecek tüm
bileşenler listelenir. Com Components sekmesine gelin ve listeden Windows Media Player
nesnesini işaretleyin. OK düğmesini tıklayarak iletişim kutusunu kapatın. Windows Media
Player nesnesinin, oluşturulan Medya sekmesine eklendiği görülür.
Toolbox paneline varsayılan klavye seçeneklerinde CTRL+ALT+X kısayolu ile ulaşılır.
31
Microsoft Visual Studio
Konu 6.
2009 2010
Properties Paneli
Properties (Özellikler) paneli seçilen bir nesnenin özelliklerini görüntüler. Paneldeki
görünüm, “Özellik adı – değeri” şeklindedir. Silik olarak gözüken özellikler salt okunurdur
ve değiştirilemez. Panelin üzerindeki açılır liste, çalışma sayfasındaki nesneleri listeler.
Buradan istenen nesne seçilerek özellikleri görüntülenir.
Paneldeki özellikler kategorilere göre gruplanmıştır, ancak alfabetik olarak da dizilebilir.
Panelin üstünde bulunan araç kutusundan Categorized (Kategorileştirilmiş) veya Alphabetic
(Alfabetik) seçenekleri işaretlenerek özelliklerin görünümleri değiştirilebilir.
Panelin en altında bulunan bölümde, her özelliğin açıklaması bulunur.
İPUCU Bir nesnenin üzerindeyken F4 tuşuna basınca, Properties paneli görüntülenir.
32
Microsoft Visual Studio
Konu 7.
2009 2010
Help Kullanımı
Yazılım geliştirirken en çok kullanacağımız kaynaklar yardım dosyaları olacaktır. Bir
programlama dilinin çok çeşitli özellikleri ve kullanım farklılıkları olabilir. İyi bir programcı
bütün bu özellikleri ezbere bilen değil, bu özellikleri en kısa sürede bulan, öğrenen ve
kullanan programcıdır. Yardım dosyalarının kullanımını bilmek, programcılığın temelini
oluşturan önemli unsurlardan biridir.
DİKKAT Visual Studio yardımını kullanmak için, MSDN (Microsoft Developer Network)
yardım kütüphanelerinin yüklenmiş olması gerekir.
Visual Studio yardımı programcıya, gelişmiş özelliklere sahip paneller ve yardım dosyaları
ile geniş bir kullanım kolaylığı sağlar.Visual Studio yardım dosyalarının yapısı, başlık, içerik
ve ilişkili konular (See Also) bölümlerinden oluşur. Ayrıca her yardım dosyasının altında
bulunan Send Comments bağlantısı ile konu hakkında yorum gönderilebilir.
Visual Studio yardım panelleri Dynamic Help, Search, Index ve Contents olarak dörde
ayrılır. Bu panellere, Help menüsünden ulaşılabilir.
I. Dynamic Help
Dynamic Help (Dinamik yardım) paneli, içeriği otomatik olarak değişen bir araçtır. Kod
yazarken, panellerde veya sayfalarda nesneler seçildiğinde, kullanıcının başka bir işlem
yapmasına gerek kalmadan, o nesne hakkındaki yardım konularını listeler. F1 tuşuna
bastığımız zaman ise, seçilen nesneye ait, Dynamic Help panelindeki ilk yardım konusu yeni
bir sayfada görüntülenir.
33
Microsoft Visual Studio
2009 2010
Paneldeki yardım konuları Help, Samples ve Getting Started olarak üç bölüme ayrılmıştır.
Help bölümü, seçilen nesneyle ilişkili olan kavramların listelendiği bölümdür. Samples,
konuyla ilgili kod örnekleri bulunan yardım dosyalarını gösterir. Getting Started, çalışılan
sayfalara göre değişen, temel işlemleri içeren başlangıç yazılarını gösterir.
Search
Search (Arama) paneli, MSDN kütüphanelerinde arama yapılan paneldir. Look for metin
kutusuna, aranacak anahtar kelimeler girilir. Filtered by (Filtreleme) ile arama sonuçları
belli konulara göre sınırlanır ve istenmeyen seçeneklerin gösterilmesi engellenir.
Search panelinde, Search in titles only, Match related words, Search in previous results,
Highlight search hits arama seçenekleri bulunur:
Search in titles only. Sadece konu başlıklarında arama yapar; içerik kısmına bakmaz.
Match related words. Kelimeleri yazıldığı gibi arar; benzer yazımlı kelimeleri aramaz.
Search in previous results. İlk aramadan sonra aktif olan bu seçenek ile kelimeler, bir
önceki aramada bulunan sonuçlar arasında aranır. Highlight search hits. Bulunan yardım
sayfalarında, aranan kelimelerin seçili olmasını sağlar.
Bulunan sonuçlar Search Results (Arama Sonuçları) panelinde gösterilir. Bu panelde;
Title, konunun başlığınıLocation, MSDN kütüphanelerinde hangi başlık altında bulunduğunu
Rank, konunun aranan kelimeye olan yakınlık derecesini ifade eder.
Index
Index (Dizin) paneli, yardım dosyalarındaki bütün konuları alfabetik sırada dizer. Filtreleme
işlevi, arama panelinde olduğu gibidir. Bu panelin özelliği, aranacak kelime yazılırken, bu
kelime ile başlayan tüm konuların alfabetik sırada gösterilmesidir. Bu şekilde, aranan
konulara çok hızlı bir şekilde ulaşılabilir.
Eğer bir konu ile ilgili birden fazla yardım dosyası varsa, Index Results (Dizin Sonuçları) panelinde bu
seçenekler gösterilir.
Contents
Contents (İçerik) panelinde, tüm MSDN içeriği konulara göre hiyerarşik yapıda, kategorilere
ayrılmış olarak gösterilir. Bu panelde de aynı şekilde filtreleme yapılarak istenmeyen
içerikler çıkartılabilir.
Bir yardım dosyası açıkken, Help menüsünden Sync Contents (İçerik senkronizasyonu)
komutu seçilerek o yardım dosyasının Contents panelindeki yeri bulunabilir.
34
Algoritma ve Dump Coding
2009 2010
Bölüm 5. Algoritma ve Dump
Coding
Programlamanın temelinde, çalışma akışını ve izlenecek yolları belirleyen algoritmalar
vardır. Bir iş yapılmaya başlanmadan önce nasıl planlanıyorsa, kodlamaya geçilmeden önce
de bir çalışma planı belirlenmelidir. Programla, bu planda yazılan kodları belli bir sıra ile
okur ve işler. Dolayısıyla algoritma yapısını çok iyi kurmak gerekir. Kurulan algoritmalar
akış diyagramları ile görsel zenginlik kazanırlar.
Dump Coding yöntemi algoritmaları çözmenin uzun, fakat etkili bir yoludur. Bu yöntem,
adımları tek tek inceleyerek algoritma akışını çözer. Bu modül tamamlandıktan sonra;
ding ile algoritmaları çözümleyecek,
35
Algoritma ve Dump Coding
Konu 1.
2009 2010
Algoritma Nedir?
Algoritma, bir işin hangi etaplardan geçilerek yapılacağını gösteren çalışma planıdır.
Algoritma bir programlama dili değildir. Programlama dillerine yol gösteren bir yöntem
dizisidir. Her dilde algoritma yazılıp uygulanabilir. Örneğin bir cep telefonunun el
kitapçığında yazan, rehber kaydı girmek için izlenecek yollar, o işin algoritmasıdır.
Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken
kontrollerin veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritmanın, tüm
ihtimalleri kontrol edip istenmeyen durumlarda ne yapılması gerektiğini de belirtmesi
gerekir.
alışma zamanında çoğu kez, işleyişin tamamlanması için dışarıdan bir bilgi
girilmesi gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan
kişiden veya belirtilen bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam
etmez.
kavramlardır. Girilen veya işlem sonucunda elde edilen veriler, işlemin amacına göre
kontrol edilir ve sonuca göre algoritma akışı istenen yere yönlendirilir.
itmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları
gibi işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek
tek yazılması okunabilirliği artırır.
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere
yönlendirilmediği müddetçe, bir sonraki adım ile işlemeye devam eder.
Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma
1
Telefon kulübesine git.
2
Telefon kartı al.
36
Algoritma ve Dump Coding
2009 2010
3
Telefon sırasında kaç kişi olduğuna bak.
4
Kişi sayısı sıfırdan fazlaysa 3‟e dön.
5
Kapı kapalıysa kapıyı aç.
6
İçeri gir, kapıyı kapat.
7
Telefon kartını telefona yerleştir.
8
Ahizeyi kaldır.
9
Numarayı çevir.
10
Konuşmanın bitip bitmediğine bak.
11
Konuşma bittiyse kartı al, bitmediyse 10‟a dön.
12
Bir daha konuşma yapılacaksa 7‟ye dön.
13
Kapıyı aç, dışarıcık.
Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere
yönlendirilir. Örneğin, kapının kapalı olması durumunda kapıyı açmak için gerekli komutlar
verilmelidir. Bu algoritmanın ihtiyaç duyduğu veriler ya kullanıcı tarafından verilir ya da
işlem başlamadan önce belirlidir. Sıradaki kişi sayısı, telefon kartı gibi veriler kullanıcı
tarafından sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir.
Konu 2.
Dump Coding Nedir?
Dump Coding yöntemi birçok karışık algoritmayı çözümlememizi sağlar.
37
Algoritma ve Dump Coding
2009 2010
Dump Coding yöntemi, algoritmanın her adımında, değişkenlerin tek tek değerlerini yazıp
işleyişi takip etmektir. Örnek: İki sayının OBEB‟ini (ortak bölenlerin en büyüğünü) alan
algoritmalardan bir tanesi Euclid tarafından geliştirilmiştir.
1
İki sayı gir. Büyük A, küçük B.
2
A sayısını B sayısına böl. Tam bölünüyorsa, OBEB B sayısıdır. Çıkış.
3
A sayısının değerini, kalan sayının değeri yap.
4
A ile B sayılarının yerini değiştir. İkinci etaba dön.
Bu algoritmanın çalışma mantığı, Dump Coding yöntemi ile adım adım incelenir.
1
İki sayı girilir. A = 12 ve B = 8.
2
A sayısı, B sayısına tam bölünmüyor. Algoritma diğer etaptan devam eder.
3
Kalan sayı = 4. Dolayısıyla A = 4 olur.
4
A sayısı ile B sayısının yerleri değiştirilir.A = 8 ve B = 4 olur. İkinci etaba dönülür.
5
A sayısı B sayısına tam bölünüyor. OBEB = 4.
Konu 3.
Akış Diyagramlarında Kullanılan Semboller
Madde madde yazılan algoritmaların okunması kolaydır, ancak işleyişin bütününü görmek,
çoğu zaman mümkün değildir. Akış diyagramları, algoritmaları görsel biçimde göstermeyi,
dolayısıyla daha anlaşılır hale getirmeyi sağlar. Algoritmada yapılacak işlemlerin çeşitlerine
göre çeşitli semboller kullanılır.
38
Algoritma ve Dump Coding
2009 2010
Başla – Bitir. Algoritmanın hangi aşamadan başlayacağını ve ne zaman biteceğini gösteren
semboldür. Bir algoritmayı temsil eden akış diyagramında, bir tane Başla ve bir tane Bitir
sembolü olmalıdır (Resim 5.1).
Veri Girişi. Kullanıcıdan ve başka bir kaynaktan alınan verilerin isimlerini tutar (Resim
5.2).
Karar Verme. Karar yapısını belirten semboldür. Üstünde koşul ifadesi belirtilir (Resim
5.3).
Veritabanı. Veritabanında okuma veya yazma işlemi yapıldığını gösterir (Resim 5.4).
rı bir fonksiyon sembolü
kullanılması, akış diyagramını daha anlaşılır kılar (Resim 5.7).
sembolle belirtilir (Resim 5.8).
39
Algoritma ve Dump Coding
Konu 4.
2009 2010
Algoritma Uygulamaları
I. Bilet Satma
Bir tiyatro uygulamasının sürekli gerçekleştireceği temel işlem, bilet satmaktır. Bu işlemi
gerçekleştirmek için gerekli kodlar yazılmadan önce, algoritma kurulmalıdır (Resim 5.9).
1
Kullanıcının istediği oyun, gün ve yer bilgileri alınır.
2
Veritabanı sorgulanarak, belirtilen günde oynayan oyunun boş yerleri çıkartılır.
3
Boş yer sayısı sıfırsa, o günde belirtilen oyun oynanmıyordur ya da oyundaki bütün
yerler satılmıştır.
4
Her iki durumda da bilet kesilemediği için ekranda hata mesajı gösterilir. Gün ve
oyun bilgilerini baştan almak için ilk etaba dönülür.
5
Kullanıcıdan oturmak istediği yer bilgisi alınır.
6
İstediği yerin dolu olup olmadığı kontrol edilir.
7
Yer dolu ise ekrana hata mesajı gösterilir ve yer bilgisi tekrar alınmak üzere 5.
etaba dönülür.
40
Algoritma ve Dump Coding
2009 2010
8
Yer boşsa, veritabanında oyunun yer kayıtları güncellenir.
9
İstenilen gün, oyun ve yer bilgilerini içeren bilet yazıcıdan çıkartılır.
Çay Demleme
Bu örnekte, bir çay demleme işleminde yapılması gereken işlemleri, kontrol edilmesi
gereken olayları içeren algoritma kurulur (Resim 5.10).
1
Kullanıcıdan su vermesi beklenir.
2
Suyu ısıtma işlemi yapılır.
3
Suyun kaynayıp kaynamadığı kontrol edilir. Kaynamamışsa 2. etaba dönülür.
4
Çay daha önceden hazır olduğu için, kullanıcıdan beklenmez. Demliğe çay koyma
işlemi yapılır.
5
Kullanıcıdan, demleme işleminin ne kadar süreceği bilgisi alınır.
6
Kullanıcıdan alınan demleme süresi ile şimdiki zaman (çayın demlenmeye başladığı
zaman) toplanır. Çıkan değer, BitisZamani isimli değişkene atılır. Bu değişken demleme
işleminin ne zaman biteceği bilgisini tutar.
7
Şimdiki zaman, bitiş zamanından küçükse çayın demlenmesi için ayrılan süre daha
dolmamış demektir. Bu süre dolana kadar 7. etap tekrarlanır.
8
41
Çayın demlendiğini, kullanıcıya ekran üzerinde bildiren bir mesaj çıkartılır.
Algoritma ve Dump Coding
2009 2010
Üniversite Eğitim Notunu Hesaplama
Üniversitede bir dersin başarı notu, genelde bir vize ve bir final notu ile hesaplanır. Vize
notunun katsayısı finalden daha düşüktür. Sonuçta çıkan not 50 ve üstündeyse öğrenci
geçer, 50‟nin altındaysa kalır. Bu örnek, vizenin %30 ve finalin %70 ağırlıklı olduğu başarı
notunun hesaplanmasını akış diyagramıile gösterir (Resim 5.11).
1
Notu hesaplanacak öğrencinin numarasıkullanıcıdan alınır.
2
Veritabanından öğrencinin vize ve final notları çekilir.
3
Eğer final notu 28 veya daha düşükse öğrenci kalır ve 9. etaba gidilir. Bu durumda
vize notu 100 olsa dahi, sonuç olarak toplanan not 50‟nin altında olur. Dolayısıyla
öğrencinin kalması kesinleşir. Böyle bir kontrol yapılması, gereksiz işlemlerin yapılmasını
engeller.
4
Vize değişkenine, veritabanından alınan vize notunun %30‟u atanır.
5
Final değişkenine, veritabanından alınan final notunun %70‟i atanır.
6
Sonuc değişkenine, Vizeve Finaldeğerlerinin toplamıatanır.
7
Sonuc değerinin 50‟den büyük olup olmadığı kontrol edilir.
8
Sonuc 50‟den büyükse ekrana “Geçtiniz” yazan bir mesaj çıkartılır. Algoritmadan
çıkılır.
9
Sonuç 50‟den küçükse ekrana “Kaldınız” yazan bir mesaj çıkartılır.
42
Algoritma ve Dump Coding
43
2009 2010
Algoritma ve Dump Coding
Konu 5.
2009 2010
Alıştırmalar
Kaynak: http://www.biltek.tubitak.gov.tr
Aşağıdaki sorular Yeryüzünde henüz cevabını kimsenin bilmediği sorular
Ancak biz bunların cevabını bulmayacağız tabii
Bu sorulardan yararlanarak bazı problemler yapalım…
I. Soru
Asal sayılara ilişkin pek çok bilgi henüz gün ışığına çıkmadı. Bunun yanı sıra ortaya atılmış
ama ispatlanmamış pek çok da kestirim var. İşte bunlardan biri:
• İkiz Asallar: İkiz asallar yani aralarındaki fark 2 olan asallar sonsuz tane midir? Bende
bilmiyorum ve tabii ki bunu bulmanızı istemicem
(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43). ..???
Veee soru.
•
keyfi verilen N sayısı için elemanları ikiz asal sayılardan oluşan (2xN) lik matrisi
veren programın algoritmasını yazınız.
Soru
Mükemmel Sayı Sorusu
Mükemmel sayı kendisi haricindeki tüm çarpanlarının toplamı kendisini veren sayıdır.
Örneğin 6 bir mükemmel sayıdır çünkü kendisi haricindeki çarpanları yani 1, 2 ve 3
toplanınca kendisini verir: 1 + 2 + 3 = 6. Diğer örneklerse 28, 496, 8128 şeklinde gidiyor.
Şimdiye kadar hiç tek mükemmel bir sayıya rastlanmamış. Merak edilen böyle bir sayının
var olup olmadığı. Eğer vardır diyorsanız bu sayıyı, saklandığı yerden bulup çıkarmalı, ya da
olmadığını iddia ediyorsanız bunu ispatlamalısınız.
•
Tabii ki sizden böyle bir ispat beklemiyorum. Sizden istediğim (i,j) bileşenleri
mükemmel sayılardan oluşan verilen 2x2 lik mükemmel bir matris oluşturacak şekilde
algoritma yazmanız…. Yani bu durumda matrisinizin elemanları 6,28,496,8128 olacaktır.
Soru
Palindromik Sayılar
44
Algoritma ve Dump Coding
2009 2010
Kapak, kütük, sus, yay, kepek kelimeleri ilginç bir ortak özellik ile dikkat çekiyor: düzden
ve tersten okunduğunda aynı. Benzer bir yapıya sahip olan Palindromik sayılar da düzden
ve tersten okunduğunda aynı olan sayılardır: 1991, 10001, 12621, 79388397, 82954345928.
Bu alandaki açık soru ise şöyle:
Hem asal hem de Palindromik olan sonsuz tane asal sayı bulunabilir mi? Yine ben bu soruyu
sormayacağım. Sanırım asallarla çok işimiz var.
Soru şu:
•
Bileşenleri Palindromik sayı olan NxN matris oluşturacak şekilde programın
algoritmasını yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2003_1.pdf
Soru
Elemanları, 6 ile bölündüğünde 5 kalanını; 7 ile bölündüğünde 6 kalanını veren keyfi NxN
matrisi yazdıran programın algoritmasını yazınız.
Soru
Kendisi dışındaki tüm bölenlerinin toplamı kendisinden büyük olan her pozitif tam sayıya
verimli sayı diyelim. Örneğin, 27 sayısının, kendisi dışındaki bölenlerinin toplamı 1+3+9 = 13
< 27 olduğundan, 27 sayısı bir verimli sayı değildir. Öte yandan, kendisi dışındaki tüm
bölenlerinin toplamı 1+2+3+5+6+10+15 = 42 > 30 olduğundan, 30 sayısı bir verimli sayıdır.
Buna göre elemanları verimli sayılardan oluşan keyfi NxN lik matrisi veren programın
algoritmasını yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2004_1.pdf
Herkese çok kolay gelsin.
Arzu Erdem
45
Algoritma ve Dump Coding
Konu 6.
2009 2010
Alıştırmaların çözümleri
Kaynak: http://www.biltek.tubitak.gov.tr
Aşağıdaki sorular Yeryüzünde henüz cevabını kimsenin bilmediği sorular
Ancak biz bunların cevabını bulmayacağız tabii
Bu sorulardan yararlanarak bazı problemler yapalım…
I. Soru
Asal sayılara ilişkin pek çok bilgi henüz gün ışığına çıkmadı. Bunun yanı sıra ortaya atılmış
ama ispatlanmamış pek çok da kestirim var. İşte bunlardan biri:
• İkiz Asallar: İkiz asallar yani aralarındaki fark 2 olan asallar sonsuz tane midir? Bende
bilmiyorum ve tabii ki bunu bulmanızı istemicem
(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43). ..???
Veee soru.
•
keyfi verilen N sayısı için elemanları ikiz asal sayılardan oluşan (2xN) lik matrisi
veren programın algoritmasını yazınız.
Çözüm
Soru
Mükemmel Sayı Sorusu
Mükemmel sayı kendisi haricindeki tüm çarpanlarının toplamı kendisini veren sayıdır.
Örneğin 6 bir mükemmel sayıdır çünkü kendisi haricindeki çarpanları yani 1, 2 ve 3
toplanınca kendisini verir: 1 + 2 + 3 = 6. Diğer örneklerse 28, 496, 8128 şeklinde gidiyor.
Şimdiye kadar hiç tek mükemmel bir sayıya rastlanmamış. Merak edilen böyle bir sayının
var olup olmadığı. Eğer vardır diyorsanız bu sayıyı, saklandığı yerden bulup çıkarmalı, ya da
olmadığını iddia ediyorsanız bunu ispatlamalısınız.
•
Tabii ki sizden böyle bir ispat beklemiyorum. Sizden istediğim (i,j) bileşenleri
mükemmel sayılardan oluşan verilen 2x2 lik mükemmel bir matris oluşturacak şekilde
algoritma yazmanız…. Yani bu durumda matrisinizin elemanları 6,28,496,8128 olacaktır.
Soru
Palindromik Sayılar
46
Algoritma ve Dump Coding
2009 2010
Kapak, kütük, sus, yay, kepek kelimeleri ilginç bir ortak özellik ile dikkat çekiyor: düzden
ve tersten okunduğunda aynı. Benzer bir yapıya sahip olan Palindromik sayılar da düzden
ve tersten okunduğunda aynı olan sayılardır: 1991, 10001, 12621, 79388397, 82954345928.
Bu alandaki açık soru ise şöyle:
Hem asal hem de Palindromik olan sonsuz tane asal sayı bulunabilir mi? Yine ben bu soruyu
sormayacağım. Sanırım asallarla çok işimiz var.
Soru şu:
•
Bileşenleri Palindromik sayı olan NxN matris oluşturacak şekilde programın
algoritmasını yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2003_1.pdf
Soru
Elemanları, 6 ile bölündüğünde 5 kalanını; 7 ile bölündüğünde 6 kalanını veren keyfi NxN
matrisi yazdıran programın algoritmasını yazınız.
Soru
Kendisi dışındaki tüm bölenlerinin toplamı kendisinden büyük olan her pozitif tam sayıya
verimli sayı diyelim. Örneğin, 27 sayısının, kendisi dışındaki bölenlerinin toplamı 1+3+9 = 13
< 27 olduğundan, 27 sayısı bir verimli sayı değildir. Öte yandan, kendisi dışındaki tüm
bölenlerinin toplamı 1+2+3+5+6+10+15 = 42 > 30 olduğundan, 30 sayısı bir verimli sayıdır.
Buna göre elemanları verimli sayılardan oluşan keyfi NxN lik matrisi veren programın
algoritmasını yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2004_1.pdf
Herkese çok kolay gelsin.
Arzu Erdem
47
Microsoft Visual Studio Ara yüzü
2009 2010
Bölüm 6. Visual Basic.NET ile
Windows Tabanlı Programlama
Windows tabanlı uygulamalar, Windows işletim sistemi üzerinde çalışan uygulamalardır.
Windows uygulamaları Windows formları ve kontrollerinden oluşur. Visual Studio bu
formların ve üzerindeki kontrollerin tasarımını ve kodların yazılmasını büyük ölçüde
kolaylaştırarak, uygulama geliştirme sürecini daha hızlı ve kolay hale getirir.
Bu bölümü tamamladıktan sonra;
tabanlı programlamada kullanılan kontrolleri tanıyacak,
kavramlarını öğrenecek,
tanımlamayı öğrenecek,
48
Microsoft Visual Studio Ara yüzü
Konu 1.
2009 2010
İlk Uygulama (Hello World, The Time Is...)
Visual Basic .NET ile yazacağımız Windows uygulaması ekrana, “Hello World” yazısını ve o
anki zamanı gösteren bir bilgi mesajını çıkartır.
1
Visual Studio çalışma ortamını açın.
2
File menüsünden, New alt menüsünü ve Project komutunu seçin. “New Project”
iletişim kutusu, yazılacağı dile, çalışacağı ortama göre değişen proje tiplerini listeler.
3
Proje tiplerinden Visual Basic Project ve Windows Application tipinin seçili olduğunu
kontrol edin.
4
Name özelliğine Hello World yazın ve OK düğmesini tıklayın. Açılan Windows
projesinde başlangıç olarak bir adet Windows Form, tasarım görünümünde açılır.
5
Toolbox panelinden Button kontrolünü formun üzerine sürükleyip bırakın. Properties
panelini açarak Button kontrolünün Text özelliğine “Hello World” yazın.
6
Eklenen Button kontrolünü çift tıklayarak kod sayfasına geçin. Button kontrolü
tıklandığında çalıştırılacak kodu yazın:
MsgBox("Hello World The time is " & Now)
NOT Yazdığınız kodun ne anlama geldiğini belirtmek için yorum satırları kullanmak, kodları
okumayı kolaylaştırır. Yorum satırları tek tırnak 'ile başlayarak yazılmalıdır.
7.
MsgBox metodunun yazıldığı kodun üstüne, yapılmak isteneni belirten bir yorum
satırı yazın.
' MsgBox metodu ile kullanıcıya Merhaba diyoruz. ' Now özelliği ile o andaki saat ve gün '
değerlerini de kullanıcıya gösteriyoruz.
8.
49
F5 tuşuna basarak projeyi çalıştırın.
Microsoft Visual Studio Ara yüzü
2009 2010
İPUCU Çalışma sayfaların isimlerinin yanında yıldız işaretinin gözükmesi, o sayfada
değişiklik yapıldığını, ancak henüz kaydedilmediğini belirtir. Proje dosyalarınızı CTRL+S
tuşlarına basarak sıkça kaydedin.
Konu 2.
Özellikler, Metotlar ve Olaylar
.NET kontrolleri üç temel kavramdan oluşur.
I. Özellikler
Özellikler, kontrollerin görünümü, yerleşimi veya davranışlarına özgü niteliklerdir. Örneğin,
bir Button kontrolünün Text özelliği, üzerinde yazan yazıya erişmemizi sağlar.
Kontrollerin özellikleri, tasarım anında Properties panelinden ulaşılabileceği
gibi, kod tarafında da okunup değiştirilebilir. Kontrollerin birçok özelliği hem okunabilir,
hem de değiştirilebilir. Ancak bazı özellikler salt okunur (ReadOnly) ve salt yazılır
(WriteOnly) olabilir. Bu tip özellikler Properties panelinde gözükmezler.
Kontrollerin birçok ortak özellikleri vardır.
Text (Yazı). Kontrollerin Text özelliği, üzerinde görüntülenen yazıdır. Bu özellik, çalışma
anında sıkça okunup değiştirilerek kullanıcıyla iletişim sağlanır.
TextBox kontrolüne girilen bir değerin okunup Label kontrolüne yazılması için, kontrollerin
Text özellikleri kullanılır.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = TextBox1.Text
End Sub
50
Microsoft Visual Studio Ara yüzü
2009 2010
Name (İsim). Name özelliği kontrollere ulaşmak için kullanılan özelliktir. Birçok kontrolün
Text özelliği aynı olabilir. Ancak her biri ayrı birer nesne olduğu için, Name özelliklerinin
benzersiz olması gerekir.
TextBox2.Text = TextBox1.Text
İki TextBox kontrolünün yazıları aynı, fakat isimleri farklıdır.
Size (Büyüklük). Kontrollerin büyüklük özelliğidir. Height (yükseklik) ve Width (genişlik)
özelliklerinden oluşur. Genellikle tasarım anında belirlenen bu özellik, çalışma anında da
değiştirilebilir.
Label1.Height = 10 Label1.Width = 20
BackColor (Arka plan rengi). Kontrollerin arka plan renginin ayarlandığı özelliktir. Bu
özelliğin değeri, Color (renk) nesnesinde tanımlı değerlerle belirlenir.
ForeColor (Önalan rengi). Kontrollerin üzerindeki yazıların rengini belirler.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click Button1.BackColor = Color.Black
Button1.ForeColor = Color.White
End Sub
Visible (Görünür). Kontrollerin ekranda görünüp görünmediklerini belirleyen özelliktir.
True ve False olmak üzere iki değer alabilir. Boolean veri tiplerinden bu modülde
bahsedilecektir.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
'Label kontrolünü gizle
Label1.Visible = False
'Label kontrolünü göster
51
Microsoft Visual Studio Ara yüzü
2009 2010
Label1.Visible = True
End Sub
End Class
Metotlar
Metotlar kontrollerin yaptığı işlemlerdir. Metotlar parametreyle veya parametresiz
çağrılabilir. Parametreyle çağırmak, metodun girilen değere göre işlem yapacağını belirtir.
Örneğin
Focus (Odaklan) metodu, parametre beklemeden çalışır ve kontrolün seçilmesini sağlar.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click ' İşlem yapıldıktan sonra ' TextBox
kontrolüne odaklan TextBox1.Focus()
End Sub
Kontrollerin bazı ortak metotları vardır.
Select (Seç). Select metodu Focus ile aynıdır, ama TextBox kontrolünün Select metodunun
diğerlerinden bir farkı vardır. TextBox içindeki yazının belli bir kısmını ya da tamamını,
verilen parametrelere göre seçer (Resim 4.3).
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "Yazılım Uzmanı"
TextBox1.Focus()
' Sekizinci karakterden sonra, beş karakter seç TextBox1.Select(8, 5)
End Sub
RESİM 4.3
BringToFront (Öne Getir). Kontrolü, üst üste duran kontroller arasından en öne getirir.
SendToBack (Arkaya Gönder). Kontrolü, üst üste duran kontrollerin en arkasına gönderir.
Hide(Sakla). Kontrolün gözükmesini engeller.
Show(Göster). Kontrolün gözükmesini sağlar.
52
Microsoft Visual Studio Ara yüzü
2009 2010
Olaylar
Olaylar kontrollerin başına gelen işlemlerdir. Olayların metotlardan farkı, bu işlemlerin
kontrollerin elinde olmadan gerçekleşmesidir. Örneğin bir Button kontrolünün tıklanması, o
kontrolün isteği dışında yapılmıştır. Bu olayın tetiklenmesinde kontrolün bir rolü yoktur. Bu
olaylar gerçekleştiği zaman yapılması gereken işlemler, ilgili olayın yordamına yazılır.
Button1 isimli kontrol tıklandığı zaman gerçekleştirmek istenen eylemler Button1_Click
yordamına yazılır.
Visual Studio ortamı, kontrollerin olaylarını kolay bir şekilde seçmeyi sağlar. Kod
sayfalarında kontrollerin bulunduğu listeden, istenen kontrol seçilir. Kontrolün olaylarının
listelendiği diğer listeden de istenen olay seçilir (Resim 4.4).
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
MyBase.Click MsgBox("Form üzerine tıklandı") End Sub
Visual Studio, olayların yordam isimlerini Kontrol
yazar.Kontrollerle çalışırken benzer olaylar kullanılır.
İsmi_Olay
İsmi
biçiminde
Click (Tıklandığında). Kontrol tıklandığı zaman tetiklenen olaydır. Windows tabanlı
programlamada en sık kullanılan olaylardan biridir.
MouseDown (Fare düğmesi basıldığında). Fare, kontrolün üzerindeyken herhangi bir
düğmesine basıldığı zaman gerçekleşen olaydır. Bu olay, Click olayından önce çalışır.
MouseUp (Fare düğmesi bırakıldığında). Fare, kontrolün üzerindeyken basılan düğme
bırakıldığı zaman çalışır.
Enter (Girildiğinde). Kontrol seçildiği veya üzerine odaklanıldığı zaman gerçekleşen
olaydır.
Leave (Çıkıldığında). Başka bir kontrol seçilmek üzere çıkıldığında, bu kontrolün Leave
olayı tetiklenir.
VisibleChanged(Görünürlüğü değiştiğinde). Kontrolün görünüp görünmediğini belirten
Visibleözelliği değiştiği zaman tetiklenir.
İPUCU Olayların çalışma sıralarını test etmek için tüm olay yordamlarına, mesaj kutusu
çıkaran (MsgBox) kod yazın. Daha sonra projeyi çalıştırıp kontroller üzerinde yapılan
değişikliklere göre olayların çalışma sıralarına bakın.
53
Microsoft Visual Studio Ara yüzü
Konu 3.
2009 2010
Visual Basic.NET‟e Kontrollerin Eklenmesi
Windows tabanlı uygulamalar geliştirirken sıkça kullanacağımız bir grup kontrol vardır.
Form kontrolü hariç diğer bütün kontroller Toolbox panelinden seçilir. Bu kontroller
sürüklenip form üzerinde istenen pozisyona bırakılır (Resim 4.5).
Şekil 4.5
Kontroller, Toolbox panelinde çift tıklanarak da eklenebilir.Kontrollerin tasarım anında
büyüklükleri ve yerleri Size ve Location özellikleri ile değiştirilebileceği gibi, fare ile de
istenen şekilde ayarlanabilir (Resim 4.6).
Şekil 4.6
54
Microsoft Visual Studio Ara yüzü
2009 2010
I. Form
Windows uygulamaları, Windows kontrollerinin tutulduğu pencereler olan formlardan
oluşur. Bir Windows projesi açıldığı zaman Form kontrolü otomatik olarak eklenir. İkinci bir
form eklemek için Project menüsünden Add Windows Form komutunu seçilir. Proje çalıştığı
zaman başlangıç formu görüntülenir. Başlangıç formu projenin özelliklerinden değiştirilir
(Resim 4.7 ve Resim 4.8)
Şekil 4.7
Şekil 4.8
Visual Studio ortamında formlar, tasarım sayfası ve kod sayfası olmak üzere iki farklı
sayfada görüntülenir. Tasarım sayfası, formun ve üzerindeki kontrollerin görünümlerini
55
Microsoft Visual Studio Ara yüzü
2009 2010
kolay bir şekilde değiştirmeyi sağlar. Visual Studio bu sayfada yapılan değişiklikleri kod
sayfasında eşzamanlı olarak günceller. Örneğin, bir Button kontrolünün genişliğini fare ile
değiştirdiğimiz zaman, kod sayfasında bu kontrolün Width özelliği yapılan değişikliğe göre
güncellenir. Aynı değişiklikler Properties panelinde de görülebilir.
Formların, diğer kontrollerin özelliklerinden farklı bazı özellikleri vardır.
ControlBox (Denetim kutusu). Form üzerindeki simge durumuna küçültme, ekranı kaplama
ve formu kapatma (Minimize / Maximize / Close) kutularının görünümünü ve
erişilebilirliğini kontrol eder.
NOT Formun ControlBox özelliği False iken uygulama, Debug menüsünden Stop Debugging
komutu seçilerek kapatılabilir.
StartPosition (Başlangıç pozisyonu). Form açıldığı zaman nerede gözükeceğini belirler.
CenterScreen seçeneği formu ekranın ortasında gösterir.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Label1.Text = "Proje başlatıldı. Kayıt zamanı: " &
Now
End Sub
Form Özellikleri
Özellik
Değer Tipi Açıklama
AcceptButton Button
Form üzerinde Enter tuşuna basıldığı zaman “tıklanacak”
Button kontrolü
AllowDrop
Bu özelliğin “True” olması ile resim dosyalarını formunuzun
üstüne sürükleyip bıraktığınızda şekil formunuzun üstünde
kalabilecektir. (Sadece True olması yeterli değildir.
Formunuzun DragDrop olayı ile kod ekranında istediğiniz
formatı vermeniz gerekmektedir.)
AutoScroll
Panel içinde kaydırma çubuklarının eklenmesini istiyorsanız
bu özelliği “True” yapmalısınız.
AutoSize
“True” ise nesnenin boyutlarını değiştiremeyebilirsiniz. Bu
durumda nesnenin boyutlarını değiştirmek istiyorsanız
“False” yapmalısınız.
AutoValidate
(i) Disable: Onaylama işlemleri bu özellik ile kapanır.
(ii) EnableAllowFocusChange: Onaylama işlemleri
ulaşılabilirdir. Fakat onaylama işlemi başarısız olursa işlem
56
Microsoft Visual Studio Ara yüzü
2009 2010
yeni bir kontrole geçer. Validated olayı çalışmaz.
(iii) EnablePreventFocusChange: Onaylama işlemi
kontrol başarısız olsa bile gerçekleşir.
(iv) Inherit: Otomatik kontrol davranışını içerdiği bir
formdan veya başka bir kontrolden alır. Eğer içerdiği bir
kontrol
davranışı
yok
ise
otomatik
olarak
EnablePreventFocusChange olarak atar.
BackColour
Nesnenizin arka plan rengini değiştirir.
BackgroundImage
Nesnenizin arka planına resim koymak istiyorsanız bu
özellikten yararlanacaksınız.
BackgroundImageLayout
Resminizin ortalı, dayalı,… vb. gibi olmasını istiyorsanız bu
özelliği kullanacaksınız.
CancelButton
AcceptButton‟un aksine formunuzda ESC düğmesini aktif
hale getirme işlemini yapar.
CauseValidation
Validating veya validated olaylarının meydana gelmesi için
bu özelliğin “True” olması gerekir.
ContextMenuStrip
ContextMenu kontrolü sağ fare tuşu ile açılan menüler
oluşturmak için kullanılır.
ControlBox
Max. Min. Ve kapatma ile ilgili kontrolleri kullanmak
istemiyorsanız bu özelliği “False” yapmalısınız.
Cursor
Fare kontrol üzerine geldiğinde fare göstergesinin alacağı
şekil bu özellik ile belirlenir
DoubleBuffered
Kontrolünüzün yüzeyinin çizilebilir olmasını istiyorsanız
“True” özelliğinde olmalı.
Enabled
Kontrolünüzü erişilebilir olması için “True” özelliğinde
olmalıdır.
Font
Kontrolünüzdeki yazı tipini belirlemek istiyorsanız buradan
değişiklik yapabilirsiniz.
ForeColour
Kontrolünüzdeki yazı renklerini buradan değiştirebilirsiniz.
FormBorderStyle
Bu özellik ile formun çerçeve şeklini belirleyebilirsiniz.
(i)
Sizable: Otomatik olarak atana değerdir. Formun
kapatılması, boyutlandırılması ve taşınması mümkündür.
(ii)
FixedSingle:
Boyutları
değiştirilemeyen
ancak
taşınabilir bir form oluşturur. Ekran boyutu yalnızca ekranı
57
Microsoft Visual Studio Ara yüzü
2009 2010
kapla ve simge durumuna küçült seçenekleri ile değişir.
(iii)
Fixed3D: Aynı FixedSingle da olduğu gibi boyutları
değiştirilemeyen bir form oluşturur. Tek farkı 3 boyutlu bir
görünüme sahip olmasıdır.
(iv)
FixedDialog: Boyutları değiştirilemeyen ve sistem
menüsü (ControlBox) olmayan bir form oluşturur. Genelde
diyalog pencereleri oluşturmak için kullanılır.
(v)
FixedToolWindow: Normal forma göre başlığı daha
küçük olan, kontrol menüsü olmayan ve boyutlandırmayan
bir form oluşturur. Ekranı kapla ve simge durumuna küçült
düğmeleri bulunmaz.
(vi)
SizableToolWindow: FixedToolWindow ile hemen
hemen aynı olup tek farkı boyutlandırılabilir olmasıdır.
(vii) None: Çerçevesi, başlığı, kontrol kutusu, ekranı kapla
ve simge durumuna küçült düğmeleri olmayan bir form
oluşturur.
HeplButton
Bu özelliği “True” yaparak formlarınıza
ekleyebilirsiniz.
Formun
üzerinde
bu
bulunabilmesi için:
(i)
düğmesini
düğmenin
ControlBox özelliği True olmalıdır.
(ii)
FormBorderStyle özelliği,
Sizable veya FixedDialog olmalıdır.
FixedSingle,
Fixed3D,
(iii)
MaximizeBox ve MinimizeBox özellikleri False olmalı.
(iv)
Formunuzun üstüne bir TextBox yerleştirin.
(v)
Textbox‟un HelpRequested olayına
Help.ShowPopup(TextBox1, _
"Buraya
yazın...", _
ne
görüntülenmesini
istiyorsanız
hlpevent.MousePos)
ifadesini yazın ve formunuzu çalıştırın.
Icon
Formunuzun ikonunu değiştirmek için gerekli olan bir
özelliktir. İkon dosyalarının uzantısı *.ico olduğu için
buradaki dosyanızın *.ico uzantılı olması gerekmektedir.
ImeMode
Nesneniz seçili olduğunda nesnenizin the Input Method
58
Microsoft Visual Studio Ara yüzü
2009 2010
Editor (IME) durumunu verir.
IsMdiContainer
Tek başına çalışan formlara SDI form denir. Normalde yeni
bir projeye başlarken projede bulunan form ve daha sonra
eklenen formlar SDI formlardır. Bir formun IsMdiContainer
özelliğini true yaparsak o form MDI form haline
dönüşecektir. MDI formlar içinde kendisine bağlı formlar
bulundurur Bu formlar (Child form) MDI formuna bağlıdır.
MDI forma bağlıdır. Formunuzu MDIChild yapma işlemini
tasarım ile değil, kod ile yapabilirsiniz.
KeyPreview
Bu özelliği True yaparsanız herhangi bir tuşa basıldığında, o
kontrolün Key olayları ile birlikte Formun da Key olayları
meydana gelir.
Örnek: F10‟ basıldığında programdan çıkmak istiyorsunuz.
Bu durumda kodu hangi kontrolün Key olayına yazacaksınız?
Programınızda bir sürü kontrol olabilir. Programınızdaki tüm
kontrollerin KeyDown olayına F10 tuşunu algılayacak kodu
yazmaktansa Formun KeyPreview özelliği True yapılır. Daha
sonra formun kod kısmına
Protected Overrides Sub OnKeyDown(ByVal
System.Windows.Forms.KeyEventArgs)
e
As
MyBase.OnKeyDown(e)
If Keys.F10 Then end
End Sub
Konutlarını yazıp programınızı çalıştırdıktan sonra F10
tuşuna bastığında programınızın kısayol olarak sonlandığını
göreceksiniz.
59
Language
Dil özelliklerini belirler.
Localizable
Dil seçenlerinizin kullanılabilir olması için bu özelliğin True
olması gerekmektedir.
Location
Kontrolünüzün x ve y koordinatlarını belirler. Fareyle de
belirleyebileceğiniz gibi hassas ayarlar için elle giriş
yapabilirsiniz.
Locke
True olduğunda kontrolün kilitlenmesini sağlar.
MainMenuStript
Formunuza
geçerlidir.
yerleştirdiğiniz
MenuStript
özelliği
için
Microsoft Visual Studio Ara yüzü
2009 2010
MaximizeBox
True olduğunda ekranı kapla düğmesi kullanılabilirdir.
MinimizeBox
True olduğunda
kullanılabilirdir.
Opacity:
Bu özelliğin değeri normalde 100% dır. Bu değeri azalttıkça
formunuzun saydamlaşmasını ve alttaki belgeyi göstermesini
sağlarsınız.
Padding
Kontrolün kenarlara olan uzaklığını verir.
RightToLeft
Kontrolün text yazısını sağdan sola doğru yazılması için Yes
olarak seçilmelidir
ShowIcon
İkonun görünebilir olması için bu özelliğin True olması
gerekir.
Size
Kontrolün boyutlarını belirlemek için kullanılır. Fare ile de
belirleyebilirsiniz.
SizeGripStyle
StartPosition
simge
durumuna
küçült
düğmesi
Formunuzun sağ alt köşesinde
sembolünü görmek
istiyorsanız bu özelliği Show olarak ayarlayınız.
Form açılırken ekrandaki koordinatların belirlenmesi için
kullanılan özellikleri:
(i)
CenterScreen: Form ekranın ortasında açılır.
(ii)
CenterParent: Form içinde bulunduğu
ortasında açılır. (MDI Child formlar gibi)
formun
(iii)
Manual: Form tasarlanırken bulunduğu koordinatlarda
açılır.
(iv)
WindowsDefaultBounds: Formun
boyutları Windows tarafından belirlenir.
(v)
WindowsDefaultLocation:
Windows tarafından belirlenir
koordinatları
Formun
ve
koordinatları
Tag
Bu özelliğin Visual Basic için hiçbir anlamı yoktur. Kullanıcı
bu özelliği bir değişken gibi kullanarak istediği bilgiyi
saklayabilir.
Text
Kontrolün başlığıdır.
TopMost
Formun devamlı üstte durmasını istiyorsanız bu özelliğin
True olması gerekir. Örneğin Word‟de kelime arama
formunu düşünün.
TransparencyKey
Formunuzu görüntü olarak özelleştirmek istiyorsanız bu
60
Microsoft Visual Studio Ara yüzü
2009 2010
özelliği kullanın.
Örnek:
Şeklinde Paint de bir dosya oluşturun ve kaydedin.
Formunuzun BackgroundImage‟ne bu resmi yerleştirin.
TransparencyKey özelliğindeki arka plan rengini resminizin
arka plan rengi olarak seçin. (Benim örneğimde mavi olacak)
Formunuzu çalıştırdığınızda formunuzun saydam bir özellikte
olduğunu göreceksiniz.
UseWaitCursor
Fare göstergesinin, formun üstüne geldiğinde program
çalışıyormuş formatında görünmesini istiyorsanız bu özelliği
True yapmalısınız.
WindowsState
Form açıldığında
belirleyeceksiniz.
hangi
formatta
olduğunu
(i)
Normal: Normal olarak açılacaktır
(ii)
Minimized: Simge durumunda açılacaktır.
(iii)
Maximized: Tam ekran durumunda açılacaktır.
Form Olayları
61
buradan
Olay
Açıklama
Click
Form üzerine tıklandığı zaman gerçekleşir
Closing
Form kapanmadan hemen önce gerçekleşir
Closed
Form kapandıktan sonra gerçekleşir
Load
Form yüklenirken gerçekleşir
Microsoft Visual Studio Ara yüzü
2009 2010
KeyDown
Form üzerindeyken bir tuşun basılması ile gerçekleşir
KeyUp
Basılan tuşun kaldırılması ile gerçekleşir
Form Metotları
Metot
Açıklama
Hide
Visible özelliğini False yaparak formu gizler
Close
Formu kapatır. Eğer form başlangıç formuysa uygulama
sonlanır
Show
Formu gösterir. Hide ile gizlenmişse, Visible özelliği True
yapılır.
ShowDialog
Formu iletişim kutusu olarak gösterir.
Button
Bir Windows düğmesini temsil eder. Button kontrolü tıklandığında Click olayı tetiklenir. Bu
olay gerçekleştiği zaman yapılacak işlemler, Button İsmi_Click yordamında yazılır.
Private Sub btnRenkDegistir_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnRenkDegistir.Click
btnRenkDegistir.ForeColor = Color.Gray
End Sub
62
Microsoft Visual Studio Ara yüzü
2009 2010
Button Özellikleri
Özellik
Değer Tipi Açıklama
Anchor
Anchor kelime anlamı olarak demir atmak demektir. Bu
özellik ile formunuzun boyutları değişse de kontrolünüz
belirlediğiniz konumda sabit kalacaktır.
AutoEllipsis
Bu özelliği True yaparak okunmayan yazıları ipucu gibi
görüntüleyebilirsiniz. Bunun için AutoSize seçeneğinin
False olması gerekmektedir.
Dock
Bu özellik ile herhangi bir kontrolün, formun belirlemiş
olduğunuz bir kenarına alınmasını sağlarsınız.
ImageList
Butonun arka planında resmi kapsanmış bir şekilde değil de
bir ikon gibi görünmesini istiyorsanız bu özelliği
kullanacaksınız.
Örnek:
Toolbox penceresinde Components sekmesinden formunuza
bir ImageList kontrolü yerleştirin. ImageList formda
görünmeyen kontrollerdendir.
ImageList‟in Properties penceresinde Images seçeneğinden
resimler belirleyin.
Seçmiş olduğunuz butonun ImageList özelliğinde formunuza
koymuş olduğunuz ImageList‟inizi seçin. ImageIndex
özelliğinden istediğiniz resmi seçip, ImageAlign özelliği ile
resminizin butonun neresinde olmasını ayarlayın.
63
TabIndex
Klavyedeki Tab kontrolünü bu özellik ile belirleyebilirsiniz.
Bu özellikte vermiş olduğunuz numaralandırma sizin tab
kontrolünüzün sırasını belirler.
TabStop
True olduğunda nesneye Tab ile ulaşabilirsiniz.
TextAlign
Kontrolünüzün üstünde bulunan
buradan belirleyebilirsiniz.
TextImageRelation
Butonunuzda yazı ile birlikte şekilde varsa bunların
ilişkisini bu özellik ile ayarlayabilirsiniz.
UseCompatibleTextRendering
Uyumlu olabilen yazıları bir araya toplar.
UseMnemonic
Bu özelliği True yaparak yazı da (kısayol tuşu olarak
kullanılabilen) & sembolünü kullanmanızı sağlayabilirsiniz.
Visible
Kontrolünüzün görünmesini istiyorsanız True olarak seçin
yazının
hizalamasını
Microsoft Visual Studio Ara yüzü
2009 2010
aksi durumda False olarak seçin.
TextBox
TextBox Özellikleri
Özellik
Açıklama
MultiLine
Metin kutusuna birden fazla satırda değer girilebilmesini sağlar.
False durumunda ise, metin kutusunun yüksekliği değiştirilemez
ScrollBars
Metin kutusunda kaydırma çubuklarının görünmesini kontrol
eder. Varsayılan durumda kaydırma çubuğu görüntülenmez,
ancak Horizontal, Vertical kaydırma çubukları ya da ikisi birden
gösterilebilir.
PasswordChar
Metin kutusuna parola girilecekse, girilen karakterlerin hangi
karakter olarak görüneceğini belirler.
WordWrap
Metin kutusuna girilen değerlerin, satır sonlandığında bir alt
satıra geçmesini belirtir. Eğer MultiLine özelliği False ise, alt
satırlar tanımlı olmayacağı için bu özelliğin bir etkisi görülmez.
MaxLength
Metin kutusunun alabileceği maksimum karakter sayısını
belirtir.
TextBox Olayları
TextChanged Metin kutusundaki yazı değiştiği zaman gerçekleşir.
64
Microsoft Visual Studio Ara yüzü
2009 2010
TextBox Metotları
Metot
Açıklama
Cut
Seçilen karakterleri siler, ancak hafızada tutar.
Copy
Seçilen karakterleri kopyalar.
Paste
Hafızaya alınan karakterleri metin kutusuna yapıştırır.
Clear
Metin kutundaki yazıları temizler.
SelectAll
Metin kutusundaki tüm yazıyı seçer.
SelectedText
Seçilmiş kısmı silmek veya değiştirmke için kullanılır.
Select
Select(Baslangic,Uzunluk),
seçmek için kullanılır.
Undo
Kullanıcı Ctrl+Z tuşlarına basarak en son yaptığı işlemi geri
alabilir.
CanUndo
Bu özelliği kullanarak geri alınacak bir işlemin olup olmadığını
anlayabilirsiniz.
Text
kutusu
içindeki
Label
Label kontrolü form üzerinde kullanıcıya bilgi vermek amacıyla kullanılan etikettir.
Label Özellikleri
65
Özellik
Açıklama
TextAlign
Yazının etiket üzerindeki pozisyonu belirler.
BorderStyle
Kontrolün kenar stilidir.
bölgeyi
Microsoft Visual Studio Ara yüzü
2009 2010
FixedSingle değeri, kontrolün kenar çizgilerini gösterir.
Fixed3Ddeğeri, kenarların üç boyutlu olmasını sağlar.
ImageAlign
Etiket üzerindeki resmin nerede duracağını belirler.
RightToLeft
Etiket üzerindeki yazının yönünü belirler. Eğer Yes değerini
alırsa, yazılar sağdan sola gösterilir
Label1.BorderStyle = BorderStyle.Fixed3D
Visual Studio klasörü altındaki simgeler kullanılabilir
Label1.Image = Image.FromFile("C:\Program Files\Microsoft Visual Studio .NET
2003\Common7\Graphics\icons\Flags\FLGTURK.ICO")
Label1.ImageAlign
=
ContentAlignment.MiddleRight
RightToLeft.Yes Label1.Text = "Türkçe"
Label1.RightToLeft
=
NOT Resmin bulunduğu yer kontrolün sağ tarafında bulunacak şekilde ayarlanmasına
rağmen, sol tarafta gözükür. Bu durum, RightToLeft özelliğinin Yes olarak atanmasından
kaynaklanır.
CheckBox
CheckBox Özellikleri
Özellik
Açıklama
Appearence
Görüntüsünü bu özellik ile değiştirebilirsiniz.
AutoCheck
Normalde True değerindedir ve kullanıcı Check kutusunu
tıklayarak işaretleyebilir. False yapılırsa bu özelliğini
66
Microsoft Visual Studio Ara yüzü
2009 2010
kaldırmış olursunuz ve sadece kod ile erişebilirsiniz.
CheckAlign
Check kutusunun hangi tarafta olduğunu belirlemeniz için
bu özelliği kullanacaksınız.
Checked
Check kutusunun işaretli olmasını istiyorsanız True olarak
belirlemelisiniz. Normalde False olarak atanır.
CheckState
Check kutusunun işraret durumunu belirler. Checke
özelliğini True olarak belirlerseniz, CheckState özelliğiniz
Checked olarak belirlenecektir.
TextAlign
Kontrolünüzün üstünde olan yazının hizalamasını bu özellik
ile verebilirsiniz.
RadioButton
RadioButton kontrolleri, kullanıcıya sunulan seçeneklerden sadece bir tanesinin seçilmesine
izin verir. Form üzerinde birden fazla RadioButton konulduğunda, bu kontrollerin sadece
bir tanesi seçili olabilir. Fakat bazı durumlarda, farklı seçenek grupları kullanılarak
kullanıcının birden fazla seçim yapması istenebilir. Bu durumda, bazı seçenekler GroupBox
kontrolü ile gruplanmalıdır.
Bu kontrolün özellikleri ve olayları CheckBox kontrolü ile aynıdır. Sadece bir seçenek
işaretlenebildiği için, kontrollerin yapılması CheckBox kontrolüne göre daha kolaydır.
67
Microsoft Visual Studio Ara yüzü
2009 2010
ListBox
Kullanıcıya sunulan seçeneklerin bir liste halinde görünmesini sağlar. Liste kutusundan
istenen sayıda öğe seçilebilir.
ListBox Özellikleri
Özellik
Açıklama
Items
Liste kutusuna eklenen öğelerin
nesnesidir.
SelectedItem
Liste kutusundan seçilen öğeyi alır.
SelectedItems
Liste kutusundan seçilen öğeleri alır. Seçilen öğeler dinamik
bir dizide tutulur.
SelectedIndex
Liste kutusundan seçilen öğenin indisini alır.
SelectedIndices
Liste kutusundan seçilen öğelerin indislerini bir
nesnesinde tutar.
DataSource
Listenin öğelerinin tutulduğu veri kaynağıdır. Veri kaynağı
boş
geçilirse
Itemskoleksiyonuna
eklenen
öğeler
görüntülenir.
DisplayMember
Veri kaynağından gelen öğelerin, kullanıcıya gösterilecek
özelliğidir.
ValueMember
Veri kaynağından gelen öğelerin, dönüş değerini belirleyen
özelliğidir.
SelectedValue
Seçilen öğenin, liste kutusunun ValueMember ile belirtilen
özelliğidir.
tutulduğu koleksiyon
koleksiyon
68
Microsoft Visual Studio Ara yüzü
SelectionMode
2009 2010
Liste kutusundan kaç tane öğe seçilebileceğini belirtir.
Nonedeğeri 0,
Onedeğeri 1,
MultiSimple ve MultiExtended değerleri birden fazla öğenin
seçilebileceğini belirtir.
MultiColumn
Liste
kutusundaki
öğelerin
görüntülenmesini belirler.
biden
fazla
kolonda
ListBox Olayları
Olay
Açıklama
SelectedIndexChanged
Liste kutusunda bir öğe seçildiği zaman gerçekleşir.
ListBox Metotları
Metot
Items.Add(ByVal Eleman
Object)
69
Açıklama
As Listeye eleman eklemek için bu metot kullanılır.Verilen
elemanları listenin sonuna ekler.
Items.AddRange
Bir grup elemanı tek seferde listeye eklemek için bu metot
kullanılır.
Items.Insert(No,Eleman)
Elemanı verilen yere eklemek için kullanılır.
Items.RemoveAt(No)
Numarası verilen elemanı listeden siler.
Items.Remove(Eleman)
Verilen elemanı listeden siler.
Items.Clear
Listedeki bütün elemanları siler.
Items.Count
Listedeki eleman sayısını verir.
Items(No)
Listede numarası verilen elemanın içeriğini öğrenmek veya
değiştirmek için bu metot kullanılır.
Items.IndexOf(Eleman)
Listede bir elemanı aramak için bu metot kullanılır.
Items.Contains(Eleman)
Bir elemanın listede olup olmadığını incelemek için bu
metot kullanılır.
Items.CopyTo(Dizi,No)
Listedeki elemanları bir diziye aktarmak için bu metot
kullanılır.
SelectedIndex
Listedeki seçili elmanın sıra numarasını öğrenmek için bu
Microsoft Visual Studio Ara yüzü
2009 2010
özellik kullanılır.
ClearSelected
Listedeki seçili elemanı kaldırmak için bu metot kullanılır.
FindStringExact(aranan)
Bu metot, verdiğiniz elemanı arar ve bulunduğu konumu
verir.
FindString
Parametredeki String ifadesini liste kutusunda arayarak,
bulduğu ilk öğenin indisini döndürür. FindStringExact‟tan
farkı elemanın tümünde değil bir bölümünde arama yapar.
Örneğin “Ali” kelimesini aramak istiyorsanız “Ali”, “Aliş”,
“Alihan” gibi elemanları da bulur.
GetItemText
Parametre olarak verilen nesnenin liste kutusunda gösterilen
yazısını döndürür.
GetSelected
Parametre olarak verilen indisteki öğenin seçili olup
olmadığını döndürür.
FindString
Parametredeki String ifadesini liste kutusunda arayarak,
bulduğu ilk öğenin indisini döndürür
Çok Seçimli Listeler
SelectedItems
Seçili elemanların sayısı, içeriği vb. gibi bilgileri verir.
SelectedItems.Count
Seçili eleman sayısını verir.
SelectedItems.Item(No)
Seçili elemanın içeriğini verir.
ComboBox
Liste kutusu ile aynı özelliklere sahiptir, ancak listelenen öğeler açılan bir kutuda
görüntülenir ve listeden en fazla bir tane öğe seçilebilir. Liste kutusuna göre bir başka
70
Microsoft Visual Studio Ara yüzü
2009 2010
farklılığı ise, isteğe bağlı olarak, kullanıcının açılan kutu üzerinde değer girebilmesidir.
Dolayısıyla bir TextBox kontrolü gibi de davranabilir.
ComboBox Özellikleri
Özellik
Açıklama
AutoCompleteCustomSource
Otomatik tamamlama ilgili kaynak belirlemek istiyorsanız
buradaki listeye elemanları giriniz.
AutoCompleteMode
Otomatik
tamamlama
belirleyebilirsiniz.
AutoCompleteSource
Otomatik tamamlama ilgili var olan kaynakları seçebilirsiniz.
AutoCompleteCustomSource
ile
farkı:
AutoCompleteCustomSource da kendi listenizi oluşturma
ayrıcalığı mevcuttur.
DropDownStyle
ComboBox ın tipini belirler.
i.
ii.
iii.
şekillerini
bu
özellik
ile
DropDown: Aşağı doğru açılan v eiçeriği kullanıcı
tarafından değiştirilebilen ComboBox dır.
DropDownList: Aşağı doğru açılabilen fakat
kullanıcı tarafından değiştirilemeyen ComboBox
lardır.
Simple: Aşağı doğru açılmayan fakat kullanıcı
tarafından değiştirilebilen ComboBox dır.
DropDownWith
ComboBox ile açılan kısmın genişliğini ayarlayabilirsiniz.
MaxDropDownItems
Listenizin maksimum uzunluğunu belirler.
SelectedIndex
Listede seçili olan elemanların numarası bu özellik ile
belirlenir.
ComboBox Olayları
71
Olay
Açıklama
SelectedIndexChanged
Liste kutusunda bir öğe seçildiği zaman gerçekleşir.
TextChanged
DorpDownStyle özelliği DropDown olan listeler için kullanıcın
listedeki yazıyı değiştirirken gerçekleşen bir olaydır.
Microsoft Visual Studio Ara yüzü
2009 2010
MainMenu
Type Here yazılan yere menu eklemek için kullanırız. Bunun yerine DropDownItems yerine
menuleri ekleyebilirisiniz.
MainMenu Özellikleri
Olay
Açıklama
DropDownItems
Menu eklenir
ShortCut
Kısayol eklemek için kullanılır.
ShowShortCut
ShortCut özelliğinin gösterilip gösterilemeyeceğini belirler.
Checked
True özelliği ile CheckBox özelliği kazanılır.
OpenFileDialog
OpenFileDialog Özellikleri
Özellik
Açıklama
FileName
Kullanıcının
seçtiği
öğrenebilirsiniz.
Filter
Dosya türünü belirlemek için kullanılır. “Resimler|*.gif”
MultiSelect
Birden fazla dosyayı seçmek için kullanılır.
dosyanın
adını
bu
özellikle
72
Microsoft Visual Studio Ara yüzü
2009 2010
ReadOnlyCheck
“Salt okunur aç” seçeneğinin işaretli olup olmadığını
öğrenebilirsiniz.
Title
Diyalog penceresi açılırken
InitialDirectory
Diyalog penceresi açıldığında hangi klasörü göstereceğini
belirler.
DefaultExt
Kullanıcı dosya isminde dosya uzantısını yazmaz ise bu
özellik ile belirtilen dosya uzantısı dosya adına eklenir.
CehckFileExists
True değeri atanırsa, dosya aç penceresinde yazılan
dosyanın kayıtlı olup olmadığını kontrol eder.
CheckPathExists
True değeri ile, kullanıcının
doğruluğunu kontrol edersiniz.
yazdığı
dosya
yolunun
OpenFileDialog Metotları
Olay
Açıklama
ShowDialog
Dialog penceresini açmak için kullanılır.
SaceFileDialog
OpenFileDialog ile aynı özelliklere sahip olup, dosyaları kaydetmek için kullanılır.
RichTextBox
Standart TextBox kutusunda formatlı bir giriş için uygun olmadığından bu nesne kullanılır.
RichTextBox Metotları
73
Özellik
Açıklama
SelectionFont
Seçili bölgenin fontunu ayarlamak için kullanılır.
SelectionColor
Seçili bölgenin yazı rengini ayarlamak için kullanılır.
SelectionAlignment
Seçili paragrafın hizalamak için kullanılır.
Cut, Copy, Paste
Kesme, kopyalama ve yapıştırma işlemleri için kullanılır.
CanPaste
Pano içine yapıştırılabilir bir bilgi olup olmadığını öğrenmek
için kullanılır.
Undo
Son yapılan işlemi geri almak için kullanılır.
Redo
Son geri alınan işlemi tekrar yapmak için kullanılır.
Microsoft Visual Studio Ara yüzü
2009 2010
CanUndo, CanRedo
Geri alınacak veya yinelecek bir işlem olup olmadığını
öğrenmek için kullanılır.
SaveFile(Dosya_Adı)
Dosya adı verilerek RTF formatında kayıt yapar.
LoadFile(Dosya_Adı)
RTF formatında dosyayı açmak için kullanılır.
NumericUpDown
NumericUpDown Özellikleri
Özellik
Açıklama
DecimalPlaces
Sayının ondalık kısmını belirlemek istediğimizde bu özelliği
kullanacaksınız.
Hexadecimal
Bu özelliğin True olması durumunda sayı Hexadecimal (16
tabanında) gösterilir.
Increment
Sayıların artış miktarı için kullanılacak olan bir özelliktir.
InterceptArrowKeys
Klavyedeki üst ve alt tuşların kullanılabilir olması için bu
özelliği True olarak belirlemelisiniz.
Maximum:
Sayıların üst sınırıdır.
Minimum
Sayının alabileceği en küçük değerdir.
ReadOnly
Kontrolün içine sayı girişi yapılmamasını istiyorsanız bu
özelliği True olarak değiştirmelisiniz.
ThousandsSeparator
Binlik hanelerde “.” Ayıracını koymak istiyorsanız bu özelliği
True olarak belirlemelisiniz.
74
Microsoft Visual Studio Ara yüzü
2009 2010
UpDownAlign
Yukarı ve aşağı azaltma düğmelerini bu özelliği kullanarak
sağda veya solda görünmesini sağlayabilirsiniz.
Value
NumericUpDown kontrolünün içindeki değerini bu özellik ile
öğrenebiliriz.
NumericUpDown Olayları
Olay
Açıklama
ValueChanged
NumericUpDown kontrolünün içinde değer yukarı aşağı
seçildiğinde bu olay gerçekleşir.
NumericUpDown Metodları
Olay
Açıklama
UpButton(),DownButton()
Kontrolün içindeki sayıyı kontrol ile azaltmak isterseniz bu
metodu kullanabilirsiniz.
ProgressBar
ProgressBar Özellikleri
75
Özellik
Açıklama
Mininmum
ProgressBarın alacağı minimum değerdir.
Maximum
ProgressBar ın alacağı maksimum değerdir.
Value
ProgressBar ın alacağı değerdir.
Step
Değerin hangi adımlarla artacağını belirler.
Microsoft Visual Studio Ara yüzü
2009 2010
NumericUpDown Metotları
Özellik
Açıklama
PerformStep
Step belirttikten sonra bu metot ile değeri belirtilen aralık
kadar değiştirebilirsinz.
TabControl
TabControl Özellikleri
Özellik
Değer Tipi
Açıklama
HotTrack
Boolean
Fare ile sekme sayfalarının üzerine gelindiğinde,
isimlerinin görsel olarak değişmesini belirler.
ItemSize
Size
Sekme sayfalarının büyüklüğünü belirler.
Multiline
True
Eklenen sekmelerin birden fazla satırda üst üste
gözükmesini belirler.
ShowToolTips
Boolean
Fare sekme sayfalarının üzerindeyken bilgi mesajının
gösterilmesini belirler.
SelectedTab
TabPage
Seçilen sekme sayfasını belirler.
SelectedIndex Integer
Seçilen sekme sayfasının indisini belirler.
TabCount
Integer
Sekme sayısını belirler.
TabPages
TabPageCollection Kontrolün içinde
koleksiyonudur.
bulunduğu
sekme
sayfalarının
76
Microsoft Visual Studio Ara yüzü
2009 2010
Timer
Timer Özellikleri
Özellik
Açıklama
Interval
Bu nesnenin çalışacağı zaman periyodudur.
Enabled
Normalde program çalıştığında False değerindedir. Timer ın
çalışması için True yapılmalıdır.
Timer Olayları
77
Özellik
Açıklama
Tick
Timer kontrolünün Interval özelliği ile belirtilen süre
içerisinde periyodik olarak bu olay meydana gelir. Interval
Microsoft Visual Studio Ara yüzü
2009 2010
özelliği düşük olan Timer lar için bu olay içerisinde yazılacak
kodun hızlı olması gerekir.
ErrorProvider
ErrorProvider Özellikleri
Özellik
Değer Tipi
Açıklama
BlinkRate
Integer
Hata simgesinin kaç milisaniyede bir yanıp söneceğini belirler.
BlinkStyle ErrorBlinkSytle Hata simgesinin yanıp sönme stilini belirler.
i.
ii.
iii.
Icon
Icon
AlwaysBlink, her zaman,
BlinkIfDifferentError farklı bir hata meydana
geldiğinde yanıp söneceğini belirler.
NeverBlinkise
simgenin
yanıp
sönmeden
görüntüleneceğini belirler.
Hata mesajlarının gösterilmesi sırasında çıkan simgeyi belirler.
ErrorProvider Metotları
SetError Kontrollerin hata mesajlarının belirlenmesi için kullanılır.
ErrorProvider kontrolü forma eklendiği zaman, Properties panelinde, kontrollerin ekstra
özellikleri görünür. Bu özellikler, forma eklenen her ErrorProvider için oluşturulur.
78
Microsoft Visual Studio Ara yüzü
2009 2010
Özellik
Açıklama
IconAlignment On
Hata simgesinin, kontrolün üzerinde nerde bu lunacağını
belirler.
IconPadding On
Hata simgesinin, kontrolden kaç piksel uzakta duracağını
belirler.
Error On
Varsayılan hata mesajını belirler
ImageList
Birden fazla resmi bir arada tutmak için kullanılır.
ImageList Özellikleri
Özellik
Değer Tipi
Açıklama
ImageSize
Resmin boyutunu ayarlarsınız.
Images(No)
Listenin içindeki resmileri almak için kullanılır.
PictureBox
Form üzerinde bir resim görüntülemek için kullanılır.
PictureBox Özellikleri
79
Özellik
Değer Tipi
Açıklama
Image
Image
Kontrolün resim kaynağını belirler.
Microsoft Visual Studio Ara yüzü
2009 2010
SizeMode PictureBoxSizeMode Kontrolün, resmi nasıl görüntüleyeceğini belirler.
i.
ii.
iii.
iv.
AutoSizedeğeri, kontrolün büyüklüğünü resmin
büyüklüğüne göre ayarlar.
CenterImagedeğeri, resmi kontrolün ortasına
gelecek şekilde ayarlar.
Normaldeğeri, kontrolün sol üst köşesine göre
konumlandırır.
StretchImagedeğeri,
resmi
kontrolün
büyüklüğüne göre boyutlandırır ve resmin tam
görünmesini sağlar.
DateTimePicker
Bir açılan kutudan zaman değeri seçmeyi sağlar. Seçilen değer Date tipinde olur.
DateTimePicker Özellikleri
Özellik
Değer Tipi
Açıklama
CalendarTrailing
ForeColor
Color
Bir önceki ve bir sonraki ayın günlerinin görüntülenme
rengidir.
CalendarTitle
ForeColor
Color
Takvim başlığının ön plan rengidir.
CalendarTitle
BackColor
Color
Takvim başlığının arka plan rengidir.
CalendarMonth
Background
Color
Takvim arka plan rengidir.
80
Microsoft Visual Studio Ara yüzü
2009 2010
CalendarForeColor Color
Takvimdeki yazıların ön plan rengidir.
CalendarFont
Font
Takvimin gösterileceği yazı tipi ayarlarıdır.
ShowCheckBox
Boolean
Tarih değerinin yanında seçme kutusunun gösterilmesi.
Checked
Boolean
Seçme kutusu görüntülendiği zaman, tarihin seçili olup
olmadığını gösterir
Format
Kontrolün görüntüleneceği formatı belirler. Long,
Shortdeğerleri uzun ve kısa tarih formatını, Time sadece
PickerFormat zamanı gösterir. Custom değeri, CustomFormat
özelliğine girilen formatta gösterileceğini belirler.
DateTime
CustomFormat
String
Tarihin hangi formatta gösterileceğini belirler.
Value
Date
Seçilen tarih değerini belirler.
MaxDate
Date
Kontrolün alabileceği maksimum tarih değeridir.
MinDate
Date
Kontrolün alabileceği minimum tarih değeridir.
Boolean
Kontrolün formunu açılan kutu ya da yukarı aşağı okları
formatında gösterir. Bu özellik True olduğunda,
kontrolün
formatı,
NumericUpDown
kontrolünün
formatında olur.
ShowUpDown
DateTimePicker Metotları
ToOADate:Tarih bilgisini Double türünden bir sayıya çevirir.
ToShortDateString: Tarihi kısa formatta stringe dönüştürür.
ToLongTimeString: Zamanı uzun formda stringe dönüştürür.
81
Microsoft Visual Studio Ara yüzü
Konu 4.
2009 2010
Hazır Fonksiyonlar
I. Yazı işlemleri
Trim
Yazının başındaki ve sonundaki boşlukları atmak:
Label1.Text = Trim(" BilgeAdam ") ' Sonuç: BilgeAdam
LCase
Tüm yazıyı küçük harfe çevirmek:
Label1.Text = LCase("BILGEAdam") ' Sonuç: bilgeadam
UCase
Tüm yazıyı büyük harfe çevirmek:
Label1.Text = UCase("bilgeADAM") ' Sonuç: BİLGEADAM
Mid
Yazının belirli bir bölümünü almak. İkinci parametrede verilen pozisyondan başlayarak,
üçüncü parametredeki değer kadar karakter alınır:
Label1.Text = Mid("BilgeAdam", 6, 4) ' Sonuç: Adam
Replace
[Kaçıncı_Harften],[Kaç_Tane],[Nasıl])”
“Replace(Neyin_İçinde,Neyi,Ne_İle,
Stringin içindeki bir ifadeyi değiştirmek istediğimizde kullanırız.
Replace(“Arzu Erdem”,”Arzu”,”Melike”) „ Sonuç: Melike Erdem
Space “Space(Sayı)”
Verilen sayıda boşluk oluşturur.
Msgbox(“Hoşçakal” & Space(25) & & “Bye” & Space(25) & “Tschüs”)
82
Microsoft Visual Studio Ara yüzü
2009 2010
II. Karakter işlemleri
Char.IsLetter
Karakterin alfabetik olup olmadığını öğrenmek için kullanılır.
CharIsDigit
Karakterin 09 arasında bir rakam olup olmadığını öğrenmek için kullanılır.
CharIsNumber
Karakterin sadece bir rakam değil ½, 1/5 gibi bir sayı olup olmadığını öğrenmek için
kullanılır.
CharIsLower
Karakterin küçük harf olup olmadığını kontrol eder.
CharIsUpper
Karakterin büyük harf olup olmadığını kontrol eder.
CharIsSymbol
Karakterin bir sembol olup olmadığını kontrol eder.
Aşağıdaki program ad girişinde harf kontrolü yapmaktadır. Eğer harf girişi yok ise
program uyarı vericek
Dim adim As String, i As Byte, c As Char
adim = InputBox("Adınızı giriniz", "Ad girişi")
For i = 0 To adim.Length 1
c = adim.Chars(i)
If Not Char.IsLetter(c) Then
MsgBox("Lütfen harf giriniz", MsgBoxStyle.Critical)
Exit For
Else
If i = adim.Length 1 Then
MsgBox("Adınız..." & adim)
End If
End If
Next
GetChar
Yazının parametrede belirtilen sıradaki karakteri almak:
83
Microsoft Visual Studio Ara yüzü
2009 2010
Label1.Text = GetChar("BilgeAdam",9) ' Sonuç: m
III.
Sayı işlemleri
Rnd
Rasgele sayı üretmek
' Maximimum 400 değerini alan bir sayı üretir
Rnd() * 400
değer üretmek için, Rnd fonksiyonundan önce Randomize fonksiyonunun
gerekir:
çağırılması
Randomize() Rnd() * 400
0 ile 1 arasında rasgele sayı üretir.
Rnd
20 ile 50 arasında sayı üretir.
Rnd*30+20
IsNumeric
Parametrede verilen bir değerin sayı olup olmadığını kontrol etmek. Geriye dönen değer
True ya da False mantıksal değeridir:
IsNumeric(TextBox1.Text)
IV.
Sayı işlemleri
Rnd
Rasgele sayı üretmek
' Maximimum 400 değerini alan bir sayı üretir
Rnd() * 400
değer üretmek için, Rnd fonksiyonundan önce Randomize fonksiyonunun
gerekir:
çağırılması
Randomize() Rnd() * 400
0 ile 1 arasında rasgele sayı üretir.
Rnd
84
Microsoft Visual Studio Ara yüzü
2009 2010
20 ile 50 arasında sayı üretir.
Rnd*30+20
IsNumeric
Parametrede verilen bir değerin sayı olup olmadığını kontrol etmek. Geriye dönen değer
True ya da False mantıksal değeridir:
IsNumeric(TextBox1.Text)
Konu 5.
InputBox
InputBox, kullanıcının veri girmesi için açılan bir mesaj kutusudur. Formlarda TextBox
kontrolüne ihtiyaç duymadan veri almayı sağlar (Resim 4.15).
InputBox("Bir sayı giriniz: ", "Sayı Girişi", 1, 350, 350)
Prompt InputBox metodunun ilk parametresi, mesaj kutusunun gövdesinde gözükecek
yazıdır .
Diğer tüm parametreler isteğe bağlıdır.
Title(Başlık). Mesaj kutusunun başlığıdır
DefaultResponse (Varsayılan cevap). Kullanıcı veri girmediğinde varsayılan değerdir.
XPos(X pozisyonu). Mesaj kutusunun sol kenarının, ekranın sol kenarına olan uzaklığıdır.
YPos(Y pozisyonu). Mesaj kutusunun üst kenarının, ekranın üst kenarına olan uzaklığıdır.
Private Sub Button1_Click(ByVal sender
System.EventArgs) Handles Button1.Click
As
System.Object,
ByVal
ListBox1.Items.Add(InputBox("İsim soyad giriniz:", "Bilgi Girişi", "Bilinmiyor"))
End Sub
85
e
As
Microsoft Visual Studio Ara yüzü
Konu 6.
2009 2010
MessageBox
MessageBox, kullanıcıya bilgi göstermek için açılan mesaj kutusudur. Bu mesaj kutusu dört
öğeden oluşur (Resim 4.16).
Text(Yazı). Mesaj kutusunda verilmek istenen bilgiyi tutan yazıdır.
Caption(Başlık). Mesaj kutusunun başlığıdır.
Buttons (Düğmeler). Mesaj kutusunda hangi düğmelerin gösterileceğini belirler.
Icon (Simge). Mesaj kutusunda gösterilecek olan simgeyi ve açıldığı zaman çıkartılacak
sesi belirler.
MessageBox.Show("Devam
etmek
istiyor
MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
musunuz?",
"Uyarı",
Mesaj kutusu, kapanırken hangi düğmenin tıklandığını DialogResult nesnesi ile programcıya
bildirir.
NOT MsgBoxhazır fonksiyonu MessageBox.Show metodu ile aynı işleve sahiptir.
86
Microsoft Visual Studio Ara yüzü
2009 2010
Konu 7.
Değişken – Sabit Nedir? Değişkenlerin ve
Sabitlerin Tanımlanması
I. Değişken Nedir, Nasıl Tanımlanır?
Program yazarken, bazı verilerin daha sonra kullanılmak üzere bir yerde tutulması
gerekebilir. Örneğin, bir hesaplama yapılırken, önceden hesaplanmış verilerin kullanılması
istenirse, bu verileri tekrar hesaplamak yerine hafızada tutmak performansı artırır. Veya
veritabanından alınan bir kullanıcı isminin hafızada tutulması, bu değer her istendiğinde
veritabanına bağlanıp alınmasına tercih edilmelidir. Verilerin bu şekilde hafızada tutulması
değişkenlerle sağlanır.
Değişkenler farklı türlerde verileri tuttukları için, farklı tiplere sahip olabilir. Bir negatif
veya pozitif sayıyı tutan değişken ile yazı tutan bir değişken farklı tiplere sahiptir.
Değişkenler Dim anahtar kelimesi ile tanımlanır.
Dim sayi
NOT Dim sözcüğü, “boyut” anlamına gelen Dimension kelimesinin kısaltmasıdır.
Bu şekilde tanımlanan değişkenler Object (nesne) tipindedir, yani her türden veriyi
tutabilirler. Nesne tipindeki değişkenler, tanımlanmalarının kolay olması ve istenen tipte
değer tutabilmeleri açısından avantajlı olsa da, performansı önemli ölçüde düşürürler.
Tuttukları değerlerin tipleri biliniyorsa, değişkenleri tanımlarken tiplerini belirlemek
gerekir.
87
Microsoft Visual Studio Ara yüzü
2009 2010
Sayısal Tipler: Byte, Short, Integer, Long, Single, Double, Decimal
String Tipler: String, Char
Mantısal Tipler: Boolen
Tarih Tipi: Date
Tanımlama Kuralları
Boşluk, nokta, soru işareti, noktalı virgül, çift tırnak, tek tırnak, aritmetik operatörler,
karşılaştırma operatörleri ve atama operatörleri ile parantezler kullanılamaz.
Dim Ad1  Doğru
Dim 1Ad  Yanlış
Dim Ad_Soyad  Doğru
Dim Ad ve Soyad  Yanlış
Dim AdSoyad  Yanlış
Dim Ad_Soyad  Doğru
Değişken ismi 255 karakterden fazla olmamalıdır.
Dim x,y,z as Integer, t,k as String
Değişkenlerin tanımlanmadan kullanılması için Option Explicit seçeneğinin kapalı olması
gerekir. Option Explicit seçeneğini projenin özelliklerindeki Build sekmesinden
değiştirilebileceği gibi, kod sayfalarının en üstünde de değiştirilebilir.
88
Microsoft Visual Studio Ara yüzü
2009 2010
Option Explicit seçeneğinin On olması, tanımlanmamış değişkenlerin kullanılmasına izin
vermez, tasarım anında hata üreterek programcıya bildirir. Varsayılan durumda Ondeğeri
seçilidir.
II. Sayısal Tipler
Byte: 1 Baytlık 0 ile 255 arasında değer alır.
Short: 2 Baytlık 32.768 ile 32.767 arasında değer alır.
Integer: 4 Baytlık 2.147.483.648 ile 2.147.483.647 arasında değer alır.
Long: 4 Baytlık 9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değer
alır.
Single: 4 Baytlık  3.402823  10 38 ile  1.401298  10 45 arasında değer alır.
Double: 8 Baytlık  1.79769313486232  10 308 ile  4.94065645841247  10 324 arasında
değer alır.
Decimal: 14 Baytlıktır ve 29 basamağı tüm dijitleri koruyarak tutabilir.
Sayısal hesaplamalarda hassasiyet için Decimal kullanmanızı öneririz.
Sınır aşımlarına dikkat
Val(String): Text kutularında sayı olup olmadığını anlamak için IsNumeric komutunu
kullanmak kodunuzu uzatabilir. Böyle bir durumda hatalı veri girişini engellemek için bu
komutu kullanırız.
Val fonksiyonu ondalık ayıracı olarak nokta işaretini kabul eder. Eğer ondalık ayıracı
kullanmak istiyorsanız Val yerine Cdec fonksiyonunu tercih etmelisiniz.
Sayıların Yuvarlanması
\ Operatörü  Sonucu tamsayı gösterir. Virgülden sonrasını yuvarlama yapmaksızın atar.
Int(sayı) Kendinden düşük olan sayıya tam sayı olarak yuvarlar. Tam değer gibi
düşünebilirsiniz.
89
Microsoft Visual Studio Ara yüzü
2009 2010
Fix(sayı) Int(sayı) dan farkı sadece virgülü atar.
Math.Round Diğerlerinden farkı istediğiniz ondalığa kadar gösterme ve yuvarlama
işlemini yapar.
Sayıları Biçimlendirme
Format: Format(sayı,”##,## TL”)
III.
Char ve String Tipi
Char: Sadece 1 karakter barındırır.
String: Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilir.
Length: String‟in uzunluğunu verir.
Dim str As String = "Ali Gel"
MsgBox(str.Length)
Chars: Chars(k) Stringin k. Harfini verir.
BüyükKüçük Harfe Çevirme
ToLower: Küçük harfe çevirir.
Label1.Text.ToLower
ToUpper: Büyük harfe çeirir.
Label1.Text.ToUpper
String Karşılaştırma
String.Compare(String1,String2) karşılaştırma harfin öncelik sırasına göre yapılır. Eşitse
0 değerini alır, string in baş harfi diğerinden önce geliyorsa büyüktür ve pozitif bir sayı alır
aksi durumda negatif değer alır.
String.Compare(TextBox1.Text, TextBox2.Text)
String.Compare(String1,String2,Ayırım yapılmasın mı?) İki String arasında karşılaştırma
yaparken harfin büyük ve küçük ayrımı yapılmasını istemiyorsanız Ayırım yapılmasın
mı?yerine True yazınız…
String.Compare(TextBox1.Text, TextBox2.Text, True)
BoşlukKarakter Atma
TrimStart: Stringin başındaki boşlukları atar.
TextBox2.Text = TextBox1.Text.TrimStart
90
Microsoft Visual Studio Ara yüzü
2009 2010
TrimEnd: Stringin sonundan boşlukları atar.
TextBox2.Text = TextBox1.Text. TrimEnd
Trim: Stringin her iki tarafından boşlukları atar.
TextBox2.Text = TextBox1.Text.Trim
String Parçalama
SubString(Başlangıç, Uzunluk) MsgBox(“Erzurum”.SubString(2,4))zuru
Split
Dim S() As String
S=”Arzu Erdem”.Split(“”) S(0)=Arzu, S(1)=Erdem
UBound Stringin kaç parçaya ayrıldığını öğrenebilirsiniz.
UBound(S)  1 (Yukarıdaki örnek için)
String Arama
IndexOf, LastIndexOf
IndexOf(Aranan_String, Kaçıncı_Harften(, Kaç_Harf)) Aramayı baştan yapar
Dim str As String
str = "Arzu Erdem"
MsgBox(str.IndexOf("r", 2))
MsgBox(str.IndexOf("r", 0))
MsgBox(str.IndexOf("r", 2, 4))
.
LastIndexOf(Aranan_String, Kaçıncı_Harften, Kaç_Harf) Aramayı sondan yapar
String Birleştirme
Concat “Concat(String1, String2, …, StringN)”
Concat(String1, String2, …, StringN) = String1 & String2 & … & StringN = String1 + String2 +
… + StringN
String.Concat(TextBox1.Text, TextBox2.Text)
TextBox1.Text&TextBox2.Text
TextBox1.Text+TextBox2.Text
91
Microsoft Visual Studio Ara yüzü
2009 2010
Join “Join(Birleştirici_String,String Dizisi)”
Bir grub stringin arasına bir karakter koyarak birleştirmek için kullanılır.
Dim str() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I"}
MsgBox(String.Join(", ", str))
Insert “Insert (Kacinci_Harften, String)”
Bir stringin içine başka bir stringi eklemek için kullanılır.
Dim str As String = "Ali Gel"
MsgBox(str.Insert(4, "Okula "))
String Değitirme ve Silme
Replace “Replace(Aranan_Metin, Yerine_Yazilacak_Metin)”
Bir stringin içinde geçen metni başka bir metin ile değiştirmek için bu metod kullanılır.
Dim str As String = "Ali Gel"
MsgBox(str.Replace("Gel", "Gelme"))
Remove “Remove(Kacinic_Harften, Kac_tane)”
Bir stringin içinde geçen metni silmek için bu metod kullanılır.
Dim str As String = "Ali Okula Gel"
MsgBox(str.Remove(4, 6))
String Formatlama
PadLeft, PadRight
PadRight(adet,karakter) Sağa karakter ekleme,
PadLeft(adet,karakter) Sola karakter ekleme
Dim str As String = "Ali Okula Gel"
MsgBox(str.PadRight(20, "."))
Format
String.Format(“Formatlanicak_bicim”)
Dim ad, yer As String, tarih As Date
ad = "Arzu"
yer = "İzmit"
92
Microsoft Visual Studio Ara yüzü
2009 2010
tarih = Today
MsgBox(String.Format("{0}, {1} tarihinde, {2}'te Vbasic dersi veriyor... ", ad, tarih,
yer))
RSet, LSet
RSet(String, Uzunluk) Sağa hizalama,
LSet(String, Uzunluk) Sola hizalama
Dim str As String = "Ali Okula Gel"
TextBox1.Text = LSet(str, 20)
IV.
Global ve Local Değişkenler
Dim ile tanımlanan değişken bir prosedür veya bir fonksiyonun içinde tanımlanmış ise
Local, dışında tanımlanmış ise Global olarak adlandırılır.
Bir değişken Public Shared ile tanımlanıyorsa tüm formlarda ve tüm modüllerde
kullanılabilir.
Bir değişkeni programın her tarafında kullanacak şekilde tanımlamak için bir Modülün
içinde Public deyimi ile kullanmak gerekir.
Değişkenlere değer atamayı aşağıdaki şekillerde yapabilirsiniz:
Dim a=1, b=2
Dim a,b
a=1
b=2
Dim a as integer=1, b as integer=2
V. Static Değişken Tanımı
Local olarak tanımlanan bir değişkenin , tanımladığı altprogram veya fonksiyonun çalışması
bittikten sonra değerinin korunması isteniyorsa Dim yerine Static deyimi kullanılır. Static
değişkenlere değer atama aşağıdaki şekilde yapılır.
Static a=1
Static a „ Yanlis kullanim…
93
Microsoft Visual Studio Ara yüzü
2009 2010
a=1
VI.
Sabit Tanımlama
Const Sabit_Ismi=Degeri (Const pi=3.1415)
Konu 8.
Operatörler
I. Aritmetiksel Mantıksal Operatörler
Bu operatörler aritmetik işlemlerinde, sayılarla veya sayı tutan ifadelerle kullanılır.
Özellik
Değer Tipi Açıklama
=
Eşittir
*
Çarpma
/
Bölme
\
Tam Bölme
+
Toplama
Çıkarma
^
Üs Alma
Mod
Bölmede kalan
Not
Değil
And
Ve
Or
Veya
XOr
Verilen koşulların farklarını kıyaslar
94
Microsoft Visual Studio Ara yüzü
2009 2010
TABLO: And Operatörü
Koşul 1
Koşul 2
Koşul 1 AndKoşul 2
True
True
True
True
False
False
False
True
False
False
False
False
TABLO : Or Operatörü
Koşul 1
Koşul 2
Koşul 1 Or Koşul 2
True
True
True
True
False
True
False
True
True
False
False
False
TABLO: XOr Operatörü
Koşul
1
Koşul 2
Koşul 1 XOrKoşul 2
True
True
False
True
False
True
False
True
True
False
False
False
II. Karşılaştırma Operatörleri
Bu operatörler veri tiplerini birbirleriyle karşılaştırmak için kullanılır. Bu operatörler ile
yapılan işlemlerin sonucunda True ya da False değeri döner. Karşılaştırma operatörleri
yalnızca sayı tipleri üzerinde yapılmaz. String tipleri birbirleriyle alfabetik sıraya göre
karşılaştırılabilir.
95
Özellik
Değer Tipi Açıklama
<>
Eşit Değil
Microsoft Visual Studio Ara yüzü
>
Büyük
<
Küçük
>=
Büyük eşit
<=
Küçük Eşit
III.
2009 2010
Matematiksel İşlemler
Özellik
Değer Tipi Açıklama
Math.Max(Sayı1,Sayı2)
Maksimum
Math.Min(Sayı1,Sayı2)
Minimum
Math.Abs(Sayı)
Mutlak değer
Math.Sign(Sayı)
Signum fonksiyonu
Math.Floor(Sayı)
Yukarıya yuvarlama
Math.Ceiling(Sayı)
Aşağı yuvarlama
Math.Round(Sayı)
En yakın tamsayıya çevirir.
Math.Round(Sayı,Basamak)
Virgülden sonra kaç basamağa kadar yuvarlatılacağını verir.
Math.Log10(Sayı)
10 tabanında logaritma
Math.Log(Sayı)
e tabanında logaritma
Math.Log(Sayı,Taban)
Belirtilen tabanda logaritma
Math.Pow(sayı,üs)
Sayının üssünü alır
Math.Exp(sayı)
Exponansiyel kuvvetini alır
Math.Sqrt(Sayı)
Sayının karekökünü alır
Math.Sin(sayi)
Sayının sinüsünü alır
Math.Cos(Sayı)
Sayının Cosünüsünü alır
Math.Tan(Sayı)
Sayının Tanjantını alır
Math.Acos(Sayı)
Sayının arccos unu hesaplar.
Math.Asin(Sayı)
Sayının arcsin unu hesaplar
Math.Atan(Sayı)
Sayının arctan ını hesaplar
96
Microsoft Visual Studio Ara yüzü
IV.
2009 2010
Kısaltılmış Atama Operatörleri
x=x+y
ifadesi yerine
x+=y
kullanabiliriz. Buna göre kısaltabileceğimiz diğer operatörler şöyledir:
^=
*=
\=
Konu 9.
+=
=
&=
Dizilerle Çalışmak
I. Dizi Tanımlama
Dim isimler(3) As String
Diziler tanımlanırken, ismi verildikten sonra parantez içinde kaç eleman içereceğini
belirtmek gerekir. Dizilerin indisleri sıfırdan başlar. Örnekteki isimler dizisinin String
tipinde 4 tane elemanı vardır.
Dizilerin elemanlarına ulaşmak için, istenen elemanın indisinin verilmesi gerekir.
isimler(0) = "Ali" isimler(1) = "Ahmet" isimler(2) = "Mehmet" isimler(3) = "Ayşe"
MsgBox(isimler(3))
Dizilere tek tek değer atanabildiği gibi, tanımlarken de başlangıç değerleri atanabilir.
97
Microsoft Visual Studio Ara yüzü
2009 2010
Dim isimler() As String = {"Ali","Ahmet","Mehmet","Ayşe"}
Diziler tek boyutlu olduğu gibi, birkaç boyutlu diziler de tanımlanabilir.
Dim x(10,25)
II. Dinamik Dizi Tanımlama
Programda tanımlanacak dizinin boyutu her zaman belli olmayabilir. Örneğin bir üye takip
programı yapacaksınız. Üyeler ile ilgili bilgilerin hafızada tutulması gerekebilir. Bu program
örneğin Türkiye genelinde kullanılacaksa yüz binlerle ifade edilir ama küçük bir sitede
uygulayacaksanız yüzlerle ifade edebilirsiniz. Boyutu 500 gibi bir değerde tutarsak,
program 500 den fazla üyenin bulunduğu bir sitede çalışmayacaktır. 500000 gibi bir rakam
yazarsak sorun çözülecektir. Ancak bu kadar boyut ayırdığımızda bu kadar boyutun
tamamını kullanamayabiliriz. Bu durumda hem programa yer kaplatmış oluruz hem de
programı yavaşlatmış oluruz. İşte böyle durumlarda diziyi static deyimi yerine ReDim
deyimi ile tanımlayabiliriz.
ReDim [Preserve] degisken_ismi (dizi_boyutu)
Burada Preserve kullanılmazsa dizi içindeki elemanlar kaybolur.
Dim degisken_ismi () As tipi
Parantez içerisinde dizi boyutları verilmemiştir. Daha sonra dizinin boyutu ReDim ile
yeniden tanımlanır.
(3,0) boyutlu olan bir dizi, ' değerlerini koruyarak (3,1) boyutlu yapılır
Dim dizi(,) As Double = {{1.0},{2.0},{3.0},{4.0}}
ReDim Preserve dizi(3, 1)
III.
Diziler Üzerinde Yapılan İşlemler
Array.Sort(Dizi) Diziyi sıralar
Array.BinarySearch (Dizi, Aranan)  Sıralı dizide arama yapar
Array.IndexOf (Dizi, Aranan)  Sıralı olmayan dizide de arama yapar
Array.Reverse(Dizi)
Diziyi
ters
çevirir…
98
Karar Yapıları ve Döngüler
2009 2010
Bölüm 7. Karar Yapıları ve Döngüler
Karar yapıları ve döngüler, algoritmaların akışını yönlendirir. If ve Select Case karar
yapıları ile gerekli kontroller yapılarak, uygulama istenen şekilde yönlendirilir. Döngüler
ile, belli bir yol izelenerek birçok kez tekrarlanacak işlemler bir defa yazılır. Bu işlem,
döngü sonlanana kadar gerçekleştirilir.
Bu modül tamamlandıktan sonra:
yapısının ve döngünün nerede kullanılacağını öğreneceksiniz.
Konu 1.
99
Karar Yapıları
Karar Yapıları ve Döngüler
2009 2010
I. If
If karar yapısı, bir koşul sağlandığı zaman yapılacak işlemleri kapsar. Kontrol edilecek koşul
ifadesinin sonucu True değerini alırsa, If EndIf bloğu arasındaki kodlar çalıştırılır.
If Şart Then
Komutlar
ElseIf Şart
Komutlar
ElseIf Şart
Komutlar
…
Else
Komutlar
End If
If Şart then
Komutlar
End If
Tek şartımız varsa End If kullanmayabiliriz
If Şart Then Komutlar Else Komutlar
100
Karar Yapıları ve Döngüler
2009 2010
If Şart Then Komutlar
II. Select Case
Bir değişkenin aldığı bir çok değere göre farklı komutların çalıştırılması gereken durumlar
için If yapısını kullanmak yerine Select Case yapısını kullanmak daha avantajlıdır.
Select Case Değişken
Case Durum 1:
Komutlar
Case Durum2, Durum3:
Komutlar
Case Durum4 to Durum7:
Komutlar
Case is <Durum8:
Komutlar
Case is >Durum9:
Komutlar
…
Case DurumN:
Komutlar
Case Else
Komutlar
End Select
Konu 2.
101
Döngüler
Karar Yapıları ve Döngüler
2009 2010
I. For Next
For Sayac=Baslangic_Degeri To Bitis_Degeri Step Artim
Komutlar
Next
DİKKAT Döngüler içinde dizi kullanılırken, sayaç sıfırdan başlamışsa döngünün biteceği
nokta “dizi uzunluğu 1” olmalıdır.
DİKKAT Değişken tanımlamaları For döngüsünün içinde de yapılabilir. Bu durumda,
değişkenin kapsam alanı bu döngüyle sınırlı kalır.
For Döngülerinin İç İçe Kullanımı:
For ….
….
For
…
Next
Next
102
Karar Yapıları ve Döngüler
2009 2010
II. While End While ve Do whileLoop
Bir döngünün kaç defa çalışacağı biliniyorsa ForNext döngüsü tercih edilir ancak
bilinmiyorsa While döngüleri kullanılır. Bu iki döngünün de çalışma mantığı aynıdır.
While Şart
Komutlar
End While
Do While Şart
Komutlar
Loop
III.
Döngü Kontrol İfadeleri
Exit Do
Loop ve While döngülerinden birinde bazı şartların gerçekleşmesi durumunda döngüden
çıkmak için kullanılır.
Exit For
ForNext döngüsü tamamlanmadan, bazı şartlar gerçekleştiğinde döngüden çıkmak için
kullanılır.
Exit SubExit Function
Prosedür sonuna ulaşmadan prosedürden çıkmak için kullanılır.
103
Karar Yapıları ve Döngüler
2009 2010
End
Programı sona erdir.
WithEnd With
Bir kontrole ait bir özellik değiştirmek istendiğinde veya bir metod çağrıldığında kısayol
olarak ulaşmak için kullanılır.
With kontrol_adı
.Özellik=Değer
.Özellik=Değer
…
End With
Konu 3.
Hata Yakalama
Örneğin InputBox metodu ile bir sayının alınması sırasında, kullanıcı String tipinde bir değer
girerse çalışma zamanında bir hata oluşur.
104
Karar Yapıları ve Döngüler
2009 2010
Dim dizi(10) As Integer
For i As Integer = 0 To dizi.Length Label1.Text &= dizi(i)
Next
Resim ‟deki hata mesajı, dizinin büyüklüğünün dışında bir indis verildiğini belirtir. Visual
Basic .NET dilinde uygulama geliştirirken oluşabilecek tüm hatalar .NET Framework
altındaki Exception sınıfları halinde tanımlanır. Örneğin dizinin büyüklüğünden farklı bir
indis verildiğinde IndexOutOfRangeException hatası ortaya çıkar. Tüm hatalar gibi bu hata
da Exception taban sınıfından türetilmiştir.
I. Try Catch Finally
105
Karar Yapıları ve Döngüler
2009 2010
Try
Komutlar
Catch
Komutlar
End Try
Çalışma zamanında ortaya çıkan hatalar uygulamanın beklenmedik bir şekilde sonlanmasına
neden olur. Uygulamanın devam etmesi için bu hataların yakalanıp işlenmesi gerekir. Try
Catch Finally blokları içinde, çalışma zaman hataları meydana geldiği durumlarda çalışması
istenen kodlar yazılır. Try bloğu içine, çalışırken hata üretebilecek kodlar yazılırken, Catch
bloğu içine, hata oluştuğunda yapılması gereken işlemler yazılır.
Dim sayi As Byte Dim sonuc As Integer Try
sayi = Rnd() * 3
sonuc = 100 / sayi
MsgBox("Bölme işlemi başarılı, sonuç: ” & sonuc)
Catch ex As Exception
MsgBox("Bölme işlemi başarısız. Hata Mesajı: " & ex.Message)
End Try
Bu örnekte üretilen rasgele bir sayı ile bölme işlemi yapılıyor. Sayı sıfır değerini aldığında,
bölme işlemi hata üretir. Dolayısıyla bu işlem Try bloğu içine yazılmalıdır. Catch bloğunda,
işlemin başarısız olduğunu belirten bir mesaj yazılır. Exception nesnesinin Message özelliği,
hatanın oluştuğu zaman üretilen mesajı tutar. Exception nesnesinin özellikleri Catch içinde
kullanılmayacaksa,
tanımlanmasına
gerek
yoktur.
106
Fonksiyonlar ve Altprogramlar
2009 2010
Bölüm 8. Fonksiyonlar ve
Altprogramlar (Yordamlar)
Uygulama geliştirirken, bir işlemin birçok yerde kullanıldığı zamanlar olur. Bu gibi
durumlarda bir kere yazılan kodlar, farklı yerlerde tekrar yazılır. Uygulama üzerinde bir
değişiklik yapılmak istenirse, tekrar yazılan kodların tek tek bulunup değiştirilmesi gerekir.
Böylece hem uygulamanın yazımı zorlaşır, hem de değişik yapmak giderek imkânsız hale
gelir. Bu problemler, birçok yerde yapılması istenen işlemlerin fonksiyonlar ve yordamlar
içinde yazılması ile çözülür. Sadece fonksiyon ve yordamların isimleri kullanılarak, istenen
yerlerde kodlar çalıştırılır.
Yapılan işlemin sonucunda oluşan değer isteniyorsa fonksiyonlar kullanılır. Örneğin,
veritabanına yeni bir kullanıcı ekledikten sonra, kullanıcının ID numarası isteniyorsa
fonksiyon kullanılmalıdır. Eğer yapılan işlemlerin sonunda bir değer döndürülmüyorsa
yordamlar kullanılır. Örneğin bir ComboBox kontrolüne öğe ekleme işlemi yordam içine
yazılabilir.
.NET çatısındaki nesnelerin birçok fonksiyon ve yordamları vardır. Tüm fonksiyon ve
yordamların kaç parametre aldığı, geriye dönüş değerinin ne olduğu, hangi nesneye ait
oldukları ezberlenemez. Dolayısıyla Visual Studio yardımının kullanılması kaçınılmazdır.
Bu modül tamamlandıktan sonra;
rak kodlarınızın yönetilebilirliğini ve esnekliğini artıracak,
107
Fonksiyonlar ve Altprogramlar (Yordamlar)
2009 2010
I. Sub
Sub yordamları dönüş değeri olmayan kod bloklarıdır. Bu kodlar Sub ve End Sub ifadeleri
arasına yazılır.
Sub YordamIsmi([Giriş_Parametreleri[As Tipi]])
End Sub
Uygulama içinde birçok yerde çalışacak olan kodlar Sub yordamı içinde yazılır. Bu kodlar,
içine yazıldıkları yordamın ismi ile çağırılarak, istenen yerde tekrar çalıştırılabilir. Örneğin,
bir uygulama başlarken form üzerindeki kontrollerin temizlenmesi gerekiyorsa, bu kodları
bir daha yazmamak için yordam kullanılabilir.
II. Parametre Kullanımı
Yordamların bazı değerlere göre farklı işlem yapması istenebilir. İşlemin bağlıolduğu bu
değerlere parametre veya argüman denir. Yordamlar parametre alacak şekilde tanımlanıp,
çağırıldıkları sırada istedikleri parametreler verilerek kullanılır.
Sub YordamIsmi(Parametre1 As VeriTipi, Parametre2 As VeriTipi, …)
End Sub
108
Fonksiyonlar ve Altprogramlar
2009 2010
Örneğin, uygulamanın birçok yerinde kullanıcıya bilgi vermek amaçlı mesaj kutuları
kullanılır. Eğer bu mesajlar bir yordam içine yazılırsa, daha sonra mesajlar bir Label
üzerinde gösterilecek şekilde kodu değiştirmek kolay olacaktır. Yordamın göstereceği
mesajların parametre olarak verilmesi gerekir.
Optinal Parametre kullanımı
Public Function f(x,y,Optinal t=3, Optinal k=5)
F(5,4) x=5, y=t, t=3, k=5
F(5,4,2) x=5, y=4, t=2, k=5
F(5,4,2,3) x=5, y=4, t=2, k=3
F(5,4,,2) x=5, y=4, t=3, k=2
III.
Function
Fonksiyonlar bir işlem yaptıktan sonra geriye değer döndürürler. Örneğin, bir çarpma
fonksiyonunun dönüş değeri, parametre olarak verilen iki sayının çarpımıolacaktır.
Fonksiyonların tanımları değişkenler gibidir.
Function Fonksiyon(ByVal Param1 As VeriTipi, ...) As DönüşVeriTipi
End Function
Fonksiyonların geriye dönüş değerleri Return ifadesi ile ya da fonksiyonun ismi verilerek
yapılır.
109
Fonksiyonlar ve Altprogramlar (Yordamlar)
IV.
Parametre
ParamArray
sayısı
belli
olmayan
2009 2010
prosedür
yazma
Yordamları ve fonksiyonları çağırırken parametrelerin mutlaka girilmesi gerekir. Ancak bazı
durumlarda yordamlara ve fonksiyonlara girilecek parametrelerin sayısı tasarım zamanında
belli olmaz. ParamArray anahtar kelimesi ile yordamlara, aynı veri tipinde bir parametre
dizisi verilebilir. ParamArray ile verilen dizi, yordamın son parametresi olarak
tanımlanmalıdır.
Function(Sub) Fonksiyon(Yordam)Adı(ParamArray degisken As Tipi) As Tipi
V. Fonksiyonların ve Yordamların Aşırı Yüklenmesi
Fonksiyon ve yordamları kullanırken, aynı isimde birden fazla kez tanımlanabildikleri
görülür. Buna Aşırı Yükleme (OverLoad) denir. Bir yordamın ve fonksiyonun aşırı yüklenmesi
kullanımını kolaylaştırır. Aynı isimde farklı seçenekler sunması, metotların kullanışlılığını
artırır.
Overloads Function FonksiyonAdı(degisken1 As Tipi, degisken2 As Tipi,…)
…
End Function
110
ADO.NET
2009 2010
Bölüm 9. ADO.NET
Konu 1.
Veri Depolama
Günümüzde verileri saklamak için çeşitli teknikler kullanılır. Örneğin bir emlakçı emlak
alımsatım bilgilerini dosya kâğıtları üzerinde depolayabilir. Bu yöntem veri arama ve
listeleme işlemlerinin karmaşık hale gelmesine ve arama süresinin uzamasına sebep olur.
Hatta daha büyük organizasyonlarda işlemlerin yavaşlamasına ve durmasına sebep olabilir.
Artan ihtiyaçlar doğrultusunda veri depolamak ve depolanan veriye erişmek için çeşitli veri
depolama yöntemleri geliştirilmiştir. Bu yöntemler şunlardır:
Yapısal Olmayan: Bu yöntem ile depolanan veriler için belirli bir sınıflandırma ve
sıralama yoktur. Veriler düz bir şekilde kaydedilir. Örneğin basit not dosyaları.
Yapısal: Bu yöntem ile depolanan veriler çeşitli gruplara ayrılarak saklanır, fakat bu
gruplar arasında bir altüst ayrımı yapılmaz. Örneğin virgülle ayrılmış dosyalar (csv),
Excel belgeleri.
Hiyerarşik: Hiyerarşik depolama yöntemini ağaç yapısına benzetebiliriz. Bu
yöntemde veriler çeşitli kategorilere bölünerek depolanır. Her bir kategorinin içinde
alt kategorilerde olabilir. Örneğin XML (eXtensible Markup Language) dosyaları.
111
ADO.NET
2009 2010
İlişkisel Veritabanı: İlişkisel veritabanlarında veriler tablolar üzerinde depolanır.
Tablo içindeki her satır kaydı, her sütun ise veriyi ifade eder. Örneğin SQL Server,
Oracle, Access.
Nesne Yönelimli Veritabanı: En gelişmiş veri depolama yöntemidir. Bu yöntemde
veriler; ihtiyaca göre gruplandırılarak nesneler içinde saklanır. Örneğin Versant, AOL.
ADO.NET bu depolama tekniklerinin tümünü destekler.
Bağlantılı (Connected) Veri Ortamları
Bağlantılı veri ortamları, uygulamaların veri kaynağına sürekli bağlı kaldığı ortamlardır. Bu
ortamlarda veri alma ve değiştirme işlemleri uygulama ile veri kaynağı arasında bağlantı
kurulduktan sonra gerçekleştirilir. Bağlantılı veri ortamlarında, veri işlemleri gerçekleştiği
sürece bağlantı açık kalır.
İlk bilgisayar üretiminden bugüne en çok tercih edilen yöntem bağlantılı veri ortamları
olmuştur. Bağlantılı ortamlar veriye erişmek için birçok avantaj sağlar.
Avantajları
En güvenli veri ortamıdır.
Veri kaynağına yapılan eş zamanlı erişimlerde, veri kaynağının kontrolünü
kolaylaştırır.
Dezavantajları
Uygulama ile veri kaynağı arasında gerçekleşen bağlantıyı koruyabilmek için sabit bir
ağ bağlantısının olması gerekir.
Uygulama ile veri kaynağı arasındaki bağlantı ağ üzerinden gerçekleştiği için, ağ
trafiğinin yoğunluğunu artırır.
Örneğin araba üreten bir fabrikada yapılan üretim bilgilerinin diğer birimlere ulaştırılması
ve bu kayıtların depolanması için eş zamanlı bir bağlantı kurulması gereklidir. Ya da bir
emlak firmasında emlakçının, mülk ve menkul bilgilerini güncel tutabilmesi için sabit bir
bağlantı kurması gereklidir.
112
ADO.NET
2009 2010
Bağlantısız (Disconnected) Veri Ortamları
Bağlantısız veri ortamı, uygulamanın veri kaynağına sürekli bağlı kalmadığı veri ortamıdır.
Uygulama ile veri kaynağı arasındaki bağlantı, veri alışverişi yapılırken açılır ve işlem
bittikten sonra kapatılır. Bu veri ortamları çevrim dışı çalışmak için kullanılır.
Teknolojinin ilerlemesi ve veri depolayan araçların taşınabilirliğinin sağlanması ile tüm
dünyada çevrimdışı ortamlara duyulan ihtiyaç artmıştır. Laptop, Notebook ve Pocket PC
gibi araçların yaygınlaşması ile günümüzde uygulamanın veri kaynağına bağlı olmadığı
durumlarda bile veri girişi yapılabilir.
Uygulamada sadece çevrimiçi veya çevrimdışı ortamlardan birini seçmek yeterli
olmayabilir. Gelişmiş uygulamalarda her iki ortamın avantajlarını birleştiren bir çözüm
tercih edilebilir.
Avantajları
Laptop, Notebook ve Pocket PC gibi araçlarla girilen veriler, istenilen zamanda veri
ortamlarına aktarılabilir.
Çevrimdışı ortamlar sayesinde, verilerin depolandığı uygulama üzerindeki yük
hafifletilir. Bu durum performans artışını sağlar.
Dezavantajları
Bağlantısız veri ortamlarında, verilerin güncel kalmasına dikkat edilmelidir. Bu
ortamlarda veri güncelleme işlemleri farklı zamanlarda gerçekleştirilebilir. Veri
üzerinde yapılan bu değişimlerin diğer kullanıcılara gösterilebilmesi için çeşitli
çözümler geliştirilmelidir.
Bağlantısız veri ortamları içinde farklı kullanıcılar eş zamanlı güncelleme işlemleri
gerçekleştirebilir. Bu durumda oluşacak veri çakışmalarının engellenmesi gerekir.
Örneğin bir toptancı firmasında, firma çalışanları farklı konumdaki bayilerinin tüm
siparişlerini bir el bilgisayarına kaydedebilir. Bu veriler el bilgisayarında geçici bir süre için
depolanır. Bu süre çalışanların sahada kaldığı süredir. Süre sonunda veriler sunucu
bilgisayara aktarılır.
113
ADO.NET
Konu 2.
2009 2010
ADO.NET‟e Giriş
ADO.NET Nedir?
ADO (ActiveX Data Objects), farklı veri kaynaklarına hızlı ve güvenli erişim için Microsoft
tarafından geliştirilen nesne modelidir. ADO.NET ise ADO teknolojisinin en yeni
versiyonudur. ADO ile aynı programlama modelini kullanmamakla birlikte, ADO modelinden
gelen pek çok çözüm yolunu da beraberinde getirir.
Uygulama gelişim ihtiyacı arttıkça, yeni uygulamalarda Web uygulama modeline olan
bağlılık gittikçe azalmaktadır. Şimdilerde ise ağ bağlantıları üzerinden veriyi rahatça
aktarabilmek için XML kullanımına olan yönelim artmaktadır. İşte ADO.NET, XML ve
ADO.NET„in .NET Framework içinde en uygun şekilde programlama ortamı oluşturmamızı
sağlar.
ADO.NET modelinin diğer veri erişim modellerine göre üstünlüklerini şöyle sıralayabiliriz:
ADO.NET, veritabanından çekilen verilerin kopyasını XML formatını kullanarak belleğe
aktarır.
Uygulamanın kullanıcı sayısı arttıkça kaynak kullanımı da artar. Nkatmanlı (Ntier)
uygulama yapısı kullanılarak, uygulamaların katmanlar üzerinden dağıtılması sağlanır.
Böylece uygulamaların ölçeklenirliği artar.
ADO.NET ile bağlantısız veri ortamları için uygulama geliştirilebilir. ADO.NET
gelişmiş XML desteği verir.
114
ADO.NET
2009 2010
ADO.NET Nesne Modeli
ADO.NET nesne modeli iki ana bölümden oluşur.
DataSet sınıfları
.NET veri sağlayıcı sınıfları
DataSet sınıfları, çevrimdışı ortamlar için veri depolama ve yönetme işlemlerini sağlar.
DataSet sınıfları veri kaynağından bağımsız her tür uygulama ve veritabanı için
kullanılabilir. Özellikle İlişkisel Veritabanı, XML ve XML Web Servisleri üzerinden veri
çekmek için kullanılır.
.NET veri sağlayıcı sınıfları, farklı türdeki veritabanlarına bağlanmak için kullanılır. Bu
sınıflar sayesinde istenilen türdeki veri kaynağına kolayca bağlantı kurulabilir, veri
çekilebilir ve gerekli güncelleme işlemleri yapılabilir. ADO.NET nesne modeli, aşağıdaki
veri sağlayıcı sınıflarını içerir:
SQL Server .NET veri sağlayıcısı
OLE DB .NET veri sağlayıcısı
Diğer .NET veri sağlayıcıları
Hangi veri kaynağı kullanılacaksa, sadece ona uygun veri sağlayıcı sınıfı kullanılmalıdır.
ADO.NET Veri Sağlayıcıları
115
ADO.NET
2009 2010
.NET veri sağlayıcıları, ADO.NET mimarisinin veritabanı ile uygulama (Windows, Web) veya
XML Web Servisi arasında bağlantı kurmak için her tür alt yapıyı barındıran çekirdek
bileşendir. Tüm veri sağlayıcıları, System.Data isim alanı içinde tanımlanmıştır.
.NET Framework 1.0 sürümü ile birlikte SQL Server .NET ve OLE DB .NET veri sağlayıcı
sınıfları gelmiştir.
SQL Server .NET: SQL Server 7.0 ve SQL Server 2000 veritabanlarına hızlı bağlantı
sağlar. SQL Server bağlantı nesneleri System.Data.SqlClient isim alanında bulunur.
OLE DB .NET: SQL Server 6.5 ve daha öncesi sürümlerine, Oracle, Sybase, DB2/400
ve Microsoft Access veritabanlarına bağlantı kurmayı sağlar. OLE DB bağlantı nesneleri
System.Data.OleDb isim alanında bulunur.
.NET Framework 1.1 sürümü ile birlikte SQL Server .NET ve OLE DB .NET veri sağlayıcılarına
Oracle .NET ve ODBC .NET veri sağlayıcıları da eklenmiştir.
ORACLE .NET: Oracle veritabanlarına bağlantı için tasarlanmış veri sağlayıcısıdır.
Oracle bağlantı nesneleri System.Data.OracleClient isim alanında bulunur.
System.Data.OracleClientisim
alanını
kullanmak
System.Data.OracleClient.dll referansı eklenmelidir.
için,
projeye
ODBC .NET: Diğer veritabanlarını destekleyen genel bir veri sağlayıcıdır. ODBC
bağlantı nesneleri System.Data.ODBC isim alanında bulunur.
Veritabanı
Veri Sağlayıcısıİsim Alanı
Sql Server 7.0 ve sonraki sürümler
System.Data.SqlClient
Sql Server 6.5 ve önceki sürümler
System.Data.OleDb
Microsoft Access veritabanı
System.Data.OleDb
Oracle Server
System.Data.OracleClient
Diğer veritabanları(Oracle,
Sybase,DB2/400)
System.Data.OleDb
XxxConnection: Veri kaynağına bağlantı için kullanılan sınıftır.
116
ADO.NET
2009 2010
XxxCommand: Veri kaynağı üzerinde sorgu
kaynağından dönen kayıtlar
çalıştırmak için kullanılır. Veri
XxxDataReader veya DataSet kullanılarak veri bağlantılı kontrollere aktarılır.
XxxDataReader: Çevrimiçi bağlantılarda sadece veri okumak için kullanılan sınıftır.
XxxDataAdapter: Çevrimdışı bağlantılarda kullanılan veri işleme nesnesidir.
Xxx yerine seçilen veri sağlayıcısına göre SQL, OLEDB, Oracle ve ODBC eklerinden biri
kullanılır.
Konu 3.
Bağlantı Oluşturmak
Öncelikle grafiksel arayüzü kullanarak daha kolay şekilde yapacağız. Daha sonra bunu kod
ile yapacağız.
Menü Yardımı ile bağlantı oluşturmak
1. Data menüsünden Add New Data Source menüsüne tıklayın:
2. Data Source Configuration Wizard da Database icon‟u tıklayıp Next‟e tıklayın.
3. New Connection butonuna tıklayın.
117
ADO.NET
2009 2010
4. Microsoft Access Database File ı seçin ve OK deyin.
5. DataBase‟i seçmek için Browse‟yi tıklayın ve dosyanızı seçin.
6. Test Connection butonuna basın.
7. OK dedikten sonra bağlantımızı test etmiş oluyoruz.
8. (+) işaretine bastığımızda tamamlanmış bağlantının şekli aşağıdaki gibidir. Bağlantı
sağlayıcımızın ismi Microsoft.Jet.OLEDB.4.0 şeklinde ve otomatik olarak gelmiştir.
Daha sonra bunu kod ile yapacağız.
118
ADO.NET
9. Next‟ tıklayın.
10. Geçerli bağlantı cümlesini oluşturmak için Next‟e tıklayın.
119
2009 2010
ADO.NET
2009 2010
11. Tablonun içindeki listeleri görmek için (+)‟ya tıklayın.
12. Seçmek istediğiniz sütunları checkbox‟ı işaretleyerek seçiniz.
120
ADO.NET
2009 2010
13. Data Source Configuration Wizard‟ı kapatmak için Close tıklayın.
14. Solution Explorer pencersindeki görünüt aşağıdaki gibi olacaktır.
Burada yeni bir dosya türü görüyoruz: StudentsDataSet.xsd. Bu dosya bir XML
şemasıdır, tabloları, alanları, data tiplerini ve diğer elemanları içerir
15. Solution Explorer‟dan dosyayı seçin ve görüntüsünü izleyin.
16. Instructor field alanını tıklayın ve özellikler kısmını açın.
121
ADO.NET
2009 2010
17. Bu uygulamada yeni bir pencere açılıyor. Data Sources window.
Yeni DataSet ekleme için kullanılır.
DataSet i düzenleme için kullanılır.
DataSet e alan ekleme ve silme için kullanılır.
DataSet i yenilemek için kullanılır.
Yeni StudentsDataSet bağlantısı.
Students.mdb veri
tablosun alanlar
tabanından
instructors
Seçili olan alanlar
122
ADO.NET
2009 2010
Grafiksel arayüzü kullanarak bağlantı oluşturmak
Uygulamaya veritabanınıeklemek.
Proje ismi sağ tıklayın.
Açılan menüden Add alt menüsündeki Add Existing Item komutunu verin.
Açılan pencere üzerindeki Look in açılan kutusundan CD Sürücüsü\Veritabanı klasörünü
seçin.
Açılan Add Existing Item penceresinden *.mdb veritabanını seçerek Open düğmesini
tıklayın.
Şimdi ise bu işlemleri kod ile gösterelim.
Parametre
Provider
ConnectionTimeout
veya
ConnectTimeout
Initial Catalog
Data Source
Password (pwd)
User Id (uid)
Integrated Security
veya Trusted
Connection
Persist Security Info
123
Tanımı
Sadece OleDbConnection nesnelerinde kullanılır. Bağlantı
sağlayıcısının ismini tutar. Sağlayıcı isimleri diğer Tablo „da
belirtilmiştir.
Veritabanı bağlantı için beklenmesi gereken maksimum saniye
sayısıdır. Varsayılan değer 15 saniyedir.
Veritabanı adı
SQL Server adı, veya MS Access veritabanı için dosya
adı
SQL Server login (giriş) parolası
SQL Server login (giriş) adı
SQL sunucusuna Windows hesabı ile bağlantı yapılacağını belirtir. True, Falseveya SSPI girilebilir.
SSPI, Trueile eş anlamlıdır ve bu durumda Windows
hesabı kullanılır.
Varsayılan değeri False olur. Bu durumda güvenlik
için hassas bilgileri geri döndürmez. True olduğunda
ise güvenlik risk taşımaya başlar.
ADO.NET
2009 2010
Provider parametresinin Access, SQL Server ve Oracle veritabanlarına göre alacağı değerler
aşağıdaki tabloda gösterilmiştir.
Tür
SQLOLEDB
MSDAORA
Microsoft.Jet.OLEDB.4.0
Açıklama
SQL Server için Microsoft OLE DB Provider
ORACLE için Microsoft OLE DB Provider
Microsoft Jet için OLE DB Provider
Bağlantılı (Connected) Veri Ortamları
XXXConnection
Toolbox ı kullanarak
ToolBox üzerinden Connection nesnesi oluşturmak için belirtilen adımları takip edin.
1. ToolBox içinden Data paneli seçilir.
2 Data panelindeki OleDbConnection veya SqlConnection nesnesi form üzerine sürüklenir.
Eğer bu nesneler Data panelinde yok ise panelin üstüne sağ tuş tıklanıp “Choose Items”
seçeneği seçilir. Gelen menüde Net Framework Components‟lerin içinden OleDbConnection
veya SqlConnection nesnesi işaretlenerek OK butonuna basılır.
Bağlantı oluşturmak için Connection nesnesinin DataSource özelliğinden, veri tabanını
seçiniz.
Kod kullanarak
SQL Server veritabanı için bağlantı cümlesi
Örnek: SQL Server veritabanı için bağlantı cümlesi oluşturulmuştur. London isimli
sunucuda bulunan Northwind veritabanına, sa kullanıcı ismi ve 2389 parolası ile
bağlanılıyor. Eğer veritabanı sunucusundan 60 saniye içinde cevap alınamazsa bağlantı
iptal ediliyor.
Dim cnNorthwind as New System.Data.SqlClient.SqlConnection()
cnNorthwind.ConnectionString = _
124
ADO.NET
2009 2010
"User ID=sa;" & _
"Password=2389;" & _
"Initial Catalog=Northwind;" & _
"Data Source=London;" & _
"Connection TimeOut=60;"
Microsoft Access veritabanı için bağlantı cümlesi
Örnek: Microsoft Access veritabanı için bağlantı cümlesi oluşturulmuştur. OleDb
bağlantısı yapıldığı için Provider özelliğinin Microsoft.Jet. OleDB.4.0 olarak belirtilmesi
gerekir. Bağlantının yapılacağı Northwind veritabanının local makinede C:\Samples
dizini altında bulunduğu belirtiliyor.
Dim cnNorthwind as New System.Data.OleDb.OleDbConnection()
cnNorthwind.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Samples\Northwind.mdb;"
Connection Özellikleri
Parametre
Tanımı
ConnectionTimeout VeritabanI bağlantI için beklenmesi gereken maksi-mum saniye
sayIsIdIr. VarsayIlan değer 15 saniyedir.
125
ConnectionString
Veri kaynağına bağlanmak için oluşturulan bağlantı cümlesi
Data Source
SQL Server adI, veya MS Access veritabanI için dosya adI
Provider
Bağlantı sağlayıcısının ismini tutar.
ADO.NET
2009 2010
Bağlantıyı Açmak ve Kapatmak
Bağlantı cüml esini oluşturduktan sonra, bağlantıyı açmak ve kapatmak için Connection
sınıfının iki önemli metodu kullanılır.
Open
Close
Open metodu, bağlantı cümlesinde belirtilen veri kaynağını açmak için kullanılır.
Close metodu, açılan bağlantıyı kapatmak için kullanılır. Close metodu ile kullanılmayan
bağlantıları kapatmak, kaynak tüketimini azaltır. Open metodu, uygulama ile veri kaynağı
arasındaki bağlantıyı, bağlantı cümlesinin Timeout parametresinde belirtilen süre içinde
kurmaya çalışır. Eğer belirtilen süre içinde bağlantı gerçekleşmiyorsa, uygulama hata
üretir. Bu süre için herhangi bir değer belirtilmemişse, varsayılan değer 15 saniyedir.
Daha önceden açılmış bir bağlantı; kapatılmadan tekrar açılmaya çalışılırsa, uygulama yine
hata üretir. Kapatılan bağlantının yeniden kapatılması hataya yol açmaz.
cnNorthwind.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Samples\Northwind.mdb;"
‘Bağlantıyı açmak
cnNorthwind.Open()
‘Veritabanı işlemleri bu arada gerçekleştirillir.
‘Bağlantıyı kapatmak
cnNorthwind.Close()
Open metodu ile veri kaynağı açılırken, çeşitli çalışma zamanı hatalarından dolayı bağlantı
açılmayabilir ve uygulama hata üretebilir. Bu çalışma zamanı
126
ADO.NET
2009 2010
hataları;
Sunucunun bulunamamasından,
Veritabanının bulunamamasından,
Hatalı kullanıcı adı veya parola girilmesinden,
Donanım veya yazılımdan kaynaklanabilir.
Bağlantı Durumlarını Kontrol Etmek
Bağlantı sınıfının durumu hakkında bilgi almak için, bağlantı sınıfının State özelliği
kullanılır.State özelliğinin alabileceği değerler Tablo „da belirtilmiştir.
127
İsim
Açıklama
Değeri
Broken
Yalnızca, açık bir bağlantının kopup tekrar bağlanıldığı 16
durum
Closed
Bağlantı kapalı
0
Connecting Veri kaynağına bağlanma aşamasında
2
Executing
Bağlantı üzerinden bir komutu çalıştırılıyor
4
Fetching
Bağlantı üzerinden veri çekiliyor
8
Open
Bağlantı açık
1
ADO.NET
2009 2010
XXXCommand
Command, veritabanı üzerinde Stored Procedure (SaklıYordam) ve sorgu çalıştırmak için
kullanılır. Command nesneleri ile veritabanı tablolarında; sorgu, ekleme, silme ve
güncelleme işlemleri yapılabilir.
Nesne
Veri Sağlayıcıları
System.Data.SqlClient.SqlCommand SQL Server .NET Veri Sağlayıcısı
System.Data.OleDb.OleDbCommand OLE DB .NET Veri Sağlayıcısı
System.Data.OleDb.ODBCCommand
ODBC .NET Veri Sağlayıcısı
Veritabanı üzerinde Stored Procedure ve sorgu çalıştırmak için Command nesnelerinin
belirli özelliklerini kullanmak gerekir.
Toolbox ı kullanarak
ToolBox üzerinden Command nesnesi oluşturmak için belirtilen adımları takip edin.
1
Veri kaynağına bağlantıkurmak için Connection tanımlanır.
2
ToolBox içinden Data paneli seçilir.
3
Data panelindeki OleDbCommand veya SqlCommand nesnesi
sürüklenir.
form
üzerine
Kod kullanarak
Dim sql As String = "SELECT StokMiktari FROM Urun " & _
"WHERE UrunID = @UrunID"
Dim cmUrun As New SqlCommand(sql, cnAlisveris)
Dim prmID As SqlParameter = cmUrun.Parameters.Add( _
New SqlParameter("@UrunID", SqlDbType.Int, 4))
cmUrun.Parameters("@UrunID").Value = 42
128
ADO.NET
2009 2010
cnAlisveris.Open()
Command özellikleri
Özellik
Açıklama
Name
Command nesnesinin kod içinde kullanılan ismidir.
Connection
Commandnesnesinin hangi Connection üzerinde çalışacağını
belirler. Bu özellik ile yeni Connection oluşturabilir veya varolan Connection nesnesine bağlanılabilir.
CommandType Command nesnesinin tipini belirler. Çalıştırılacak Command„a
göre Text, StoredProcedureve TableDirect seçilir.
Text: SQL Cümlesi
StoredProcedure: Kayıtlı Yordam
TableDirect: Tablo kayıtları
TableDirectsadece
kullanılır.
CommandText
OleDbCommand
nesnesi
tarafından
Commandnesnesinin çalıştırılacak komutudur. Seçilen
CommandType„a göre CommandText belirlenir.
Text: Çalıştırılacak SQL cümlesi.
StoredProcedure: Çalıştırılacak Stored Procedure adı.
TableDirect: Veritabanındaki tablo adı
Parameters
129
Commandnesnesinin CommandTextkomutuna dışardan değer
almak veya komuttan geriye değer döndürmek için kullanılır.
Parameters özelliği Collection olduğu için bir veya birden çok
değer alabilir veya gönderebilir.
ADO.NET
2009 2010
Command metotları
Command Metodu
Açıklama
ExecuteScalar
Çalıştırılan Command nesnesinden geriye tek değer döndürmek için kullanılır.
ExecuteReader
Çalıştırılan Command nesnesinden geriye kayıt kümesi döndürmek için kullanılır.
ExecuteNonQuery
Command nesnesi üzerinde veri güncelleme, değiştirme ve
silme işlemleri yapmak için kullanılır. Bu işlemin sonucunda
etkilenen kayıt sayısı geriye döndürür.
ExecuteXmlReader
Çalıştırılan Command nesnesinden geriye XML döndürmek için
kullanılır. Sadece SQL Server 7.0 ve sonraki versiyonları için
kullanılır.
Dispose
Command nesnesini kapamak amacıyla kullanılır. Böyle bir
durumda tekrar Connection tanımlanmalıdır.
Parametre Kullanmak
Stored Procedure ve SQL cümleleri parametre alabilir veya gönderebilir. Ayrıca Stored
Procedure geriye tek değer bile döndürebilir. Stored Procedure ve SQL cümlelerinin
130
ADO.NET
2009 2010
parametre değerlerini saklamak için, XXXCommand nesnesinin Parameters özelliği
kullanılır. Aynı zamanda bu özellik XXXParameters nesnesinin koleksiyonudur.
Command nesnesi çalıştırılmadan önce, komuttaki her giriş parametresi için bir değer
girilmelidir. Ayrıca Command nesnesi çalıştırıldıktan sonra, sonuç parametrelerinin
değerleri geriye döndürülebilir.
Commandnesnesine parametre eklemek için aşağıdaki yöntemler kullanılır.
Properties penceresi kullanılarak Command nesnesinin Parameters özelliğine tasarım
aşamasında parametreler eklenir.
XXXParameter nesnesini kullanarak, parametre eklemek için aşağıdaki adım-lar takip edilir.
1
Yeni bir OleDbParameterveya SqlParameternesnesi oluşturulur.
2
Eklenen Parameter nesnesinin özellikleri göre ayarlanır.
3.
XxxParameter nesnelerini Command nesnesine eklemek için, Command nesnesinin
Parameters koleksiyonunu içindeki Add metodu kullanılır. Eğer bu komut sonuç döndürecek
bir Stored Procedure çağırıyorsa, herhangi bir parametre eklemeden önce
ParameterDirection. ReturnValue parametresini eklenmelidir. Parametrelerin eklenme
sırasıönemli değildir.
OleDbCommand_Name.Parameters.Add
oledbtype, size as integer)
(parametername
as
string, oledbtype
as
Oledbcommand_name.Parameters. .AddWithValue(parametername as string, value as
Object)
Parametrelerin özellikleri:
131
Özellik
Açıklama
ParameterName
Parametrenin ismi, @Adgibi
DbType,SqlDbType,
OleDbType
Parametrenin veri türü. Kullanılan veritabanına göre
SqlDbTypeveya OleDbType enumeratörlerinden seçilir.
Size
Parametredeki verinin byte olarak maksimum boyutu.
ADO.NET
Direction
2009 2010
Parametrenin türü.
ParameterDirectiondeğerlerinden biri ile belirtilir. Bu
özelliğin alabileceği değerler:
ParameterDirection.Input (varsayılan değer)
ParameterDirection.InputOutput
ParameterDirection.Output
ParameterDirection.ReturnValue
XXXDataReader
DataReader dönen kayıtlar üzerinde işlem yapmayı sağlayan metot ve özelliklere
sahiptir. DataReader nesnesinin bu özellik ve metotları aşağıda işlemleri
yapar.
Kayıt kümesi içindeki kayıtları tek tek okur.
Kaydın belirli bir kolonunu veya tüm kolonlarını okur.
Kolonların içinde değer olup olmadığını kontrol eder.
Kolonların şema bilgilerini okur. (ColumnName, ColumnOrdinal,ColumnSize,
NumericPrecision, NumericScale, Datatype,ProviderType, Islong, AllowDBNull)
Aşağıdaki şekilde sadece kod ile DataReader nesnesi tanımlanır
Dim DataReader_Adı As OleDbDataReader
132
ADO.NET
2009 2010
DataReader metotları
Metot
Açıklama
Close
DataReader nesnesini kapatılır ve hafızadan kaldırır.
NextResult
Komut metninde birden fazla SELECT ifade varsa, sonuçlar bu
metot kullanılarak farklı veri kümeleri gibi alınabilir.
Read
DataReader nesnesinde okunacak kayıt olduğu sürece okuma
yapar. Kayıt varsa True, yoksa False değeri geri döndürür.
Command ile Sorgu Oluşturmak
Command ile veritabanı yapısında değişiklik yapılabilir (veri almak, eklemek, değiştirmek
ve silmek. OleDbCommand veya SqlCommandnesnesi ile bu tür işlemlerin yapılabilmesi
için, ExecuteNonQuerymetodu kullanılır.
ExecuteNonQuery metodu ile Select hariç SQL (Structured Query Language) ve TSQL
(Transact Structured Query Language) komutları kullanılır. SQL "Structured Query
Language" (YapılandırılmışSorgulama Dili) veritabanı sorgu dilidir. SQL ile veritabanına
kayıt ekleme, silme, varolan kaydı düzenleme ve kayıt sorgulama işlemleri yapılabilir. SQL
standart bir veritabanı sorgu dilidir ve Oracle, db2, Sybase, Informix, Microsoft SQL Server,
MS Access gibi veritabanı yönetim sistemlerinin temelini oluşturur. En sık kullanılan SQL
komutları SELECT, INSERT, UPDATEve DELETE komutlarıdır.
DML Komutu
Açıklama
SELECT
Veri seçmek
DELETE
Veri silmek
UPDATE
Veri güncellemek
INSERT
Veri girmek
SELECT ifadesi
Veritabanından bilgi seçmek için kullanılır.
Genel ifade:
133
ADO.NET
2009 2010
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi WHERE Koşul
ORDER BY Sıralanacak_sütun [ASC/DESC]
Temel SELECT ifadesi:
SELECT * FROM Tablo_ismi
(*) ile tüm alanları seçer.
Belirli Sütunların seçilmesi:
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi
Koşullu olarak sütunların seçilmesi
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi WHERE Koşul
Satırları sıralamak için:
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi ORDER BY
Sıralanacak_sütun [ASC/DESC]
INSERT ifadesi:
Veritabanına yeni kayıt eklemek için kullanılır.
INSERT INTO Tabo_ismi (Sütun_ismi1, Sütun_ismi 2,…) VALUES (Deger1, Deger2,…)
UPDATE ifadesi:
Veritabanına kayıt değiştirmek için kullanılır.
UPDATE Tabo_ismi SET (Sütun_ismi 1=Deger1, Sütun2= Deger2,…) WHERE koşul
DELETE ifadesi:
Veritabanından kayıt silmek için kullanılır.
DELETE FROM Tabo_ismi WHERE Koşul
Command ile Kayıt Döndüren Sorgular Çalıştırmak
DataReader kullanarak kayıt çekmek için aşağıdaki adımları takip edin.
1
2
3
Bağlanılacak veritabanına göre Connection nesnesi eklenir.
Bağlanılacak veritabanına göre OleDbCommand veya SqlCommand nesnesi
eklenir ve gerekli özellikleri ayarlanır.
Veritabanı bağlantısı açılır.
134
ADO.NET
4
5
6
7
8
2009 2010
DataReader tanımlanır. Command nesnesinin ExecuteReader metodu ile çağrılan
kayıtlar DataReadernesnesine atanır.
DataReader nesnesinin Read metodu False oluncaya kadar, kayıtlar döngü ile
okunur ve form kontrollerine aktarılır.
Command nesnesi kapatılır (dispose)
DataReader kapatılır.
Veri tabanı bağlantısı kapatılır.
NOT: Eğer kayıt döndürmek istemiyorsak, Datareader nesnesini tanımlamya, Read ve
Close metodlarını çalıştırmaya gerek yoktur.
135
ADO.NET
2009 2010
Data ile Bağlantı Yapınız (Menü ile).
OleDBConnection nesnesi tanımlayınız (Toolbar
veya kod ile).
OleDBConnection nesnesinin ConnectionString
özelliği ile veritabanına bağlantı yapınız (Properties
penceresi veya kod ile).
OleDBCommand nesnesi tanımlayınız (Toolbar
veya kod ile).
OleDBCommand nesnesinin Connection özelliğini
OleDBConnection nesnesi olarak belirleyiniz
(Toolbar veya Kod ile.)
OleDBConnection nesnesinin Connection özelliğini
Open olarak belirleyiniz (Herbir prosedür için ayrı
ayrı yapılıcak ise kod ile).
OleDbCommand nesnesinin ConnectionString
Özelliğini Belirle!
136
ADO.NET
2009 2010
SELECT-Veri seçmek
DELETE-Veri silmek
• SELECT Sütun_ismi1,
Sütun_ismi2, Sütun_ismi3,…
FROM Tablo_ismi WHERE
Koşul ORDER BY
Sıralanacak_sütun
[ASC/DESC]
• DELETE FROM Tabo_ismi
WHERE Koşul
UPDATE-Veri
güncellemek
INSERT-Veri girmek
• UPDATE Tabo_ismi SET
(Sütun_ismi 1=Deger1,
Sütun2= Deger2,…) WHERE
koşul
• INSERT INTO Tabo_ismi
(Sütun_ismi1, Sütun_ismi
2,…) VALUES (Deger1,
Deger2,…)
Kayıt Döndürücek misin!
Evet
Hayır
OleDbDataReader nesnesi
tanımla! (Kod ile)
Command Nesnesi Dispose
ile son bulur.
Command nesnesinin ExecuteReader
metodu ile çağrılan kayıtlar DataReader
nesnesine ata
Connection kapatılır.
DataReader nesnesinin Read metodu
False oluncaya kadar, kayıtlar döngü ile
okunur ve form kontrollerine aktarılır.
DataReader kapatılır.
Command nesnesi Dispose ile son
bulur.
Connection kapatılır.
137
ADO.NET
2009 2010
Örnek 1: Öğrenci not tablosu, öğrenci no bulma, öğrenci kayıt ekleme, silme,
güncelleme
Örnek 2: İş başvuru formu, iş başvuru kayıt ekle, sil, güncelle, görüntüle.
Bağlantısız (Disconnected) Veri Ortamları
Bağlantısız veri ortamları, uygulamaların veritabanından bağımsız çalıştığı ortamlardır.
Veritabanı sunucusunun uzak olması, veri işlemlerinin uzun sürmesi ve mobil çalışma
ihtiyacı, bağlantısız veri ortamlarına olan ihtiyacı artırmıştır.
Bağlantısız veritabanı mimarisini öğrenecek,
DataAdapter nesnesinin yapısını tanıyacak,
DataSet nesne modelini öğrenecek,
DataTable nesne modelini öğrenecek,
Veri arama ve sıralama işlemlerini öğreneceksiniz.
Bağlantısız veri ortamı, uygulamanın veri kaynağına sürekli bağlı kalmadığı veri ortamıdır.
Bu modelde, veri kaynağının istenen bölümü çekilerek belleğe alınır. Veri üzerinde gerekli
işlemler gerçekleştirildikten sonra, veri kaynağına aktarılarak güncelleme yapılır.
138
ADO.NET
2009 2010
Sınıf
Açıklama
XXXDataAdapter
Connection, Command ve DataReader sınıflarını kullanarak,
verilerin DataSet„e doldurulmasını ve DataSet„te yapılan
değişikliklerin veritabanına kaydedilmesini sağlar.
Örneğin SqlDataAdaptersınıfı SQL Server ile DataSetarasındaki
etkileşimi sağlar.
XXXConnection
Bağlantı açmak ve kapatmak için kullanılan nesnedir.
Örneğin SqlConnectionSQL Server„a bağlantı sağlar.
XXXCommand
Veritabanı üzerinde Stored Procedure (Saklı Yordam) veya SQL
cümleleri çalıştırmak için kullanılan nesnedir.
Örneğin SqlCommandSQL Server üzerinde Stored Procedure
veya SQL cümleleri çalıştırmayı sağlar.
XXXDataReader
Veritabanından sadece okunur ve ileri hareketli kayıtlar
çekmek için kullanılır. Örneğin SqlDataReaderile SQL Server
üzerinden kayıtlar okunur. Kayıtlar SqlCommandnesnesinin
ExecuteReader metodu ile DataReader„a aktarılır.
DataAdapter Oluşturmak
DataAdapter, data kaynağı ile DataSet arasında duran bir mekanızmadır. SQLDataAdapter
ve OleDbDataAdapter olmak üzere 2 çeşittir. DataAdapter, seçme, güncelleme, silme ve
kayıt ekleme işlemlerini yapar. Bu yöntemler SelectCommand, UpdateCommand,
InsertCommand ve DeleteCommand özellikleri ile sağlanır.
139
ADO.NET
2009 2010
XxxDataAdapter oluşturmak için aşağıdaki adımları takip ediniz:
Formunuzun Toolbox penceresinde, Data panelinden XxxDataAdapter bileşeninin
formunuza sürükleyin.
140
ADO.NET
2009 2010
Karşımıza aşağıdaki gibi DataAdapter Configuration Wizard penceresi çıkıcaktır.
Burada database ile bağlantı yapılacaktır. Eğer daha önceden bir bağlantı yapılmış ise
dropdownlist‟de yapılan bağlantıyı görürsünüz aksi durumda boştur ve New
Connection butonuna basarak yeni bağlantı oluşturmak zorundasınız.
Data bağlantısını yaptıktan sonra Sorgu tipini belirleyeceğimiz ekran gelicektir.
Burada SQL komutunu veya yeni (varolan) bir prosedürü kullanabilirsiniz. İlk önce
kullanmak için SQL konutunu belirlemelisiniz. Buna göre aşağıdaki pencereyle
karşılaşırsınız.
Database deki kayıtları çağırmak için SELECT komutunu kullanmamız gerekmektedir.
(Bkz. SELECT ifadesi). Ayrıca direk yazmak yerine “Query Builder” butonu bize
yardımız olucaktır. Öncelikle Advance Options butonuna basalım.
141
ADO.NET
2009 2010
Seçtiğimiz pencerede 3 seçenek vardır. Birincisi, Insert, Update ve Delete SQL
ifadeleriniz SELECT konutu ile oluşturulacağını söyler. Eğer veriler üzerinde silme,
kaydetme veya güncelleme işlemleri yapıcaksak bu seçeneğin tıklı olması
gerekmektedir aksi durumda seçimi kaldırmalısınız. 2. Seçenek olan Use optimistic
concurrency seçeneği, UPDATE veDELETE konutlarını gerçekleştir ve orijinal kayıtlara
ulaşıldığında hiçbir kolonun değişmemesini sağlar ve aynı zamanda birden fazla
kullanıcının değişiklik yapmasını engeller. Son seçenek olan Refresh Dataset ise
UPDATE ve DELETE konutlarından sonra SELECT ifadesini çağırarak, DataSet‟inizi
günceller.
OK butonuna basarak bir önceki ekrana geri dönelim ve şimdi Query Builder butonuna
basalım.
142
ADO.NET
2009 2010
İstediğiniz tabloyu seçerek, burada görüntülenmesini istediğiniz kolonları belirleyin.
Seçmiş olduğumuz kolonlar SQL komutu ile aşağıdaki ekranda görünür.
143
ADO.NET
2009 2010
Finish butonu ile bağlantı işlemini yapmış oluruz.
Ve formumuza XxxDataAdapter1 nesnesi ile birlikte XxxConnection1 nesnesi de gelir.
144
ADO.NET
2009 2010
Kod Kullanarak
Dim conn As New OleDbConnection("provider = “ & _ “microsoft.jet.oledb.4.0; data
source=../stok.mdb")
Dim da As New OleDbDataAdapter("select * from “ & _
“kitaplar", conn)
DataSet ve DataTable Oluşturmak
Veri kaynağından DataAdapter ile çekilen verilerin çekirdek belleğe atılan kopyası DataSet
içinde saklanır. DataSet ile bu veriler üzerinde gerekli düzenlemeler yapıldıktan sonra,
veriler aynı DataAdapter ile veritabanına aktarılır.
DataSet„in temel özellikleri aşağıda listelenmiştir:
Veri sağlayıcı türünden bağımsız çalışır: DataSet tüm veri sağlayıcılarıile
kullanılabilir. Tamamen türden bağımsız çalışır.
Sürekli çevrimdışıdır: DataAdapter nesnesi ile veriler DataSet içine aktarılır ve
bağlantı kapatılır. Bağlantı kesildikten sonra yapılan tüm değişiklikler DataSet içine
kaydedilir. Bu durum uygulamanın çevrimdışıçalışmasınısağlar.
Değişikliklerin kaydını tutar: DataSet içinde yapılan tüm değişiklikler, DataAdapte
rnesnesi ile veri kaynağına aktarılır.
Birden fazla tablo bulundurabilir: İlişkisel veritabanlarında olduğu gibi, birden fazla
tablo ve ilişkileri hafızada tutmanın tek yolu DataSet kullanmaktır.
145
ADO.NET
2009 2010
DataSet, sanal bir veritabanı yapısını temsil eder. DataTable nesnelerinden oluşur. Bu
tablolar arasında ilişkiler tanımlanabilir. DataSet„i oluşturan nesneler, DataTable,
DataColumn, DataRow ve DataRelation nesneleridir.
DataTable: Veritabanı tablolarını temsil eder. DataColumn, DataRow nesnelerinden
oluşur. Primary Key alanı tanımlanabilir.
DataColumn: DataTable nesnelerini oluşturmak için gereken kolonlarıtemsil eder.
DataRow: DataTablenesneleri için veri satırlarını temsil eder.
DataRelationship: Tablolar arasındaki ilişkileri temsil eder.
DataView: DataTable nesneleri üzerinde filtreleme, veri güncelleme leri işlemleri
yapmak için kullanılır.
Dataset oluşturmak için aşağıdaki adımları takip ediniz:
XxxDataAdapter1 kontrolünü üzerine sağ tuş tıklayıp Generate Dataset ifadesini seçin.
146
ADO.NET
2009 2010
Buradaki Configure Data Adapter seçeneği, bağlantınızı yeniden oluşturmanızı ve
Preview Data seçeneği ise verilerinizi göstermeyi sağlar. Eğer bunu seçerseniz
aşağıdaki gibi bir ekran ile karşılaşırsınız.
Generate DataSet seçeneğini seçtikten sonra yeni bir CustomerDataSet oluşturalım,
adını belirleyip, Add this dataset to designer seçeneğini işaretleyin. Bunu
işaretlememiz durumunda formun yüklenmesi ile datanız prejenize yüklenicektir.
147
ADO.NET
2009 2010
Ok butonuna bastığımızda formumuzda, CustomerDataSet.xsd XML şeması ile
bağlantılı olan CustomerDataSet1 kontrolü oluşucaktır.
Böylece formumuzda aşağıdaki gibi 3 bileşen bulunacaktır.
Kod Kullanarak
Örnekte ds isminde yeni bir DataSet, New anahtar sözcüğü tanımlanmaktadır. Tanımlamada
DataSet„e parametre olarak girilen YeniDataSet değeri, DataSet nesnesinin DataSetName
argümanıdır. Eğer hiçbir isim verilmezse varsayılan olarak NewDataSet ismi verilir.
Dim ds As New DataSet(“YeniDataSet”)
DataSet, diğer bir DataSet nesnesinden kopyalanarak oluşturulabilir. DataSet kopyalamak
için iki yöntem kullanılır. Birinci yöntem Copy metodu ile diğer bir DataSet nesnesinin, veri
ve ilişkileri (şema bilgileri) kopyalanarak yeni bir DataSet oluşturmaktır. İkinci yöntem
Clone metodu ile diğer bir DataSet nesnesinin şema bilgilerini kopyalanarak, yeni bir
DataSet oluşturmaktır. Bu yöntem şablon kopyalamak için kullanılır.
Örnekte ds ismindeki DataSet nesnesinin tüm tablo, ilişki ve verileri dsCopyismindeki
DatasSetnesnesinin içine aktarılmıştır.
Dim dsCopy As DataSet dsCopy = ds.Copy()
Örnekte ds ismindeki DataSet nesnesinin tüm tablo ve ilişkileri, dsClone ismindeki
DataSetnesnesinin içine aktarılmıştır.
Dim dsClone As DataSet dsClone = ds.Clone()
148
ADO.NET
2009 2010
Örnekte Stok veritabanını içindeki tüm kitaplar, DataAdapter nesnesi ile DataSet„e
aktarılmıştır.
Dim conn As New OleDbConnection("provider = “ & _ “microsoft.jet.oledb.4.0; data
source=../stok.mdb")
Dim da As New OleDbDataAdapter("select * from “ & _
“kitaplar", conn)
Dim ds As New DataSet("set")
da.Fill(ds, "kitaplar") DataGrid1.DataSource = ds.Tables("kitaplar")
DataSet sınıfının Tables koleksiyonu ile DataSet içine bir veya birden çok DataTable
eklenebilir. DataSet sınıfının Relations koleksiyonu ile DataSet içine bir veya birden çok
DataRelation eklenebilir.
Örnekte dtKitaplarisminde yeni bir DataTableoluşturulmaktadır.
Dim dtKitaplar As New DataTable("kitaplar")
Oluşturulan tabloyu DataSet içine eklemek için DataSet nesnesinin Tables koleksiyonu
kullanılır.
Ds.Tables.Add(dtKitaplar)
DataTable nesnesinin içine kolon eklenebilir. Örnekte dtKitaplar ismindeki
DataTablenesnesinin içine, yeniId isminde yeni bir kolon eklenmektedir. Yeni kolon
eklemek için, DataTablenesnesinin Columnskoleksiyonu kullanılır.
Dim
colKitapId
As
GetType(System.Int32))
DataColumn
=
DataAdapter ile KayıtlarıDataset’e Doldurmak
149
dtKitaplar.Columns.Add("yeniId",
ADO.NET
2009 2010
DataAdapter sınıfı, DataSet ile veri kaynağı arasında köprü oluşturur. Veri kaynağına
yapılan bağlantı ile verilerin DataSet nesnesine aktarılmasını sağlar. DataAdapter ayrıca
DataSet üzerinde yapılan değişikliklerin veri kaynağına aktarılmasını sağlar.
XxxDbDataAdapter ile çekilen veriler Dataset nesnesine fill komutu ile aktarılır.
XxxDataAdapter_Name.fill (DatSet_Name)
Fill yöntemi bir tamsayı sonucu verir ve bu sayı DatSet‟te mevcut olan kayıtların sayısıdır.
Verilerin Form kontrolleri ile bağlantısı
1. Veri tabanını formunuza bağlayınız.
2. Veritabanınızdaki sütünlar için formunuzda açıklayıcı label ve textbox (combobox)
ekleyin.
3. Textboxların özelliklerinde DataBinding –Text özelliğini seçmek istedğiniz alan
olarak değiştirin. (DataSet, BindingSource ve TableAdapter nesneleri formunuza
otomatik olarak eklenecektir.)
4. Forma Data panelinden DataGridView ekleyin ve datasource özelliğini belirleyin.
5. Verilerin form başladığında görünmesi için Form_Load olayına aşağıdaki kodu yazın.
Name_TableAdapter.Fill(Name_DataSet.NameofTable)
6. Verilerin buton içinde kod ile ileri-geri kontrolleri için aşağıdaki kodu kullanın.
Name_BindingSource.MoveNext(Previous)
DataSet Nesnesini Kontrollere Bağlamak
150
ADO.NET
2009 2010
DataSet nesnesi ile veritabanının bir kopyası çekirdek belleğe atıldıktan sonra, bu veriler
çeşitli Windows kontrolleri ile gösterilebilir veya değiştirilebilir. Bu kontrollerin en önemlisi
DataGrid bileşenidir.
DataSet nesnesin içerdiği veri, Windows Form içindeki herhangi bir kontrolün herhangi bir
özelliğine bağlanabilir. Örneğin DataSet içindeki bir tablonun ilk satır ve sütunundaki veri,
TextBoxkontrolünün Textözelliğine bağlanabilir.
DataSet içindeki veriyi Windows kontrollere bağlamanın iki yöntemi vardır. Bu yöntemler
basit (simple data binding) ve karmaşık (complex data binding) veri bağlama olarak
adlandırılır.
Basit veri bağlama; DataSet içindeki bir veri elemanını (DataTable kolonunu) Windows
kontrollere bağlama işlemidir. TextBox, Label, RadioButton gibi kontroller bu gruba girer.
Örneğin, DataSet tablosundaki herhangi bir kolonu TextBox, Labelgibi Windows kontrollere
bağlamak.
Karmaşık veri bağlama; DataSet içindeki birden fazla veri elamanını Windows kontrollerine
bağlama işlemidir. DataGrid, ListBox, ErrorProvider gibi kontroller bu gruba girer.
Basit Bağlantı - CheckBox için: (diğerleri için de benzer şekilde herçekleşir.)
CheckBox‟ın DataBindings.Checked özelliğini, varolan DataSetteki tablonun kolonu ile
bağlayın.
151
ADO.NET
2009 2010
Textbox için ise Text kısmını bağlamanız gerekmektedir.
Karmaşık Bağlantı – Listbox için (diğerleri içinde aynıdır!)
ListBox‟ın DataSource özelliğinden DatSet i seçiniz. Ve DisplayMember özelliğini, Listbox‟ın
içerisinde görünmesi gereken kolon olarak belirleyin.
152
ADO.NET
2009 2010
Kod Kullanarak
ComboBox ve ListBox gibi kontrollere veri bağlamak için DataSource ve DataMember
özelliği kullanılır. DataSouce özelliği DataSet içindeki tablo ismini, DisplayMember ise tablo
kolonunu belirtir.
Örnekte, ComboBox ve ListBox kontrolünün DataSource ve DisplayMember özellikleri
kullanılmaktadır.
ComboBox1.DataSource = ds.Tables("kitaplar") „ds DataSetin adı!
ComboBox1.DisplayMember = _ ds.Tables("kitaplar").Columns("kitap_baslik").ToString
ListBox1.DataSource = ds.Tables("kitaplar")
ListBox1.DisplayMember = _ ds.Tables("kitaplar").Columns("kitap_baslik").ToString
Bir diğer özelliği de DataBinding.Add yöntemidir.
TextBox1.DataBindings.Add("Text", CustomerDataSet1, "Customers.Address")
153
ADO.NET
2009 2010
DataSet içindeki veriyi DataGridView’e Bağlamak
DataGridView, veriyi satırlar ve sütunlar halinde görüntüler. DataGridView ile ilişkisiz
DataSet tabloları kolay bir şekilde görüntülenebilir. Bu görüntü Excel tablolarına benzer.
DataGridView ilişkili DataSet tabloları da gösterebilir. Bu durumda istenilen tabloya
DataGridView üzerindeki gezinti köprülerinden erişilebilir. DataSet tablolarını
DataGridView kontrolüne bağlamak için iki yöntem kullanılır. Bu yöntemler grafiksel ve
programlama yöntemleridir.
Grafiksel yöntem ile bağlantısağlamak için aşağıdaki adımlarıtakip edin.
1
Araç kutusu üzerindeki DataGridView kontrolünü form üzerine sürükleyin.
2
DataGridView kontrolünün
DataSetnesnesine bağlayın.
DataSource
özelliğini,
önceden
oluşturulmuş
3
DataGridView kontrolünün DataMember özelliğini, DataSet tablolarının herhangi biri
ile bağlayın.
Programlama yöntemi ile bağlantı sağlamak için DataGridView nesnesinin DataSource
özelliği kullanılır. Örnekte, DataSet içindeki Kitaplar tablosu DataGridView kontrolüne
bağlanır.
DataGridView1.DataSource = ds.Tables("Kitaplar")
154
ADO.NET
2009 2010
DataTable Üzerine Yeni Veri Eklemek
DataTable, veritabanı tablolarını temsil eder. DataColumn, DataRow nesnelerinden oluşur.
DataSet içinde yeni bir DataTable oluşturduktan sonra, veritabanı üzerinde işlem
yapıyormuş gibi veri üzerinde düzenlemeler yapılabilir. DataTable, bu çevrimdışı
düzenlemeleri kabul veya iptal etme olanağı sunar.
DataTable nesnesine, yeni bir satır eklemek için DataRow nesnesi kullanılır. DataTable
nesnesinin NewRow metodu ile oluşturulan yeni satır, DataRow nesnesinin değişkenine
atanır.
155
ADO.NET
2009 2010
Örnekte, dtKitaplar tablosuna drNew isminde yeni bir kolon eklenmiştir.
Dim drNew As DataRow = dtKitaplar.NewRow()
DataRownesnesi tanımlandıktan sonra, index veya kolon isimleri üzerinden kolonlara değer
girilir.
Örnekte birinci kolona kitabın ISBN numarası, ikinci kolona ise yazar adi bilgileri girilmiştir.
drNew(0) = “9758725149”
drNew(1) = “Tamer Şahiner”
veya
drNew(“kitap_ISBN”) = “9758725149”
drNew(“kitap_yazar”) = “Tamer Şahiner”
Kolanlara bilgi girildikten sonra, tanımlanan DataRow nesnesi DataTable nesnesinin Rows
koleksiyonuna eklenir.
Örnekte drNew nesnesi, dtKitaplar nesnesinin Rows koleksiyonuna eklenir.
dtKitaplar.Rows.Add(drNew)
DataTable nesnesine DataRow kullanmadan kayıt eklenebilir. Örnekte dtKitaplarismindeki
DataTablenesnesine bu yöntem ile kayıt eklenmiştir.
dtKitaplar.Rows.Add(New Object() {“9758725149”, “Tamer Şahiner”})
DataTable Üzerindeki Veriyi Düzenlemek
DataRow ile DataTable içindeki kayıtlar değiştirilebilir. DataRow nesnesi ile satır
düzenleme işlemleri için aşağıdaki metotlar kullanılır.
156
ADO.NET
2009 2010
BeginEdit
EndEdit
CancelEdit
BeginEdit, veriyi düzenlerken oluşabilecek olayları askıya alır. Veriyi düzenlemek için Items
koleksiyonu kullanılır. EndEdit metodu ile, askıya alınan olaylar yeniden aktif edilir.
CancelEdit metodu ile değişikliklerden ve askıya alınan olaylardan vazgeçilir.
Örnekte, DataTable içindeki dördüncü kayıt için güncelleme işlemi yapılmıştır.
Dim drNew As DataRow = dtKitaplar.Rows(3)
drNew.BeginEdit()
drNew("kitap_baslik") = "yeni hayat"
drNew("kitap_yazar") = "can dündar"
drNew.EndEdit()
DataRow ile DataTable içindeki belirli bir satır silinebilir. Örnekte, DataTable içindeki
dördüncü kayıt silinmiştir.
Dim drSil As DataRow = dtKitaplar.Rows(3) dtKitaplar.Rows.Remove(drSil)
DataRownesnesinin Deletemetodu kullanılarak aktif kayıt silinebilir.
DrSil.Delete()
Windows Form ile Kayıt Üzerinde Hareket Sağlamak
Verileri düzenlemeden önce, hangi veri üzerinde düzenleme yapılacağının tespit edilmesi
gerekir. Windows Form uygulamaları, veri içinde hareket sağlanan nesneler ile verilerin
bağlı olduğu katmanı yönetebilir. Bunun için gerekli olan komut:
BindingContext(DatSet_Name, “Table_Name”). Position = …
157
ADO.NET
2009 2010
Veri Arama ve Sıralama
DataSet içinde veri arama ve sıralama işlemleri yapmak için, DataTable sınıfının arama ve
sıralama metotlarıkullanılır. DataTable sınıfının Find metodu, birincil anahtar değerine
göre arama yapılmasını sağlar. Select metodu ise, belirli bir arama kriterine göre arama
yapılmasınısağlar. Selectmetodu ile geriye satır koleksiyonları döndürülür.
Örnekte DataTable sınıfının Find metodu ile kitap barkod numarasına göre arama yapılır.
Bu aramanın sonucunda yazar adı geriye döndürülür.
Dim conn As New OleDbConnection("provider =" & _ “microsoft.jet.oledb.4.0;data
source=c:\Proje\stok.mdb")
Dim da As New OleDbDataAdapter("select * from" & _ "kitaplar",conn)
Dim tbl As New DataTable
da.Fill(tbl)
tbl.PrimaryKey = _ New DataColumn(){tbl.Columns("kitap_ISBN")}
Dim row As DataRow = tbl.Rows.Find("97512533")
If row Is Nothing Then
MessageBox.Show("Kayıt Bulunamadı!")
Else
MessageBox.Show(row("kitap_yazar"))
End If
Örnekte Tbl ismindeki DataTable nesnesine, DataAdapter nesnesinden gelen kayıtlar
doldurulur. Tbl tablosunun Kitap_ISBN kolonu birincil anahtar olarak atanır. Row isminde
yeni bir DataRow tanımlanır. DataTable nesnesinin Find metoduna kitabın barkod
158
ADO.NET
2009 2010
numarasıgirilir ve sonuç Row değişkenine aktarılır. Son olarak Rowdeğişkeni içindeki sonuç
ekrana yazılır.
Arama işlemlerinde özel karakter kullanılabilir. Örneğin yazar ismi ”E„ harfi ile başlayan
kayıtlarısorgulamak için aşağıdaki komut kullanılır.
Select * from kitaplar Where kitap_yazar Like 'E%'
DataTable sınıfının Select metodu ile DataRow nesnelerinden oluşan bir koleksiyon geri
döndürür. Select metodu aslında orijinal DataSet içindeki satırları işaret eden işaretçiler
kümesi olarak da algılanabilir. Veri kopyalama yapmaz, ancak değişimleri görüntüler.
Örnekte, DataTable sınıfının Select metodu kullanılarak kitap fiyatı sekizden farklıkayıtlar
gösterilmektedir. Bu kayıtlar kitap isimlerine göre sıralanmıştır.
Dim selRows As DataRow() = tbl.Select("kitap_fiyat <> 8", _ "kitap_baslik ASC",
DataViewRowState.CurrentRows) Dim row As DataRow
For Each row In selRows MessageBox.Show("kitap: " & _
DataRowVersion.Original)) Next
row("kitap_baslik",
Select metodunun dört farklı kullanımı vardır. Bu kullanımlar aşağıda listelenmiştir.
public DataRow() Select()
public DataRow() Select(filterExpression as string)
public DataRow() Select(filterExpression as string, _ sort as string)
public DataRow() Select(filterExpression as string, _ sort as string, _ recordStates as
DataViewRowState)
Select metodunun filterExpression, Sortve recordStatesisminde üç parametresi
bulunur. filterExpression, filtreleme yapılacak ifadeyi içerir.
"Country = „Turkey' AND City <> 'Ankara'"
Sort, sonuçların hangi sırada görüntüleneceğini belirtir.
“City DESC”
Veriler artan ve azalan olmak üzere iki şekilde sıralanabilir. Sıralanacak kolonun sonuna;
azalan sıralama için DESC, artan sıralama için ASC anahtar sözcüğü yazılır.
recordStates ise, kayıtların durumuna göre, (Deleted, Modified gibi) seçim yapar.
159
SETUPADO.NET
Bölüm 10.
2009 2010
SETUP
1) File/Add Project kısmından New Project seçeneğini işaretleyelim. Gelen ekrandan
Project Types kısmından Setup and Deploymeııt Projects klasörünü seçtikten sonra,
Templates bölümünden Setup Project seçerek ismine “pec” yazıp, OK butonuna
basalım. Kaydettiğiniz yeri unutmayınız çünkü Setup için gerekli dosyalar buraya
kopyalanacaktır.
2) Ekran görüntüsü, aşağıdaki gibi olacaktır. Burada programın kurulacağı yer ile ilgili
ayarlar Application Folder kısmından yapılır.
3) ApplicationFolder'ın özelliklerinde bulunan
DefauItLocation ile kurulum
yapıldığında, kurulum dosyalarının nerede olacağını belirleyebiliriz. Biz
ProgramFiles klasörü içinde olmasını istediğimiz için, şekildeki gibi değişiklik yaptık.
160
SETUP
2009 2010
4) ApplicationFolder üzerine sağ tuşa basarak Add File seçeneğinden Setup‟ı
oluşturacak projenin bulunduğu yere gidelim, Bin klaösrü içindeki .exe uzantılı
dosyayı seçelim. Örnekte setuplar.exe olarak alınmıştır.
5) Yine ApplicationFoIder üzerinde sağ tuşa basarak Add/Project Outpııl seçeneğine
tıklayarak, gelen ekrandan exe ve dll'leri kapsayan Primary Output'u seçip, OK
butonuna basalım.
161
SETUPADO.NET
2009 2010
6) UserPrograms menü üzerine sağ tuşa basığ Add Folder‟ı seçiniz. İsmine “pec”
yazınız. Sonra “pec” klasörü seçili iken bölmenin sağ kısmına geçerek, Create New
Shortcut seçeneğine tıklayınız. Bunun sonucunda aşağıdaki ekran karşımıza gelir.
7) Yukarıdaki şekil üzerinde Application Folder üzerine iki kez tıklayarak daha önce
eklettiğimiz "setuplar.exe" dosyasını seçip, OK butonuna basalım.
162
SETUP
2009 2010
8) Eklenen kısayolun ismini "prestigeturk" olarak değiştirelim. Böylelikle program
kurulunca Start/Programs seçeneği içinde "pec" isimli bir klasör ve içinde programı
çalıştırmak için" prestig"e isimli bir kısayol oluşacaktır.
9) Programı kurunca, masaüstüne de kısayolunun gelmesi için User's Desktop klasörü
seçili iken bölmenin sağ kısmına geçerek, Create New Shortcut seçeneğine
tıklayınız. Yine dosyamızı seçerek, ismini "prestige" yapalım.
10) Bu kısayollara kısayol oluşturmak için ilk önce ApplicationFolder üzerinde sağ tuşa
basarak Add/File seçeneğini kullanıp, istediğiniz yerden bir Icoıı getiriniz. Ardından
"prestige" kısayolunun özelliklerinden Icon seçeneğinden, Browse alt seçeneğine
tıklayarak, ApplicationFolder içinden ekletmiş olduğunuz Icon'u seçiniz.
163
SETUPADO.NET
2009 2010
11) Setup projemize "pec" Setup projemizi seçerek, Properties penceresine geçelim. Bu
kısımda kurulan program hakkında çeşitli bilgiler verebiliriz. Programı açıklayıcı
bilgiyi Description hakkında bilgiyi Manufacturer destek bilgilerini Support
kısımlarına yazabiliriz.
Programı kuran kişi bu bilgileri Control Panel içindeki Add/ Remove Programs
kısmından görebilir.
12) "pec" isimli Setup projenizin üzerinde sağ tuşa basarak View seçeneğine tıklarsanız,
diğer görünümlerin listesi ile karşılaşırsınız. Bu listeden ekranının ayarlan için
Userlnterface seçeneğine tıkladığımızda görüntü aşağıdaki gibi olacaktır:
164
SETUP
2009 2010
13) Bir önceki adımda gelen ekrandan Start seçeneğinin altında bulunan Welcome alt
seçeneğinin Properties penceresini aşağıdaki gibi yapılandıralım;
14) Bir Setup'da olması gerekenleri aşağı yukarı koyduktan sonra, Build menüsünden
Build pec seçeneği ile derleyelim. Bir hata ile karşılaşmadığınızı bildiren sağ alt
köşedeki Build succeeded yazısı ile karşılaşırsanız, işlem tamamdır. Artık,
projelerinizi tamamen kapatabilirsiniz.
15) Setup projesini kaydettiğiniz "pec" klasörünü açıp, Debug klasörüne geçtiğinizde
aşağıdaki şekilde "pec.msi"dosyasını görebilirsiniz.
16) Şimdi adım adım kurulumu gerçekleştirmek için, "pecmsi" dosyası nu tıklayalım.
17) İlk olarak karşımıza gelen görüntü, aşağıdaki gibidir. Next butonıı ile devam edelim.
165
SETUPADO.NET
2009 2010
18) Belirlediğimiz kurulum yeri, burada görünmektedir. İstenirse Browse değiştirilebilir.
Devam için Next butonuna basalım.
19) Tekrar Next butonuna basınca kurulum başlayacaktır ve kurulum tamamlanınca,
aşağıdaki bilgi ekranı karşımıza çıkacaktır. İşlemi sonlandırmak için Close butonuna
basmamız yeterli olacaktır.
166
SETUP
2009 2010
20) Şimdi de kurulum sonuçlarını incelemek için ilk olarak ProgramFiles klasörü içindeki
"Pec" klasörünü açalım ve gerekli dosyalann burada yer aldığını, şekildeki gibi
gözlemleyelim
21) Hem masaüstünde, hem de Start menüsündeki Programs grubu içinde oluşan "pec"
klasörü içinde "prestige" kısayolunu görebiliriz.
22) Bunlardan herhangi birine tıkladığımız zaman, programımız çalışacaktır .Bu
programm çalışacağı bilgisayarda sadece Framework 1.1'in kurulu olması yeterlidir.
167
SETUPADO.NET
2009 2010
23) Son olarak program ile ilgili bilgileri bulmak için Control Panel içinde bulunan Add
or Remove Programs seçeneğine tıkladığımızda, programın listede yerini aldığını
göreceksiniz. Buradan isterseniz Remove ile kaldırabilrsiniz.
24) Program ile ilgili bilgileri öğrenmek içinse ortadaki Click here for support
information Link'ine tıklamanız yeterlidir. Bunun sonucunda Setup yapılandınlması
sırasında kazandırdığınız özellikler, şekildeki gibi görüntülenecektir:
168
Download