Table of Contents
INTRODUCTION xxvii 
CHAPTER 1: WELCOME TO VISUAL BASIC 2015 1
 Implementing Event-Driven Programming 2
 Installing Visual Basic 2015 3
 The Visual Studio 2015 IDE 5
 The Profi le Setup Page 5
 The Menu 6
 The Toolbars 8
 Creating a Simple Application 9
 Windows in the Visual Studio 2015 IDE 10
 Modifi ed Hungarian Notation 17
 The Code Editor 18
 Using the Help System 22
 Summary 23
 CHAPTER 2: THE MICROSOFT .NET FRAMEWORK 25
 The .NET Vision 25
 This Sounds Like Java 26
 Where Now? 27
 Writing Software for Windows 27
 The .NET Framework Classes 28
 Executing Code 30
 Common Language Runtime 31
 Code Loading and Execution 31
 Application Isolation 31
 Security 32
 Interoperability 33
 Exception Handling 33
 The Common Type System and Common Language Specification 33
 Summary 34
 CHAPTER 3: WRITING SOFTWARE 37
 Information and Data 37
 Algorithms 38
 What Is a Programming Language? 39
 Working with Variables 40
 Comments and Whitespace 43
 Comments 43
 Whitespace 45
 Data Types 45
 Working with Numbers 45
 Common Integer Math Operations 46
 Integer Math Shorthand 49
 The Problem with Integer Math 50
 Floating-Point Math 50
 Working with Strings 53
 Using Dates 62
 Boolean 69
 Storing Variables 69
 Binary 69
 Bits and Bytes 70
 Representing Values 70
 Converting Values 72
 Methods 74
 Why Use Methods? 74
 Methods You’ve Already Seen 75
 Building a Method 78
 Choosing Method Names 81
 Scope 82
 Summary 84
 CHAPTER 4: CONTROLLING THE FLOW 87
 Making Decisions 87
 The If Statement 88
 The Else Statement 90
 Allowing Multiple Alternatives with ElseIf 90
 Nested If Statements 92
 Single-Line If Statement 92
 Comparison Operators 92
 String Comparison 101
 Select Case 102
 Case-Insensitive Select Case 106
 Multiple Selections 108
 The Case Else Statement 109
 Different Data Types with Select Case 110
 Loops 110
 The For...Next Loop 110
 The Do...Loop Loops 116
 Nested Loops 120
 Quitting Early 121
 Quitting Do...Loops 123
 Infinite Loops 124
 Summary 125
 CHAPTER 5: WORKING WITH DATA STRUCTURES 127
 Understanding Arrays 128
 Defining and Using Arrays 128
 Using For Each...Next 131
 Passing Arrays as Parameters 133
 Sorting Arrays 136
 Going Backward 137
 Initializing Arrays with Values 138
 Understanding Enumerations 139
 Using Enumerations 140
 Determining the State 143
 Setting Invalid Values 146
 Understanding Constants 146
 Using Constants 146
 Different Constant Types 148
 Structures 148
 Building Structures 149
 Adding Properties to Structures 152
 Working with ArrayLists 153
 Using an ArrayList 153
 Deleting from an ArrayList 158
 Showing Items in the ArrayList 161
 Working with Collections 162
 Creating CustomerCollection 163
 Adding an Item Property 164
 Building Lookup Tables with Hashtable 166
 Using Hashtables 166
 Cleaning Up: Remove, RemoveAt, and Clear 169
 Case Sensitivity 172
 Advanced Array Manipulation 173
 Dynamic Arrays 173
 Using Preserve 175
 Summary 176
 CHAPTER 6: BUILDING WINDOWS APPLICATIONS 179
 Responding to Events 180
 Counting Characters 184
 Counting Words 188
 Creating More Complex Applications 191
 Creating the Toolbar 192
 Creating the Status Bar 195
 Creating an Edit Box 196
 Clearing the Edit Box 197
 Responding to Toolbar Buttons 199
 Using Multiple Forms 202
 About Dialog 202
 Summary 206
 CHAPTER 7: DISPLAYING DIALOGS 209
 The MessageBox 210
 Available Icons for MessageBox 210
 Available Buttons for MessageBox 211
 Setting the Default Button 211
 Miscellaneous Options 212
 The Show Method Syntax 212
 Example Message Boxes 214
 The OpenFileDialog Control 218
 The OpenFileDialog Control 218
 The Properties of OpenFileDialog 218
 OpenFileDialog Methods 220
 Using the OpenFileDialog Control 221
 The SaveDialog Control 226
 The Properties of SaveFileDialog 226
 SaveFileDialog Methods 227
 Using the SaveFileDialog Control 227
 The FontDialog Control 231
 The Properties of FontDialog 231
 The Methods of FontDialog 232
 Using the FontDialog Control 232
 The ColorDialog Control 235
 The Properties of ColorDialog 236
 Using the ColorDialog Control 237
 The PrintDialog Control 238
 The Properties of PrintDialog 239
 Using the PrintDialog Control 240
 The PrintDocument Class 240
 The Properties of the PrintDocument Class 240
 Printing a Document 241
 The FolderBrowserDialog Control 248
 The Properties of FolderBrowserDialog 248
 Using the FolderBrowserDialog Control 249
 Summary 252
 CHAPTER 8: CREATING MENUS 255
 Understanding Menu Features 255
 Images 256
 Access Keys 256
 Shortcut Keys 256
 Check Marks 256
 The Properties Window 257
 Creating Menus 259
 Designing the Menus 259
 Adding Toolbars and Controls 261
 Coding Menus 263
 Coding the View Menu and Toolbars 267
 Testing Your Code 269
 Context Menus 272
 Creating Context Menus 272
 Enabling and Disabling Menu Items and Toolbar Buttons 275
 Summary 279
 CHAPTER 9: DEBUGGING AND ERROR HANDLING 283
 Major Error Types 284
 Syntax Errors 284
 Execution Errors 288
 Logic Errors 288
 Debugging 289
 Creating a Sample Project 289
 Setting Breakpoints 306
 Debugging Using the Watch Window and QuickWatch Dialog Box 313
 Debugging with the Autos Window 316
 Debugging with the Locals Window 316
 Error Handling 318
 Using Structured Error Handling 319
 Summary 321
 CHAPTER 10: BUILDING OBJECTS 325
 Understanding Objects 326
 Encapsulation 327
 Methods and Properties 327
 Events 328
 Visibility 328
 What Is a Class? 329
 Building Classes 330
 Reusability 330
 Designing an Object 332
 State 332
 Behavior 333
 Storing State 333
 Real Properties 336
 Read/Write Properties 339
 Auto-Implemented Properties 342
 The IsMoving Method 343
 Constructors 345
 Inheritance 346
 Adding New Methods and Properties 348
 Adding a GetPowerToWeightRatio Method 350
 Changing Defaults 352
 Polymorphism: Scary Word, Simple Concept 354
 Overriding More Methods 354
 Inheriting from the Object Class 356
 Objects and Structures 357
 The Framework Classes 357
 Namespaces 358
 The Imports Statement 360
 Creating Your Own Namespace 361
 Inheritance in the .NET Framework 364
 Summary 365
 CHAPTER 11: ADVANCED OBJECT-ORIENTED TECHNIQUES 367
 Building a Favorites Viewer 368
 Internet Shortcuts and Favorites 368
 Using Classes 371
 Scanning Favorites 377
 Viewing Favorites 384
 An Alternative Favorite Viewer 386
 Building a Favorites Tray 387
 Displaying Favorites 388
 Using Shared Properties and Methods 392
 Using Shared Properties 392
 Using Shared Methods 397
 Understanding Object-Oriented Programming and Memory Management 398
 Garbage Collection 400
 Releasing Resources 400
 Defragmentation and Compaction 401
 Summary 402
 CHAPTER 12: ACCESSING DATA USING STRUCTURED QUERY LANGUAGE 405
 What You Need to Complete This Chapter’s Exercises 406
 What Is a Database? 407
 Database Tables 407
 Primary and Foreign Keys 413
 Queries 415
 Understanding Basic SQL Syntax 415
 Using SELECT Statement 416
 Using the JOIN Statement 417
 Using the UPDATE Statement 419
 Using the DELETE Statement 419
 Using the INSERT Statement 420
 Using the SQL Comment 421
 Executing Queries in SQL Server 421
 Summary 425
 CHAPTER 13: DATABASE PROGRAMMING WITH SQL SERVER AND ADO.NET 427
 ADO.NET 428
 ADO.NET Data Namespaces 428
 The SqlConnection Class 429
 Working with the Connection String Parameters 430
 Opening and Closing the Connection 431
 The SqlCommand Class 431
 The SqlDataAdapter Class 434
 The DataSet Class 438
 DataView 438
 The ADO.NET Classes in Action 440
 Data Binding 450
 BindingContext and CurrencyManager 450
 Binding Controls 451
 Binding Examples 452
 Summary 480
 CHAPTER 14: ASP.NET 483
 Thin]Client Architecture 484
 Web Forms versus Windows Forms 485
 Windows Forms Advantages 485
 Web Forms Advantages 485
 Web Applications: The Basic Pieces 486
 Web Servers 486
 Browsers 486
 HyperText Markup Language 487
 JavaScript 487
 Cascading Style Sheets 487
 Active Server Pages 488
 Benefits of ASP.NET Web Pages 488
 Special Website Files 488
 Development 489
 Controls: The Toolbox 489
 Building Websites 490
 Creating a Web Form for Client] and Server]Side Processing 490
 Website Locations with VS 2015 495
 Performing Data Entry and Validation 498
 Using the GridView to Build a Data]Driven Web Form 507
 Summary 512
 CHAPTER 15: DEPLOYING YOUR APPLICATION 515
 What Is Deployment? 516
 ClickOnce Deployment 516
 XCOPY Deployment 521
 Visual Studio 2015 Setup Application Options 522
 Deploying Different Solutions 522
 Private Assemblies 523
 Shared Assemblies 523
 Deploying Desktop Applications 524
 Deploying Web Applications 524
 Deploying XML Web Services 524
 Useful Tools 525
 Summary 525
 CHAPTER 16: WINDOWS 8 APPS 529
 Windows 8 Application Design Principles 530
 Using Touch 530
 Application Commands 531
 Windows 8 Controls 532
 Coding Windows 8 Apps with XAML 533
 Creating Your First Windows 8 App 534
 Application Layout 548
 Application Views 548
 Screen Sizes and Orientation 548
 Summary 553
 APPENDIX: EXERCISE SOLUTIONS 557
 INDEX 569