Yazõlõm Profesyoneli 2 Software Professional 2 Yazan: Fulya SATAR Engin ÖREN Editörler: Tamer ŞAHİNER Tuncer KARAARSLAN Yayõna Hazõrlayan: Selçuk TÜZEL Grafik Uygulama: Zeynep ÇÖMLEKÇİ Kapak Tasarõmõ: Selim Şahin Baskõ: Lebib Yalkõn Şef Editör: Mehmet ÇÖMLEKÇİ 1. Baskõ: 2005 Copyright 2005, Bilge Adam Kitabõn yayõn haklarõ Bilge Adam Bilgi Teknolojileri Akademisi ne aittir. Firmadan yazõlõ izin almadan kõsmen veya tamamen alõntõ yapõlamaz, hiçbir şekilde kopya edilemez, çoğaltõlamaz ve yayõmlanamaz.
Önsöz.NET yazõlõm teknolojisi ile yeni tanõşan ya da daha önceden.net yazõlõm geliştirme araçlarõyla kõsa bir süre çalõşma imkanõ bulmuş okurlar için temel bir başvuru niteliğindeki bu yayõn ile windows ve web tabanlõ uygulamalar geliştirebileceksiniz. Veri tabanõ programlama ve web programlama konularõnda sizlerin çok iyi seviyelere gelmesine destek verecektir. Eğitimcilerinizi yakõndan takip etmenizi sağlayacak bu yayõn ile bol bol örnek kod inceleme fõrsatõna sahip olacaksõnõz. Yazõlõm profesyonelleri için hazõrlanan bu yayõnda emeği geçen tüm yazõlõm ekibindeki arkadaşlarõma teşekkür ederim. Yazarlõk katkõlarõndan dolayõ Fulya SATAR a, bu yayõnõn hazõrlanmasõnda büyük emek ve fedakarlõklarõndan dolayõ özellikle Tamer ŞAHİNER e ve yayõndaki büyük emeklerinden dolayõ Engin ÖREN e teşekkür ederim. Ayrõca yayõnõn içeriğinin oluşmasõnda fikirlerini sürekli bizimle paylaşan yazõlõm ekibindeki eğitimcilerimize teşekkürler. Tuncer KARAARSLAN
İçindekiler Modül 1: Geliştirme Ortamõnõ Tanõmak...3 Konu 1: Visual Basic.NET ile Proje Oluşturmak... 4 Proje Şablonu Seçmek...5 Proje Dosyalarõna Genel Bakõş...7 Assembly Nedir?...9 Projeye Referans Eklemek... 10 İsim Alanõ (Namespace) Nedir?... 12 Yeni İsim Alanõ Eklemek... 13 Projeye İsim Alanõ Dahil Etmek... 15 Proje Özelliklerini Ayarlamak... 17 Konu 2 : Proje Bileşenlerini Tanõmak... 19 Solution Explorer Kullanmak... 20 Object Browser Kullanmak... 21 Server Explorer Kullanmak... 22 Dinamik Yardõm Almak... 23 Görev Listesini Kullanmak... 24 Konu 3: Uygulamalarda Hata Ayõklama... 25 BreakPoint... 26 Debug Panelleri... 27 Command Panelini Kullanmak... 28 Konu 4: Uygulamanõn Derlenmesi... 29 Derleme Seçeneklerine Bakõş... 30 Modül Özeti... 31 LAB 1: Geliştirme Ortamõnõ Tanõmak... 32 Uygulama 1: Windows Uygulamasõ Oluşturmak... 32 Çağrõ Merkezi Uygulamasõnõ Oluşturmak... 32 Uygulama 2: Object Browser Kullanmak... 33 System.Data Kütüphanesini Açmak... 33 Uygulama 3: Debug Aracõnõ Kullanma... 33 Kodlarõn Yazõlmasõ... 33 Hata Ayõklama... 34
İçindekiler V Modül 2: Veri Merkezli Uygulamalar ve ADO.NET e Giriş. 37 Konu 1: Veri Merkezli Uygulamalar... 38 Veri Depolama... 39 Bağlantõlõ (Connected) Veri Ortamlarõ... 40 Bağlantõsõz (Disconnected) Veri Ortamlarõ... 41 Veri Erişim Yöntemleri... 43 Konu 2: ADO.NET e Giriş... 46 ADO.NET Nedir?... 47 ADO.NET Nesne Modeli... 48 ADO.NET Veri Sağlayõcõlarõ... 49 Modül Özeti... 53 Lab 2: Veri Merkezli Uygulamalar ve ADO.NET e Giriş... 54 Uygulama 1: Yeni bağlantõ oluşturmak... 54 Çağrõ Merkezi Uygulamasõ İçin Yeni Bağlantõ Oluşturmak... 54 Modül 3: Veri Kaynaklarõna Bağlanmak... 59 Konu 1: Veri Sağlayõcõ Seçmek... 60 Veri Sağlayõcõ Nedir?... 61 Veri Sağlayõcõ Sõnõflarõ... 62 Konu 2: Bağlantõ Oluşturmak... 66 Bağlantõ Cümlesi (Connection String) Oluşturmak... 67 Bağlantõ Cümlesini (Connection String) Kullanmak... 69 Bağlantõ Cümlesi(Connection String) Örnekleri... 71 Ms Access ile OLEDB Bağlantõ Cümleleri... 72 SQL Server ile ODBC Bağlantõ Cümleleri... 73 SQL Server ile OLEDB Bağlantõ Cümleleri... 74 SQL Server ile SQL Server Bağlantõ Cümleleri... 75 Konu 3: Bağlantõ Yönetimi... 76 Bağlantõyõ Açmak ve Kapatmak... 77 Bağlantõ Durumlarõnõ Kontrol Etmek... 80 Modül Özeti... 82 Lab 1: Bağlantõ Oluşturmak... 83 Kontrollerin Eklenmesi... 83 Kodlarõn Yazõlmasõ... 84
VI İçindekiler Modül 4: Bağlantõlõ (Connected) Veritabanõ İşlemleri...91 Konu 1: Bağlantõlõ Veri Ortamlarõyla Çalõşmak... 92 Bağlantõlõ Uygulamalar İçin Veritabanõ Mimarisi... 93 Konu 2: Command ile Çalõşmak... 95 Command Nedir?... 96 Command Oluşturmak... 99 Parametre Kullanmak... 101 Konu 3: Command ile Geriye Değer Döndürmek... 105 Konu 4: Command ile Geriye Kayõt Döndürmek... 107 DataReader Özellik ve Metotlarõ... 107 Konu 5: Command ile Kayõt Döndürmeyen Sorgular Çalõştõrmak... 113 Modül Özeti... 117 Lab 1: Veritabanõ İşlemleri... 118 Veritabanõnõn Oluşturulmasõ... 118 Kontrollerin Eklenmesi... 119 Kodlarõn Yazõlmasõ... 119 ExecuteNonQuery Metodu... 120 ExecuteReader ve DataReader... 121 Form Kontrolleri İşlemleri... 122 Yordamlarõn Formda Kullanõlmasõ... 123 Modül 5: Bağlantõsõz (Disconnected) Veritabanõ İşlemleri129 Konu 1: Disconnected Uygulamalar İçin Veritabanõ Mimarisi... 130 Konu 2: DataSet ve DataTable Oluşturmak... 132 DataSet Nesne Modeli... 133 Konu 3 : DataAdapter ile Kayõtlarõ Dataset e Doldurmak... 137 Konu4: DataSet Nesnesini Kontrollere Bağlamak... 139 DataSet İçindeki Veriyi Windows Kontrollerine Bağlamak... 140 DataSet İçindeki Veriyi DataGrid e Bağlamak... 142 Konu : 5 DataTable Üzerindeki Veriyi Düzenlemek... 143 Windows Form ile Kayõt Üzerinde Hareket Sağlamak... 146
İçindekiler VII Lab 1: Bağlantõsõz Veritabanõ İşlemleri...148 Veritabanõnõn Oluşturulmasõ...148 Kontrollerin Eklenmesi...149 Bağlantõ Cümlesinin Oluşturulmasõ...150 Bağlantõnõn Oluşturulmasõ...150 DataAdapter Nesnesinin Oluşturulmasõ...151 DataSet Nesnesinin Oluşturulmasõ...151 DataSet İçindeki Verinin DataGrid Kontrolüne Bağlanmasõ...151 DataSet İçindeki Verinin TextBox Kontrollerine Bağlanmasõ...152 Kodlarõn Yazõlmasõ...152 Konu 6: Veri Arama ve Sõralama...154 DataView Özellik ve Metotlarõ...157 Modül Özeti...159 Lab 2: Çoklu Tablolarla Çalõşmak...160 Veritabanõnõn Projeye Eklenmesi...161 Kontrollerin Eklenmesi...161 Bağlantõ Cümlesinin Oluşturulmasõ...161 Bağlantõnõn Oluşturulmasõ...162 DataAdapter Nesnesinin Oluşturulmasõ...162 DataSet Nesnesinin Oluşturulmasõ...164 DataView Nesnesinin Oluşturulmasõ...164 DataSet İçindeki Verinin ComboBox Kontrolüne Bağlanmasõ...165 Kodlarõn Yazõlmasõ...165 Modül 6: ASP.NET e Giriş... 169 Konu 1: ASP.NET Nedir?...170 Konu 2: ASP Tarihçesi...171 Konu 3: ASP.NET Uygulama Mimarisi...172 İstemci Katmanõ (Presentation Tier)...172 İş katmanõ (Business Logic Tier)...172 Veri Katmanõ (Data Tier)...172 Konu 4: ASP.NET Çalõşma Modeli...173 Tür Yönetimi (Type Management)...174 JIT Derleme (JIT Compilation)...175 Hafõza Yönetimi (Memory Management)...176 Exception Yöneticisi (Exception Manager)...177
VIII İçindekiler Konu 5: ASP.NET in.net Çatõsõndaki Yeri... 180 Konu 6:.NET Framework ün ASP.NET teki Avantajlarõ... 181 Konu 7: ASP.NET ile Uygulama Geliştirmek... 182 IIS Nedir?... 183 IIS Kurulumu ve Yönetimi... 184 IIS Kurulumu... 185 IIS Yönetimi... 187.NET Framework Kurulumu... 190 Modül Özeti... 191 Lab 1: Web Tabanlõ Uygulamalarõn Yayõnlanmasõ... 192 IIS (Internet Information Services) Kurulmasõ... 192 Uygulama Yayõnlamak... 192 Modül 7: ASP.NET Web Form ve Kontrolleri ile Çalõşmak197 Konu 1: Web Form Bileşenleri... 198 Page Özelliği... 200 Body Özelliği... 202 Form Özelliği... 203 Konu 2: Server (Sunucu) Kontroller... 204 Konu 3: Kontrollerin Sõnõflandõrõlmasõ... 205 Standart Kontroller... 205 Doğrulama Kontrolleri... 206 Zengin Kontroller... 206 İlişkisel Liste Tabanlõ Kontroller... 206 Konu 4: Standart Kontroller... 207 Label... 207 TextBox... 207 Button... 207 CheckBox... 208 RadioButton... 209 HyperLink... 210 Image... 210 ImageButton... 210 LinkButton... 211 DropDownList... 212 ListBox... 213
İçindekiler IX Panel...214 Table...214 Konu 5: Doğrulama(Validation) Kontrolleri...216 RequiredFieldValidator...217 CompareValidator...217 RangeValidator...218 RegularExpressionValidator...219 CustomValidator...220 ValidationSummary...222 Konu 6: Zengin Kontroller...223 AdRotator...223 Calendar...224 Konu 7: AutoPostBack Özelliği...226 Konu 8: ViewState...228 Modül Özeti...229 Lab 1: E-Ticaret Uygulamasõ Geliştirmek...230 Veritabanõnõn Projeye Eklenmesi...230 Web Formlarõn Eklenmesi...231 UyeKayit Formunun Eklenmesi...231 UyeGiris Formunun Eklenmesi...236 Giris Formunun Eklenmesi...238 Kayit Formunun Eklenmesi...240 Satis Formunun Eklenmesi...242 Modül 8: ASP.NET ile Kod Geliştirmek... 247 Konu 1: Kod Yazmak...248 Inline Kod Yazmak...249 Code-Behind Kod Yazmak...250 Konu 2: Client Side (İstemci Taraflõ) Olay Prosedürleri...252 Konu 3: Server Side (Sunucu Taraflõ) Olay Prosedürleri...253 Olay Prosedürleri Oluşturmak...254 Olay Prosedürlerinde Kontrollerle Etkileşim...255 Konu 4: Sayfa Yaşam Döngüsü...256 Response.Redirect...257 Postback İşlemleri...258
X İçindekiler Page.IsPostback... 259 Modül Özeti... 260 Lab 1: ASP.Net ile Kod Geliştirmek... 261 Web Uygulamasõ Oluşturmak... 261 Web Form Eklenmesi... 261 Kodlarõn Yazõlmasõ... 262 Modül 9: Web Programlamaya Giriş... 267 Konu 1 : Web Programlamaya Giriş... 268 Konu 2: HTML... 269 HTML Yapõsõ... 269 Tag... 270 Attribute... 271 Value... 272 HTML Belgesi Nasõl Oluşturulur?... 273 En Sõk Kullanõlan Etiketler... 274 Başlõklar... 274 Paragraf ve Satõr Sonu... 274 Sayfalara Bağlantõ Vermek... 275 Listeler... 275 Resim Görüntüleme... 276 Tablolar... 276 Konu 3: Script Nedir?... 278 JavaScript... 279 Değişkenler... 281 Operatörler... 282 Klavyeden Bilgi Almak ve Ekrana Çõktõ Vermek... 284 Koşul ve Döngü Yapõlarõ... 284 Fonksiyonlar... 286 JavaScript Nesneleri... 286 Olaylar... 288 VbScript... 291 Konu 4: CSS... 294 İç (Inline)... 294 Gömülü (Embedded)... 294 Bağlantõlõ (Linked)... 295 Style Sheet lerin Söz Dizimi... 296 Seçiciler... 298
İçindekiler XI Linkler ve CSS...298 Sõnõf ve Gruplama...299 Modül Özeti...300 Lab 1: Web Programlamaya Giriş...301 Web Uygulamasõ Oluşturmak...301 Sanal Klavye Oluşturmak...301 Kodlarõn Yazõlmasõ...304 Popup Pencere Oluşturmak...306 Kodlarõn Yazõlmasõ...307 Modül 10: Kullanõcõ Kontrolleri Oluşturmak... 311 Konu 1: Kullanõcõ Kontrolleri...312 Kullanõcõ Kontrolünün Avantajlarõ...312 Kullanõcõ Kontrolünü Projeye Eklemek...313 Modül Özeti...317 Lab 1: E-Ticaret Uygulamasõ Geliştirmek...318 Kullanõcõ Kontrollerin Eklenmesi...318 Ust Kontrolünün Eklenmesi...318 Alt Kontrolünün Eklenmesi...320 Yan Kontrolünün Eklenmesi...321 DataSet Nesnesinin Oluşturulmasõ...322 Bağlantõ Oluşturulmasõ...322 Kategori Kontrolünün Eklenmesi...322 Modül 11: ADO.NET ile Veriye Erişim... 327 Konu 1: Veri Bağlantõlõ Kontroller...328 CheckBoxList ve RadioButtonList Kullanõmõ...329 Repeater, DataList ve DataGrid Kullanõmõ...331 Repeater...332 DataList...335 DataGrid...338 DataGrid Kontrolünde Kolon Oluşturmak...340 DataGrid Kontrolünde Sõralama ve Sayfalama...349 PlaceHolder Kullanõmõ...351 Konu 2: Connected ve Disconnected Uygulamalar Geliştirmek...353 Namespace...355
XII İçindekiler Modül Özeti... 356 Lab 1: E-Ticaret Uygulamasõ Geliştirmek... 357 Connect Veritabanõ İşlemleri... 357 UyeKayit Formu ile Veritabanõ İşlemlerinin Yapõlmasõ... 357 UyeGiris Formu ile Veritabanõ İşlemlerinin Yapõlmasõ... 358 KitapDetay Formunun Eklenmesi ve Veritabanõ İşlemlerinin Yapõlmasõ... 360 Disconnect Veritabanõ İşlemleri... 365 Default Formunun Eklenmesi ve Veritabanõ İşlemlerinin Yapõlmasõ... 365 DataSet İçine DataTable Eklenmesi... 367 Kitap Formunun Eklenmesi ve Veritabanõ İşlemlerinin Yapõlmasõ... 368 DataSet İçine DataTable Eklenmesi... 371 Modül 12: ASP.NET ile Durum Yönetimi... 375 Durum Yönetimi... 376 Konu 1: Session... 378 Session Değişkenine İlk Değer Vermek... 380 Konu 2: Cookie... 381 Cookie Türleri... 382 Konu 3: Application... 385 Application Değişkenine İlk Değer Vermek... 386 Konu 4: Global.asax... 388 Modül Özeti... 390 Lab 1: E-Ticaret Uygulamasõ Geliştirmek... 391 Session Kullanmak... 391 UyeGiris Formu İçinde Session Kullanmak... 391 KitapDetay Formu İçinde Session Kullanmak... 393 Ust Kullanõcõ Kontrolü İçinde Session Kullanmak... 394
Modül 1: Geliştirme Ortamõnõ Tanõmak Bu modülde, Visual Studio.NET ortamõ ile tanõşacak ve bu ortam içinde kullanõlan temel proje bileşenleri hakkõnda genel bilgiler edineceksiniz. Ayrõca çalõşma zamanõ hatalarõnõ yakalamayõ ve uygulamayõ derlemeyi öğreneceksiniz. Bu modül tamamlandõktan sonra;! Proje oluşturabilecek,! Projeye referans ekleyebilecek,! Projeye isim alanõ ekleyebilecek,! Proje özelliklerini değiştirebilecek,! Dinamik yardõm alabilecek,! Proje içine görevler ekleyebilecek! Çalõşma zamanõ hatalarõnõ yakalayabilecek,! Uygulamalarõ derleyebileceksiniz.
4 Modül 1: Konu 1: Visual Basic.NET ile Proje Oluşturmak Visual Studio ortamõ, Visual Basic.NET projelerini kolay bir şekilde oluşturma imkanõ sağlar. Projenin çalõşmasõ için gereken dosyalarõ otomatik olarak ekler. Projenin geliştirilme aşamasõnda yeni bileşenlerin eklenmesi, menü ve araç çubuklarõ ile kolay bir şekilde gerçekleştirilir.
Geliştirme Ortamõnõ Tanõmak 5 Proje Şablonu Seçmek Visual Basic.NET ile Windows tabanlõ ve Web tabanlõ gibi çeşitli projeler geliştirilebilir. Bu projeler farklõ platformlarda çalõşacağõ veya farklõ amaçlara yönelik oluşturulacağõ için, başlangõç bileşenleri farklõlõk gösterir. Örneğin, Windows tabanlõ projeler için Windows formlarõnõn kullanõlmasõ ve bazõ referanslarõn eklenmesi gerekir. Visual Studio ortamõnõn sağladõğõ şablonlar, proje dosyalarõnõn başlangõç kodlarõnõ otomatik olarak yazõp gerekli referanslarõ ekleyerek geliştiriciye hõzlõ bir başlangõç sağlar.! Windows Application: Windows tabanlõ uygulamalar geliştirmek için kullanõlõr.! Class Library: Diğer projeler için class kütüphaneleri sağlayan DLL (Dynamic Link Library) oluşturmak için kullanõlõr. Bu bileşenler projelere Reference olarak eklenerek tekrar kullanõlõr.! Windows Control Library: Kullanõcõ tanõmlõ Windows kontrolleri oluşturmak için kullanõlõr. Bu kontroller Windows uygulamalarõnda, birçok formda tekrar kullanõlmak üzere tasarlanõr.! Smart Device Application: Mobil cihazlar üzerinde uygulama geliştirmek için kullanõlõr.! ASP.NET Web Application: IIS (Internet Information Services) üzerinde çalõşacak Web uygulamalarõ geliştirmek için kullanõlõr.! ASP.NET Web Service: Web uygulamalarõna XML Web Service sağlayan projeler geliştirmek için kullanõlõr. Oluşturulan bu projeler, diğer uygulamalara Web Reference olarak eklenir.! Web Control Library: Web uygulamalarõnda, kullanõcõ tanõmlõ kontroller oluşturmak için kullanõlõr.
6 Modül 1:! Console Application: Komut penceresinde çalõşacak konsol uygulamalarõ geliştirmek için kullanõlõr.! Windows Service: Windows altõnda sürekli çalõşan uygulamalar için kullanõlõr. Bu uygulamalar, kullanõcõlarõn sisteme giriş yapmadõğõ durumlarda da çalõşmaya devam eder.! Other Projects: Enterprise Applications (şirket uygulamalarõ), Deployment Projects (yükleme projeleri), Database Projects (veritabanõ projeleri) gibi değişik şablonlardõr.! Empty Project: Herhangi bir şablon uygulanmadan açõlan Windows projelerdir. Başlangõç nesnesi ve referanslar eklenmez.! Empty Web Project: Herhangi bir şablon uygulanmadan açõlan Web projelerdir. Bu proje IIS üzerinde tanõmlanõr ancak form ve referans nesneleri eklenmez.! Blank Solution: Başlangõç olarak bir proje açõlmaz. Boş bir solution dosyasõ açõlõr. İstenen projeler, Add New Project komutu ile bu solution içine dahil edilir. Visual Studio ile yeni bir proje birkaç adõmda oluşturulabilir. 1. File menüsünden New alt menüsünü işaretleyin ve Project komutunu seçin. 2. New Project penceresinde Visual Basic Projects tipini ve çalõşmak istediğiniz şablonunu seçin. 3. Name özelliğinde projeye vereceğiniz ismi yazõn. 4. Location özelliği projenin dosyalarõnõn bulunacağõ yeri belirler. Browse düğmesini tõklayarak Windows dizinine ulaşõn ve projenin yerini seçin. 5. More düğmesi tõklandõğõnda, solution dosyasõ için yeni bir isim kullanõlmasõnõ ve ayrõ bir klasör açõlmasõnõ sağlayan panel görüntülenir. Solution için farklõ bir isim vermek için Create directory for Solution seçeneğini işaretleyin ve metin kutusuna solution için yeni bir isim yazõn. 6. OK düğmesi tõklandõğõnda proje açõlõr. Solution için ayrõ bir klasör seçilmemişse, proje dosyalarõ proje ismi ile oluşturulan klasör altõnda oluşturulur.
Geliştirme Ortamõnõ Tanõmak 7 Proje Dosyalarõna Genel Bakõş Visual Basic.NET ile oluşturulan bir projenin çalõşmasõ için gereken bazõ dosyalar vardõr. Bu dosyalarõn birçoğu, projenin tipine göre farklõlõk gösterir. Yeni bir proje açõldõğõnda, projeye verilen isim ile bir klasör açõlõr ve proje dosyalarõ bu klasör altõna yerleştirilir.! Solution Dosyalarõ (.sln,.suo). Visual Basic.NET projeleri bir solution dosyasõ (.sln) altõnda oluşturulur. Solution dosyasõ farklõ projeleri bir arada tutar ve birden fazla projeyi içinde barõndõrõr. Visual Studio ile proje oluşturulurken solution dosyasõ otomatik olarak eklenir. Solution User Option (.suo) dosyalarõ, kullanõcõnõn solution ile çalõşõrken yaptõğõ ayarlarõ tutar ve proje tekrar açõldõğõ zaman bu ayarlarõ getirir.! Project Dosyalarõ (.vbproj,.vbproj.user). Bir projenin içinde bulunan bileşenlerin, eklenen referanslarõn tutulduğu proje dosyasõdõr. Visual Basic projeleri.vbproj uzantõlõ dosya ile oluşturulur. Bu dosya aynõ zamanda, bir solution içinde farklõ dilde ve tipteki projeleri ayõrt etmek için kullanõlõr. Projeye özgü ayarlar ise.vbproj.user dosyasõnda tutulur.! Yerel Proje Dosyalarõ (.vb). Form, class, module gibi bileşenlerin tutulduğu dosyalardõr..vb uzantõlõ bir dosya içinde birden çok class ve module tutulabilir. Ancak projedeki her form için ayrõ bir.vb dosyasõ oluşturulur.! Web Projeleri Dosyalarõ (.aspx,.asmx,.asax). Web uygulamalarõnda oluşturulan dosyalar Web sunucusunda (ISS) tutulur. Bu dosyalar web formlarõ için.aspx, Web Service için.asmx, global sõnõfõ için.asax uzantõsõna sahiptir.
8 Modül 1: Proje oluşturulduktan sonra yeni nesnelerin eklenmesi Project menüsü ile ya da Solution Explorer paneli kullanõlarak gerçekleştirilir. Project menüsünden yeni bir form, module, class, component ya da user control eklemek için ilgili menü komutu seçilebilir. Add New Item komutu ile farklõ tipte birçok dosya projeye dahil edilebilir.
Geliştirme Ortamõnõ Tanõmak 9 Assembly Nedir? Visual Studio.NET ortamõnda geliştirilen uygulamalar derlendiğinde,.exe veya.dll uzantõlõ dosyalar oluşur..net in otomatik olarak oluşturduğu bu dosyalara assembly denir. Assembly içinde dosyaya ait başlõk, açõklama ve telif hakkõ gibi kritik bilgiler tutulur. Visual Studio.NET içinde geliştirilen bir projeye, farklõ kişiler tarafõndan geliştirilmiş assembly ler eklenebilir. Özellikle gelişmiş projelerde assembly ler ayrõ programcõlar tarafõndan yazõlarak ortak bir proje altõnda toplanabilir.
10 Modül 1: Projeye Referans Eklemek Herhangi bir projenin içine bileşen kütüphanelerinin eklenmesi için kullanõlõr. Bu bileşen kütüphaneleri,.net ve COM bileşenlerden oluşur. Projeye referans eklemek için aşağõdaki adõmlarõ takip edin: 1. Solution Explorer penceresinden References menüsünü sağ tõklayõn. 2. Açõlan menüden Add Reference komutunu verin. 3. Açõlan pencere üzerinden.net, COM, Projects sekmelerinden herhangi birini seçin..net, projeye NET bileşen kütüphanelerini eklemek için kullanõlõr. COM, projeye COM bileşen kütüphanelerini eklemek için kullanõlõr. Projects, proje ile aynõ solution içinde yer alan bileşen kütüphanelerini eklemek için kullanõlõr. 4. Eklenecek assembly nesnesini seçin ve Select düğmesini tõklayõn. Birden fazla assembly seçmek için aynõ işlemi tekrar edin. 5. Referans ekleme işlemini tamamlamak için OK düğmesini tõklayõn. Proje şablonlarõ içinde en çok kullanõlan referanslar şunlardõr:
Geliştirme Ortamõnõ Tanõmak 11! System: Programõn çalõşmasõ için gerekli en temel referanstõr. System.dll kütüphanesi içinde tutulur.! System.Data: Veritabanõ bağlantõlarõnõn yapõlmasõ için gerekli referanstõr. System.Data.dll kütüphanesi içinde tutulur.! System.Drawing, System.Windows.Forms: Windows form ve kontrollerini içeren referanstõr. System.Drawing.dll ve System. Windows.Forms.dll kütüphaneleri içinde tutulur.! System.XML: XML teknolojisinin kullanõlmasõnõ sağlayan referanstõr. System.XML.dll kütüphanesi içinde tutulur.
12 Modül 1: İsim Alanõ (Namespace) Nedir?.NET içindeki tüm kütüphaneler,.net Framework ismi verilen ortak çatõ altõnda toplanõr. Bu çatõ altõndaki tüm kütüphaneler amaçlarõna göre namespace denilen isim alanõ altõnda gruplandõrõlõr. Bu isim alanõ içinde sõnõflar, arayüzler ve modüller bulunur..net içinde veritabanõ uygulamalarõ geliştirmek için System.Data.dll kütüphanesine ihtiyaç duyulur. Bu kütüphane Visual Studio.NET içindeki tüm proje şablonlarõnda otomatik olarak yer alõr. System.Data.dll kütüphanesi içinde şu isim alanlarõ bulunur:! System.Data! System.Data.Common! System.Data.SqlClient! System.Data.OleDb! System.Data.SqlTypes! System.Xml
Geliştirme Ortamõnõ Tanõmak 13 Yeni İsim Alanõ Eklemek Yeni isim alanõ oluşturmak için Namespace anahtar kelimesi kullanõlõr. Namespace Isimalani_ismi... End Namespace Örnekte NSBilgeAdam isminde bir isim alanõ tanõmlanmõştõr. Bu isim alanõ içine Egitim isminde bir sõnõf eklenmiştir. Namespace NSBilgeAdam ' BilgeAdam isim alanõnda kullanõlacak ' Sõnõf, Modul ve Arayüzler tanõmlanõr Class Egitim '... End Class Class Ogrenci '... End Class ' vs... End Namespace
14 Modül 1: NSBilgeAdam isim alanõ içindeki Ogrenci sõnõfõnõ kullanmak için, sõnõf ismi, isim alanõ ile birlikte belirtilmelidir. Dim yeniogrenci As New bilgeadam.nsbilgeadam.ogrenci() Proje ile aynõ isimdeki bir isim alanõ.net derleyicisi tarafõndan yeni oluşturulan tüm projelere eklenir. Bu genel isim alanõna kök isim alanõ (root namespace) denir. Dolayõsõyla yeni oluşturulan isim alanlarõ, kök isim alanõ ile birlikte belirtilmelidir. Herhangi bir isim alanõ içinde birden fazla isim alanõ tanõmlanabilir. Örnekte NSBilgeAdam isim alanõ içinde Idari, Egitim ve Ogrenci adõnda üç ayrõ isim alanõ eklenmiştir. Namespace NSBilgeAdam ' BilgeAdam isim alanõnda kullanõlacak ' Class, Module ve Interface ler tanõmlanõr Namespace Idari Class Personel End Class End Namespace Namespace Egitim Class Grup End Class End Namespace Namespace Ogrenci Class Bilgi End Class End Namespace 'vs... End Namespace
Geliştirme Ortamõnõ Tanõmak 15 Projeye İsim Alanõ Dahil Etmek Bir isim alanõ içinde yer alan sõnõflarõ tanõmlamak için, sõnõfõn bulunduğu kütüphanenin yolunu eksiksiz olarak belirtmek gerekir. Ancak bu şekilde kullanõmlar, kodun okunmasõnõ oldukça zorlaştõrõr. Örnekte sõnõflar bu yöntemle tanõmlanmõştõr. Dim kisi1 As New bilgeadam.nsbilgeadam.idari.personel Dim OgrenciBilgi As New bilgeadam.nsbilgeadam.ogrenci.bilgi Her sõnõf için kütüphane yolunun tekrarõnõ ortadan kaldõrmak için, Imports anahtar sözcüğü kullanõlõr. Imports sözcüğü ile eklenen isim alanlarõnõn nesnelerine, proje içinden doğrudan erişilebilir. Örnekte NSBilgeAdam isim alanõnõn projeye dahil edilmesi gösterilmektedir: Imports bilgeadam.nsbilgeadam NSBilgeAdam isim alanõnda bulunan bir sõnõfõ kullanmak için sadece ismini yazmak yeterli olur: Dim ogrencibilgi As New Ogrenci.Bilgi İç içe isim alanlarõnõn kullanõmõnda, içteki isim alanõna kolayca erişmek için kõsaltmalar kullanõlabilir. Örnekte, NSBilgeAdam isim alanõ içindeki Ogrenci isim alanõna erişim gösterilmektedir: Imports ogr = bilgeadam.nsbilgeadam.ogrenci Public Class Form1
16 Modül 1: Inherits System.Windows.Forms.Form '... Dim OgrBilgi As New ogr.bilgi End Class
Geliştirme Ortamõnõ Tanõmak 17 Proje Özelliklerini Ayarlamak Projenin genel davranõşlarõnõ ve konfigürasyon özelliklerini değiştirmek için Property Page penceresi kullanõlõr. Proje özelliklerini değiştirmek için aşağõdaki adõmlarõ takip edin: 1. Proje ismini sağ tõklayõn. 2. Açõlan menüden Properties komutunu verin. 3. Açõlan Property Page penceresi üzerinde Common Properties (Genel Özellikler) ve Configuration Properties (Konfigürasyon Özellikleri) sekmelerinden herhangi birini seçin. 4. Genel Özellikler, projenin genel davranõşlarõnõ değiştirmek için kullanõlõr. 5. Konfigürasyon Özellikleri, hata ayõklama ve derleme seçeneklerinin değiştirilmesi için kullanõlõr. 6. Proje özelliğini değiştirdikten sonra OK düğmesini tõklayõn. En çok kullanõlan proje özellikleri şunlardõr:
18 Modül 1:! Assembly Name: Derlenen uygulamanõn.exe veya.dll uzantõlõ çõktõ dosyasõnõn adõnõ belirler.! Root Namespace: Kök isim alanõnõ belirler. Varsayõlan durumda projenin ismi gelir.! Project Output Type: Derlenen uygulamanõn hangi tipte assembly oluşturacağõnõ belirler. Bu tipler Windows, konsol uygulamalarõ ya da sõnõf kütüphaneleri (.dll) olabilir.! Startup Object: Uygulamanõn hangi formdan veya modülden çalõşmaya başlayacağõnõ belirtilir.
Geliştirme Ortamõnõ Tanõmak 19 Konu 2 : Proje Bileşenlerini Tanõmak
20 Modül 1: Solution Explorer Kullanmak Solution Explorer paneli, bir solution içindeki tüm dosyalarõ görüntüler. Solution içinde birden fazla proje bulunabildiği için, bu projeler sõralõ bir şekilde listelenir. Koyu renkle gösterilen proje, solution içinde ilk çalõştõrõlacak projedir. Bu panel ile solution içine proje ekleme ve silme, projelere yeni nesne ekleme ve silme işlemleri gerçekleştirilir. Panelin üst tarafõnda buluna araç çubuğu, dosyalar üzerinde bazõ işlemlerin gerçekleştirilmesi için kõsayollar sunar. Örneğin araç çubuğundan Show All Files komutu seçildiği zaman, projelerin bulunduğu klasördeki tüm dosyalar gösterilir. Solution Explorer panelinde beyaz renkle gösterilen nesneler projeye dahil edilmemiştir. Örneğin, proje klasöründe bulunan bir resim dosyasõnõ projeye dahil etmek için, resmi sağ tõklayõp Include In Project komutu verilmelidir. Solution Explorer panelini görüntülemek için View menüsünden Solution Explorer komutunu verin.
Geliştirme Ortamõnõ Tanõmak 21 Object Browser Kullanmak Object Browser, Visual Studio.NET içindeki kütüphane ve isim alanlarõnõ tüm alt öğeleriyle ile beraber hiyerarşik şekilde listeler. Object Browser õ görüntülemek için, View Penceresinden Object Browser komutunu verin. Object Browser pencerenin sol üst köşesinde Browse alanõ Selected Components seçeneği ile birlikte varsayõlan olarak görünür. Bu seçenek ile projeye dahil edilen referanslar ve bu referanslarla ilişkili isim alanlarõ hiyerarşik bir şekilde listelenir. Objects paneli içinden seçilen herhangi bir isim alanõ genişletilirse, içindeki tüm öğeler hiyerarşik şekilde listelenir. Bu öğelerin herhangi biri seçildiğinde, o öğeye ait tüm alt öğeler Members penceresinde listelenir. Objects penceresinin sağ alt köşesinde ise, seçilen öğenin tanõmõnõ ve hangi isim alanõnõn altõnda olduğu gösterilir.
22 Modül 1: Server Explorer Kullanmak Server Explorer, Visual Studio.NET ortamõ içinde veri sağlayõcõlarla çalõşmayõ kolaylaştõrmak için tasarlanmõş bir araçtõr. Ayrõca Server Explorer sunucu makine bileşenlerinin yönetimi ve kullanõmõnõ sağlar. Server Explorer, Data Connections ve Servers olmak üzere iki sekmeden oluşur. Veri sağlayõcõlarõ ile çalõşmak için Data Connections seçeneği kullanõlõr. Yeni bir veri sağlayõcõ oluşturmak için belirtilen adõmlarõ takip edin. 1. Server Explorer üzerinden Data Connections seçeneğini işaretleyin. 2. Data Connections seçeneğini sağ tõklayõn. Açõlan menüden Add Connection komutunu verin. 3. Açõlan Data Link Properties penceresinden bağlantõ oluşturulur. Servers sekmesinin altõndaki SQL Servers menüsünü kullanarak veritabanõ işlemleri yerine getirilebilir ve veritabanõ nesneleri sürükle bõrak metodu ile form üzerine sürüklenebilir.
Geliştirme Ortamõnõ Tanõmak 23 Dinamik Yardõm Almak Visual Studio.NET, içinde çok fazla konuyu barõndõrdõğõ için tümüne hakim olmak neredeyse imkansõzdõr. Bu nedenle yazõlõm geliştiricilerin işini kolaylaştõrmak için, Visual Studio.NET içinde dinamik yardõm kütüphanesi oluşturulmuştur. Dinamik yardõm, uygulama geliştirirken yazõlan koda göre tüm yardõm konularõnõ listeler. Dinamik yardõmõ aktif hale getirmek için, Help menüsünden Dynamic Help komutunu verin.
24 Modül 1: Görev Listesini Kullanmak Görev Listesi, aktif proje içine görev eklemek için kullanõlõr. Bu görevler uygulama gelişiminin takip edilmesini sağlar. Görev Listesi içine eklenen tüm görevler önem sõrasõna göre sõralanabilir. Görev Listesi aracõnõ proje ortamõnda aktif hale getirmek için View menüsünün Other Windows alt menüsünden Task List komutunu seçin. Görev Listesi aracõ üzerinde Click here to add a new task alanõ tõklanarak yeni görev eklenebilir. Biten görevin önündeki onay kutusu tõklanarak görev sonlandõrõlabilir.
Geliştirme Ortamõnõ Tanõmak 25 Konu 3: Uygulamalarda Hata Ayõklama Uygulamalarõn geliştirmesi sõrasõnda birçok hata ile karşõlaşõlõr. Bu hatalarõn çoğu çalõşma zamanõnda ortaya çõktõğõ için, kodun yazõlmasõ sõrasõnda hatanõn kaynağõnõn anlaşõlmasõ zordur. Hata üreten kod satõrlarõnõ ve hatalarõn nedenini anlamak için Visual Studio Debug (hata ayõklama) aracõ kullanõlõr. Visual Studio Debug aracõ;! Kodlar arasõna BreakPoint konarak, çalõşmanõn istenen satõrda durmasõnõ,! Kodlar arasõnda ilerlerken Debug panelleri ile değişkenlerin değerlerinin gözlenmesini,! Command paneli ile çalõşma anõnda komut çalõştõrõlmasõnõ, değişkenlerin değerlerinin değiştirilmesini sağlar.
26 Modül 1: BreakPoint BreakPoint kullanõmõ, uygulamanõn çalõşmasõnõn istenen kod satõrõnda durdurulmasõnõ sağlar. Çalõşma, bir şartõn gerçekleştiği durumda da durdurulabilir. Örneğin bir değişkenin, belli bir değeri aldõğõ kod satõrõnda uygulamanõn durmasõ istenebilir. İstenen bir kod satõrõna BreakPoint koymak için, kod sayfasõnõn sol tarafõnda bulunan panel tõklanõr ya da F9 tuşuna basõlõr. Belirtilen bir şart gerçekleştikten sonra çalõşmanõn durmasõ isteniyorsa, BreakPoint sağ tõklanõp BreakPoint Properties komutu verilmelidir. Çõkan pencerede Condition düğmesi tõklanarak BreakPoint Condition penceresi açõlõr. Bu pencerede bir değişkenin istenen bir değeri aldõktan sonra çalõşmanõn durmasõ belirtilir (Resim 1.1). RESİM 1.1. Çalõşmanõn, şartõn belli bir sayõ kadar sağlandõğõ zaman durdurulmasõ için, BreakPoint Properties penceresinde Hit Count düğmesi tõklanõr. BreakPoint Hit Count penceresinde, şartõn gerçekleşme sayõsõ girilir. Örnekte, BreakPoint e beş defa veya daha fazla ulaşõldõğõ zaman durulmasõ belirtilir (Resim 1.5). RESİM 1.2.
Geliştirme Ortamõnõ Tanõmak 27 Debug Panelleri Çalõşma durdurulduktan sonra, değişkenlerin o andaki durumlarõ Debug panelleri ile gözlemlenir. Bu paneller ancak ata ayõklama sõrasõnda kullanõlabilir. Debug panelleri, Debug menüsü altõnda Windows menüsünden seçilebilir.! Autos: Çalõşmakta olan satõrla, bir önceki ve bir sonraki arasõnda kalan değişkenleri listeler.! Locals: Çalõşõlan kapsam içindeki tüm değişkenleri listeler. Bu kapsam bir modül, yordam veya döngü olabilir.! Watch: Değeri incelenmek istenen değişken veya özellikler, bu panele yazõlarak eklenir. Çalõşma durdurulduktan sonra kodlar arasõnda ilerlemek gerekir. Kodlar arasõnda ilerlemenin, yordamlarõn içine girilmesi, üzerinden atlanmasõ gibi birçok yol vardõr. 1. Step Into: Çalõştõrõlan kod eğer bir yordam veya fonksiyon ise bu yordam veya fonksiyonun içine girilir ve hata ayõklamaya devam edilir. 2. Step Over: Bir yordam veya fonksiyon içine girilmeden ilerlenir. 3. Step Out: Bir yordam veya fonksiyon içinde ilerleniyorsa, buradan çõkõlarak yordam veya fonksiyonun çağõrõldõğõ yere dönülür. 4. Continue: Bir sonraki BreakPoint satõrõna gidilir. Eğer başka bir BreakPoint konmamõşsa, uygulama normal çalõşmasõna devam eder.