İÇİNDEKİLER VII İÇİNDEKİLER 1 INTRODUCTION 1 Visual Studio 1 Download, Open 2 New Project Penceresi 4 Installed/Templates Sekmesi 5 C# Nedir? 6.NET Framework 6 Visual Studio.Net 7 Visual Studio 2013 Ultimate 8 Start Sekmesi, Recent Sekmesi, Başlangıç Sayfası 8 File Menüsü (Dosya) 9 New (Yeni), Project (Proje) 9 C# Windows Forms Projesi, Web Site, File 10 New Project Diyalog Penceresi, Templates 10 New Project Penceresi 11 Open Folder in File Explorer, Projenin Klasör Yolunun Açılması 12 Build Solution (Projeleri Derlemek) 13 Bu Kitapta Kullanacağımız Proje Çeşitleri 14 New Web Site Penceresi, C# ASP.NET Empty Web Site 15 Web Form 16 ASP.NET Kodlarımız 17 ASP.Net İçin C# Kodlarımız, ID, RunAt, Text, OnClick 18 ASP.Net PostBack Kavramı, Client (İstemci), Server (Sunucu) 19 C# Projesi Açmak, ASP.NET Projesi Açmak 20 Open Project (Varolan Projeleri Açmak) 20 Add New Project, Add New Web Site, Close and Close Solution 21 Save All (Projenin Tümünü Kaydetmek), Recent Project And Solutions 22 Print, Yazıcıda Kod Satır Numaralarını Görmek 22 Edit Menüsü (Düzen), Undo Redo (Geri Sar, İleri Sar) 22
VIII VISUAL STUDIO 2013 Cut (Keserek Kopyala), Copy, Paste (Yapıştır), Cycle Clipboard Ring 23 Mouse Sürükle Bırak, Paste Special (Özel Yapıştır) 24 Select All (Tümünü Seç), Delete (Sil), Find and Replace (Bul ve Değiştir) 25 Quick Find, Quick Replace, Find In Files 25 Replace In Files, Go To, Navigate To 26 Insert File As Text, Advanced 27 Outlining, Region 28 Intellisense, Intellisense Pascal Case 29 Generate Method, Generate Constructor 30 Generate Property, Generate Field, Generate Enum 31 Organize Usings, List Members 31 Parameter Info, Quick Info, Insert Snippet, Surround With, Refactor 32 View Menüsü (Görünüm), Code, Designer, Solution Explorer/İkonları 33 Solution Explorer Penceresi, Solution Sağ Menü 34 Add-New Project, Add-New Web Site, Add-New Item 34 Project Sağ Menü, References Sağ Menü 34 AppConfig, Form CS, Program CS 35 Toolbox 36 Toolbox En Çok Kullanılan Kontroller 37 Toolbox Penceresinden Forma Kontrol Sürükleme 38 Properties Window 38 Properties Penceresi İkonları 39 Architecture Explorer 39 SQL Server Object Explorer 39 Class View 40 Code Definition Window, Object Browser 41 Error List, Start Page, Property Pages 42 Project Menüsü 43 Build Menüsü 44 Debug Mod ile Release Mod Farkı 45 Projenin EXE Hali, Debug Menüsü, Projeyi Çalıştırmak 46
İÇİNDEKİLER IX Ctrl+F5, Shift+F5, Toggle Breakpoint, Step, Step Over, Step Into/Out 47 Projeyi Adımlamak, QuickWatch 48 Proje Çalıştırmak ve Kodları Debug Etmek 48 Tools Menüsü 49 Connect to Database 49 SQL Server/New Query 50 SQL Server/New Data Comparison 51 Kaynak Veritabanı 53 Choose Toolbox Items 55 Code Snippets Manager 56 C# Snippets 56 ASP.Net Snippets 57 Error LookUp 59 Visual Studio Ayarlarını Yedeklemek (Import and Settings Wizard) 59 Customize, Kendi Menümüzü Hazırlamak, Options 61 Environment, General, Fonts and Colors 62 Projects and Solutions, Text Editor, General 63 Window Menüsü, Float, Pin Tab/Auto Hide 66 New Horizontal/Vertical Tab Group, Reset Window Layout, Windows 67 Pencereleri Sürükleme 68 Bir Kod Bloğunda Sütun Seçmek, Alt Tuşu ile Kullanılan Harfler, Snippets 69 Resolve 70 2 PROJE GELİŞTİRMEK, FORM PROPERTIES VE EVENTS 71 İlk Form Uygulaması, Design, Form Özellikleri (Properties) 71 Form Appearance Properties, BackColor 73 ForeColor, FormBorderStyle 74 BackgroundImage, BackgroundImageLayout 75 Cursor 76 Font, RightToLeft 77 RightToLeftLayout, Text, Form Behavior Properties 78 AllowDrop, ContextMenuStrip, DoubleBuffered 78
X VISUAL STUDIO 2013 Enabled, Form Data, DataBindings - Tag, Form Design 79 Name Özelliği, Language, Localzable, Locked 79 Form Focus, CausesValidation, Form Layout, AutoScroll 80 AutoSize, AutoSizeMode, MaximumSize 80 Padding, Size, StartPosition, WindowState, Form Misc 81 CancelButton, Form Window Style 82 CancelButton, HelpButton 82 Icon, MainMenuStrip, MaximizeBox, MinimizeBox 82 Opacity, ShowIcon, ShowinTaskbar, SizeGripStyle, TopMost 83 Events (Olaylar) 83 Action Events, Click, MouseClick, DoubleClick, MouseDoubleClick 85 Scroll, Behavior (Davranış), ControlAdded 86 ControlRemoved, FormClosed, FormClosing, FormLoad, Shown 86 DragDrop, DragEnter, DragOver, Olay Parametreleri, EventArgs 87 Sender 88 Kod Yazmak 88 Kod Yazım Kuralları 89 Windows Form Application ve Kod Yazmak, 90 Using İfadeleri 90 Proje: Form Properties ve Initializer 93 Proje: Form Load, Click Olayı ve Properties 100 NameSpace Keywords 106 Using ve References, IDisposable 108 Nokta Operatörü, :: İki Nokta Operatörü 109 Access Modifiers (Erişim Belirteçleri), Private (Özel) 109 Public (Genel), Protected (Korumalı) 109 Internal (Dâhili), Protected Internal (Dâhili Korumalı) 110 Assembly, Class Hakkında Genel Bilgiler 110 Class Çeşitleri, Partial Class, Sealed Class, Abstract Class, Static Class 111 Instance, Inheritance, Erişim Belirteçleri (Access Modifiers) 112 Varsayılan Kontrol Olayları 113
İÇİNDEKİLER XI 3 DEĞİŞKENLER, VERİ TİPLERİ VE OPERATÖRLER 135 Variable (Değişken), Veri Tipleri 135 Değer Tipleri, Sayısal Veri Tipleri 136 Sayısal Ondalık Veri Tipleri, Karakter Veri Tipi 136 Mantıksal Veri Tipi, Tarih Veri Tipi 137 Referans Tipleri, Object Veri Tipi, String Veri Tipi Bıt Hesaplama 137 Var Otomatik Tip Algılayıcısı 138 Proje: Veri Tipleri ve Boyut Hesaplama 138 Değişken Adlandırma Kuralları 144 Değişken Adlandırma Standartları, Camel Case, Pascal Case 145 UpperCase, Sabit Değişkenler 145 Değişkenlerde Ömür, Global Değişkenler, Local Değişkenler 146 Scope (Kapsam) Kavramı, Class Scope 146 Block Scope, Proje: Global ve Local Değişkenler. 147 Bellekteki Yerlerine Göre Değişkenler, Stack, Heap 150 Boxing ve Unboxing, Operatörler, Aritmetik Operatörler 151 Atama Operatörleri, Mantıksal Operatörler 152 Karşılaştırma Operatörleri, Diğer Operatörler ve Semboller, 153 İşlem Önceliği 153 Proje: Operatörler 154 4 TİP DÖNÜŞÜMLERİ VE DEĞİŞKEN TİPLERİNİ ANLAMAK 159 Değişkenlerin Tip Dönüşümleri 159 Casting Yöntemi, Implicit (Bilinçsiz) Tür Dönüşümü 160 Küçük Tip - Büyük Tipe Çevrilirse, 160 Büyük Tip - Küçük Tipe Çevrilirse 160 Explicit (Bilinçli) Dönüşümler 160 Convert Yöntemi 161 String Türü Dönüşümler, Parse Yöntemi 162 Döndürdüğü Hatalar: TryParse 163 As İfadesi ile Tip Çevirimi 163 Değişken Tiplerini Anlamak, GetType() Değişken Tiplerini Anlamak 171
XII VISUAL STUDIO 2013 TypeOf() veya is Kullanımı, Proje: GetType, TypeOf ve is 171 5 KONTROL DEYİMLERİ 175 If (Eğer) Else (Değilse) 175 If, Else If, Else 175 Switch Case 176 Ternary 184 Coalescing, Proje: Ternary, Coalescing 184 6 DÖNGÜLER & THREAD 193 Döngüler, For Döngüsü 193 Proje: For Döngüsü ve Break 194 Proje: Forma ComboBox Eklemek 195 Foreach Döngüsü 198 Proje: Foreach Döngüsü 199 While Döngüsü, Thread 203 7 DİZİLER ARRAY 207 Diziler (Array) 207 Collections (Koleksiyonlar), ArrayList Class (Sınıfı) 216 ArrayList Özellikleri ve Metotları 218 Listeye Eleman Eklemek, Add Metodu 219 AddRange Metodu, Insert Metodu 219 InsertRange Metod, Kapasite, Capacity Özelliği 219 TrimToSize Metodu, Eleman Sayısı, Count Özelliği 220 Temizleme/Silme İşlemleri, Clear Metodu 220 Remove Metodu, RemoveAt Metodu 220 RemoveRange Metodu, Arama İşlemleri, Contains Metodu 221 IndexOf Metodu, LastIndexOf Metodu 221 Sıralama, Sort, Reverse, Tip Çevirimleri 222 ToArray Metodu, ToString Metodu 222 HashTable Sınıfı 226 HashTable Özellikleri ve Metotları, Listeye Eleman Eklemek 229 Temizleme/Silme İşlemleri, Kapasite 229
İÇİNDEKİLER XIII Eleman Sayısı, Arama İşlemleri, ContainsKey Metodu 230 Tip Çevirimleri, SortedList Sınıfı 231 SortedList Özellikleri ve Metotları 233 GetKey Metodu, IndexOfKey 234 IndexOfValue, Queue, Stack 235 Jenerik Koleksiyonlar 240 Generic List Sınıfı, Benzerlik Tablosu 241 Generic List Özellikleri ve Metotları, Listeye Eleman Eklemek 241 Kapasite 242 Eleman Sayısı, Temizleme/Silme İşlemleri, Arama İşlemleri 243 Sıralama, Tip Çevirimleri 244 Proje: GenericList 245 Kapasite İşlemleri 248 Temizleme/Silme İşlemleri 249 Generic Dictionary 249 Generic Sorted List, Generic Queue, Generic Stack, Tuple 252 8 METOTLAR 255 Metotlar 255 Erişim Belirteçleri, Dönüş Değeri, Parametreler, Static Metotlar 256 Değer Döndürmeyen (void) Metotlar 257 Değer Döndüren Metotlar 260 Metotlarda Parametre, İsimlendirilmiş Parametreler 261 Proje: Değer Döndüren ve Döndürmeyen Metot Kullanmak 261 Keys 270 Constructor (Yapıcı Metot), Metotların Aşırı Yüklenmesi (Overloading) 270 Proje: Overloading 271 Olay Metotları 274 Event Handler 275 Recursive Metotlar 280 Tarih Biçimlendirme 284 Summary (Metot Açıklamaları) 288
XIV VISUAL STUDIO 2013 Params (Parametrelere Birden Fazla Değer Göndermek) 288 Metotlar ve Class Kavramı, Projeye Class Eklemek 295 Metotlarda Out Parametresinin Kullanımı 301 Extension Methods 310 Class Library Projesi Başlatmak, Dynamic Link Library Oluşturmak 310 Proje: Extension Metotlar 312 Dynamic Link Library Derlemek 314 Proje: Bir Projede Dynamic Link Library Kullanmak 315 Projelere Referans Eklemek 316 Method Override 319 9 HATA DENETİMİ 323 Try Catch Finally 323 Exception Class, Properties (Özellikler), HelpLink 324 Message, Source, StackTrace, TargetSite 324 Methods (Metotlar), GetType, ToString 325 Proje: Try Catch Finally 325 Sadece Ondalık Sayıya İzin vermek 327 Other Exceptions Classes 329 Throw 329 Proje: Exception 330 Yazım Hataları, Parantez Hataları 338 Noktalama Hataları 339 Runtime Hataları 341 ErrorProvider, Silinen Olay Metotları, Olay Metotlarını Resetlemek 343 Olay Metodunu Standart Dışı Adlandırmak 343 Bir Metodu Farklı Adlandırılmış Bir Olaya Bağlamak 343 10 OBJECT ORIENTED PROGRAMING 347 Nesne Yönelimli Programlama 347 Abstraction, Inheritance, Polymorphism, Encapsulation 347 Class Bileşenleri, Methods, Fields,Properties, Constructors, Events 348 Delegates, Proje: Object Oriented Programıng Kisi Class 348
İÇİNDEKİLER XV Proje: OOP Bisiklet Montaj 354 Proje: OOP Araç Galerisi 360 ListBox Kontrolünde Delete Tuşu ile Veri Silmek 373 Architecture 374 Show On Code Map 376 DragDrop (Sürükle Bırak) 377 Class Library ve Inheritance 382 User Control 384 Referans Yüklemek 385 Miras Alma İşlemi (Inheritance) 388 DLL Kütüphanesinin Kullanımı, Proje: User Control Kullanmak 391 11 RESİM İŞLEMLERİ 395 Resim Galerisi 395 Mac Ronalds - Hamburgerci, Resource Yöntemi ile Resim Yüklemek 405 Disk Klasör ve Dosya Listeleyici 413 StatusStrip Kontrolü 414 QRCode - Kare Kod 425 Çoklu Form Çalışmaları, Aynı Proje İçerisinden Erişim 431 Farklı Projeden Erişim 434 12 ACTIVEX DATA OBJECT.NET 437 Activex Data Object.NET 437 Connected Mimari, Connected Mimaride Kullanılan Sınıflar 437 SqlConnection, SqlCommand 437 SqlDataReader, Disconnected Mimari 438 Disconnected Mimaride Kullanılan Sınıflar 438 SQLConnection, SqlDataAdapter, SqlDataSet 438 Proje: Activex Data Object Connected Mimari 439 Connected Mimari ve Data Reader, Proje: DataReader. 441 Active Directory ve ADO.NET Bağlantısı 444 SQL Command Metotları, ExecuteNonQuery 444 ExecuteReader, CommandBehavior Enum Listesi 445
XVI VISUAL STUDIO 2013 CloseConnection, SingleRow, ExecuteSclar 445 Proje: Disconnected Mimari 445 Enabling Multiple Active Result Sets 447 Stored Procedure ve SqlCommand 448 Proje: SQL Server Prosedürü Kullanmak 451 Bir Projeyi Referans Olarak Kullanmak 477 Data Table ve DataBinding, Proje: Binding Context 493 13 ASP.NET KONTROLLERİ 499 Kısaca HTML 499 ASP.Net Kontrolleri, DropDownList 502 GridView 504 Button 508 Response, CheckBox 508 ImageButton, RadioButton 509 HyperLink 511 DataList, DataList Otomatik Veri Listeleme 512 Eval Metodu 516 Div 518 Style Sheet CSS 519 CSS ile Web Sayfasını Ortalamak 520 Div ve CSS ile Northwind Kategoriye Göre Ürün Listesi 521 Repeater Kontrolü 529 Item Template, Header Template, Footer Template 529 Eval Metodu 529 Command Name ve Command Argument 530 ID ve DataSource 530 DataListCommandEventArgs 531 Hangi Dilde Yazılırsa Yazılsın Tüm Web Sayfaları HTML Koduna Dönüştürülür 533 JQuery ve Accordion Görseli 533 Bir Kontrol İçerisindeki Diğer Kontrollere Ulaşım 542