Description

Book Synopsis
Step-by-step beginner s guide to Visual C# 2012 Written for novice programmers who want to learn programming with C# and the. NET framework, this book offers programming basics such as variables, flow control, and object oriented programming. It then moves into web and Windows programming and data access (databases and XML).

Table of Contents

INTRODUCTION xxxi

PART I: THE C# LANGUAGE

CHAPTER 1: INTRODUCING C# 3

What Is the .NET Framework? 3

What’s in the .NET Framework? 4

Writing Applications Using the .NET Framework 4

CIL and JIT 4

Assemblies 5

Managed Code 5

Garbage Collection 6

Fitting It Together 6

Linking 7

What Is C#? 7

Applications You Can Write with C# 8

C# in this Book 8

Visual Studio 2012 8

Visual Studio Express 2012 Products 9

Solutions 9

Summary 10

CHAPTER 2: WRITING A C# PROGRAM 13

The Visual Studio 2012 Development Environment 14

Console Applications 16

The Solution Explorer 18

The Properties Window 19

The Error List Window 19

Desktop Applications 20

Summary 23

CHAPTER 3: VARIABLES AND EXPRESSIONS 25

Basic C# Syntax 26

Basic C# Console Application Structure 28

Variables 29

Simple Types 29

Variable Naming 33

Naming Conventions 34

Literal Values 34

Variable Declaration and Assignment 36

Expressions 37

Mathematical Operators 37

Assignment Operators 41

Operator Precedence 42

Namespaces 42

Summary 45

CHAPTER 4: FLOW CONTROL 49

Boolean Logic 49

Boolean Assignment Operators 52

Bitwise Operators 53

Operator Precedence Updated 57

The goto Statement 58

Branching 59

The Ternary Operator 59

The if Statement 59

Checking More Conditions Using if Statements 62

The switch Statement 63

Looping 65

do Loops 66

while Loops 68

for Loops 70

Interrupting Loops 74

Infi nite Loops 75

Summary 75

CHAPTER 5: MORE ABOUT VARIABLES 79

Type Conversion 80

Implicit Conversions 80

Explicit Conversions 81

Explicit Conversions Using the Convert Commands 84

Complex Variable Types 86

Enumerations 87

Defi ning Enumerations 87

Structs 90

Defi ning Structs 90

Arrays 92

Declaring Arrays 93

foreach Loops 95

Multidimensional Arrays 96

Arrays of Arrays 97

String Manipulation 98

Summary 102

CHAPTER 6: FUNCTIONS 105

Defi ning and Using Functions 106

Return Values 108

Parameters 109

Parameter Matching 111

Parameter Arrays 111

Reference and Value Parameters 113

Out Parameters 115

Variable Scope 116

Variable Scope in Other Structures 118

Parameters and Return Values versus Global Data 120

The Main( ) Function 121

Struct Functions 123

Overloading Functions 124

Using Delegates 125

Summary 128

CHAPTER 7: DEBUGGING AND ERROR HANDLING 131

Debugging in Visual Studio 132

Debugging in Nonbreak (Normal) Mode 132

Outputting Debugging Information 133

Tracepoints 137

Diagnostics Output Versus Tracepoints 139

Debugging in Break Mode 140

Entering Break Mode 140

Monitoring Variable Content 142

Stepping Through Code 144

Immediate and Command Windows 146

The Call Stack Window 146

Error Handling 147

try…catch…finally 147

Listing and Configuring Exceptions 152

Notes on Exception Handling 152

Summary 153

CHAPTER 8: INTRODUCTION TO OBJECT-ORIENTED

PROGRAMMING 157

What Is Object-Oriented Programming? 158

What Is an Object? 158

Properties and Fields 159

Methods 160

Everything’s an Object 161

The Life Cycle of an Object 161

Constructors 161

Destructors 162

Static and Instance Class Members 162

Static Constructors 162

Static Classes 163

OOP Techniques 163

Interfaces 163

Disposable Objects 164

Inheritance 165

Polymorphism 167

Interface Polymorphism 168

Relationships Between Objects 168

Containment 168

Collections 169

Operator Overloading 169

Events 170

Reference Types Versus Value Types 170

OOP in Desktop Applications 171

Summary 174

CHAPTER 9: DEFINING CLASSES 177

Class Defi nitions in C# 177

Interface Defi nitions 180

System.Object 182

Constructors and Destructors 184

Constructor Execution Sequence 185

OOP Tools in Visual Studio 188

The Class View Window 188

The Object Browser 190

Adding Classes 191

Class Diagrams 192

Class Library Projects 193

Interfaces Versus Abstract Classes 196

Struct Types 198

Shallow Copying Versus Deep Copying 200

Summary 200

CHAPTER 10: DEFINING CLASS MEMBERS 203

Member Defi nitions 203

Defi ning Fields 204

Defi ning Methods 204

Defi ning Properties 205

Adding Members from a Class Diagram 210

Adding Methods 210

Adding Properties 212

Adding Fields 212

Refactoring Members 212

Automatic Properties 213

Additional Class Member Topics 213

Hiding Base Class Methods 213

Calling Overridden or Hidden Base Class Methods 215

The this Keyword 216

Using Nested Type Defi nitions 216

Interface Implementation 218

Implementing Interfaces in Classes 219

Explicit Interface Member Implementation 220

Additional Property Accessors 220

Partial Class Defi nitions 221

Partial Method Defi nitions 222

Example Application 224

Planning the Application 224

The Card Class 224

The Deck Class 224

Writing the Class Library 224

Adding the Suit and Rank Enumerations 225

Adding the Card Class 226

Adding the Deck Class 227

A Client Application for the Class Library 230

The Call Hierarchy Window 231

Summary 232

CHAPTER 11: COLLECTIONS, COMPARISONS, AND CONVERSIONS 235

Collections 236

Using Collections 236

Defi ning Collections 241

Indexers 242

Adding a Cards Collection to CardLib 244

Keyed Collections and IDictionary 247

Iterators 248

Iterators and Collections 252

Deep Copying 253

Adding Deep Copying to CardLib 255

Comparisons 256

Type Comparisons 256

Boxing and Unboxing 257

The is Operator 258

Value Comparisons 260

Operator Overloading 261

Adding Operator Overloads to CardLib 265

The IComparable and IComparer Interfaces 269

Sorting Collections 271

Conversions 274

Overloading Conversion Operators 274

The as Operator 275

Summary 276

CHAPTER 12: GENERICS 279

What Are Generics? 280

Using Generics 281

Nullable Types 281

Operators and Nullable Types 282

The ?? Operator 283

The System.Collections.Generic Namespace 287

List 287

Sorting and Searching Generic Lists 289

Dictionary 294

Modifying CardLib to Use a Generic Collection Class 295

Defi ning Generic Types 296

Defi ning Generic Classes 296

The default Keyword 298

Constraining Types 298

Inheriting from Generic Classes 304

Generic Operators 305

Generic Structs 306

Defi ning Generic Interfaces 306

Defi ning Generic Methods 306

Defi ning Generic Delegates 308

Variance 308

Covariance 309

Contravariance 310

Summary 310

CHAPTER 13: ADDITIONAL OOP TECHNIQUES 313

The :: Operator and the Global Namespace Qualifi er 313

Custom Exceptions 315

Adding Custom Exceptions to CardLib 315

Events 316

What Is an Event? 316

Handling Events 317

Defi ning Events 319

Multipurpose Event Handlers 323

The EventHandler and Generic EventHandler Types 325

Return Values and Event Handlers 326

Anonymous Methods 326

Expanding and Using CardLib 327

A Card Game Client for CardLib 327

Attributes 334

Reading Attributes 334

Creating Attributes 335

Summary 336

CHAPTER 14: C# LANGUAGE ENHANCEMENTS 339

Initializers 340

Object Initializers 340

Collection Initializers 342

Type Inference 344

Anonymous Types 346

Dynamic Lookup 350

The dynamic Type 350

IDynamicMetaObjectProvider 354

Advanced Method Parameters 354

Optional Parameters 354

Optional Parameter Values 355

The OptionalAttribute Attribute 356

Optional Parameter Order 356

Named Parameters 356

Named and Optional Parameter Guidelines 360

Extension Methods 360

Lambda Expressions 364

Anonymous Methods Recap 364

Lambda Expressions for Anonymous Methods 365

Lambda Expression Parameters 368

Lambda Expression Statement Bodies 368

Lambda Expressions as Delegates and Expression Trees 369

Lambda Expressions and Collections 370

Caller Information Attributes 372

Summary 375

PART II: WINDOWS PROGRAMMING

CHAPTER 15: BASIC DESKTOP PROGRAMMING 381

XAML 382

Separation of Concerns 382

XAML in Action 383

Namespaces 383

Code-Behind Files 384

The Playground 384

WPF Controls 385

Properties 386

Dependency Properties 387

Attached Properties 388

Events 388

Handling Events 389

Routed Events 390

Routed Commands 390

Control Types 392

Control Layout 393

Stack Order 393

Alignment, Margins, Padding, and Dimensions 393

Border 394

Canvas 394

DockPanel 395

StackPanel 397

WrapPanel 398

Grid 398

The Game Client 401

The About Window 401

Designing the User Interface 401

The Image Control 401

The Label Control 402

The TextBlock Control 402

The Button Control 402

The Options Window 405

The TextBox Control 406

The CheckBox Control 406

The RadioButton Control 407

The ComboBox Control 408

The TabControl 409

Handling Events in the Options Window 411

Data Binding 413

The DataContext 414

Binding to Local Objects 414

Static Binding to External Objects 414

Dynamic Binding to External Objects 415

Starting a Game 418

The ListBox Control 418

Summary 421

CHAPTER 16: ADVANCED DESKTOP PROGRAMMING 425

The Main Window 425

The Menu Control 426

Routed Commands with Menus 426

Creating and Styling Controls 429

Styles 430

Templates 430

Value Converters 434

The IValueConverter Interface 434

ValueConversionAttribute 434

Triggers 435

Animations 436

Timelines without Key Frames 436

Timelines with Key Frames 437

WPF User Controls 438

Implementing Dependency Properties 439

Putting It All Together 447

Refactoring the Domain Model 447

The View Models 451

Completing the Game 459

Summary 466

CHAPTER 17: WINDOWS STORE APPS 469

Getting Started 469

Windows 8 Developer License 470

How to Get the License 470

Windows Store Apps versus Desktop Applications 471

Developing Windows Store Apps 472

View Modes 472

Full-Screen Mode 473

Snapped Mode 473

Fill Mode 473

Screen Orientation 473

The Missing Caption Bar 473

Menus and Toolbars 473

The App Bar 474

Charms 475

Tiles and Badges 476

App Lifetime 476

Lock Screen Apps 476

App Development 476

WPF and Windows Store App XAML Diff erences 476

Namespace Changes 477

Eff ects 477

Opacity Mask 477

Style Triggers 477

Commands 478

Templates and Pages 478

Blank Page 478

Basic Page 478

Grouped Items and Group Details Pages 478

Item Details Page 479

Items and Split Pages 479

Sandboxed Apps 479

Disk Access 479

Serialization, Streams, and Async Programming 480

Navigation Between Pages 483

Managing State 485

Converting KarliCards, Part 1 485

Creating the CardLib Project 486

Converting the View Models 489

Visual Changes 493

Drop Shadow and Opacity Masks 493

Style Triggers 493

Converting User Controls 493

Common Elements of Windows Store Apps 499

The AppBar Control 500

The Settings Panel 501

Tiles, Badges, and Splash Screens 503

Converting KarliCards, Part 2 504

The Windows Store 509

Checking the Store Requirements 509

Summary 510

CHAPTER 18: DEPLOYING DESKTOP APPLICATIONS 513

Deployment Overview 514

ClickOnce Deployment 514

Implementing ClickOnce Deployment 515

Installing the Application with ClickOnce 522

Creating and Using Updates of the Application 524

InstallShield Limited Edition 524

The Project Assistant 524

Step 1: Application Information 525

Step 2: Installation Requirements 525

Step 3: Installation Architecture 526

Step 4: Application Files 526

Step 5: Application Shortcuts 527

Step 6: Application Registry 528

Step 7: Installation Interview 528

Summary 530

PART III: WEB PROGRAMMING

CHAPTER 19: ASP.NET WEB PROGRAMMING 535

Overview of Web Applications 536

ASP.NET Runtime 536

Creating a Simple Page 536

Server Controls 544

ASP.NET Postback 545

ASP.NET AJAX Postback 550

Input Validation 553

State Management 557

Client-Side State Management 558

View State 558

Cookie 559

Server-Side State Management 560

Session 560

Application 561

Cache 562

Styles 562

Master Pages 566

Site Navigation 571

Authentication and Authorization 573

Authentication Confi guration 574

Using Security Controls 577

Reading from and Writing to a SQL Server Database 580

Summary 589

CHAPTER 20: DEPLOYING WEB APPLICATIONS 591

Internet Information Services 591

IIS Confi guration 592

Copying a Website 594

Publishing a Web Application 597

Summary 600

PART IV: DATA ACCESS

CHAPTER 21: FILE SYSTEM DATA 605

Streams 605

The Classes for Input and Output 606

The File and Directory Classes 607

The FileInfo Class 608

The DirectoryInfo Class 610

Path Names and Relative Paths 611

The FileStream Object 611

File Position 612

Reading Data 613

Writing Data 615

The StreamWriter Object 617

The StreamReader Object 618

Reading Data 620

Delimited Files 621

Asynchronous File Access 625

Reading and Writing Compressed Files 625

Serialized Objects 628

Monitoring the File System 632

Summary 636

CHAPTER 22: XML 639

XML Documents 640

XML Elements 640

Attributes 641

The XML Declaration 641

The Structure of an XML Document 642

XML Namespaces 642

Well-Formed and Valid XML 643

Validating XML Documents 644

Schemas 644

The XSD dialog box shown in the XmlDocument Class 645

Using XML in Your Application 647

XML Document Object Model 647

The XmlDocument Class 648

The XmlElement Class 648

Changing the Values of Nodes 652

Selecting Nodes 656

XPath 657

Summary 661

CHAPTER 23: INTRODUCTION TO LINQ 663

First LINQ Query 664

Declaring a Variable for Results Using the var Keyword 665

Specifying the Data Source: from Clause 666

Specify Condition: where Clause 666

Selecting Items: select Clause 666

Finishing Up: Using the foreach Loop 667

Deferred Query Execution 667

Using the LINQ Method Syntax 667

LINQ Extension Methods 667

Query Syntax versus Method Syntax 668

Ordering Query Results 669

Understanding the orderby Clause 670

Ordering Using Method Syntax 671

Querying a Large Data Set 672

Using Aggregate Operators 674

Querying Complex Objects 678

Projection: Creating New Objects in Queries 681

Projection: Method Syntax 682

Using the Select Distinct Query 683

Using the Any and All Methods 684

Ordering by Multiple Levels 685

Multi-Level Ordering Method Syntax: ThenBy 687

Using Group Queries 687

Using Take and Skip 689

Using First and FirstOrDefault 691

Using the LINQ Set Operators 692

Using Joins 694

Summary 696

CHAPTER 24: APPLYING LINQ 699

LINQ Varieties 699

Using LINQ with Databases 700

Installing SQL Server and the Northwind Sample Data 700

Installing SQL Server Express 701

Installing the Northwind Sample Database 701

First LINQ to Database Query 701

Navigating Database Relationships 704

Using LINQ with XML 706

LINQ to XML Functional Constructors 707

Constructing XML Element Text with Strings 710

Saving and Loading an XML Document 710

Loading XML from a String 712

Contents of a Saved XML Document 713

Working with XML Fragments 713

Generating XML from Databases 715

How to Query an XML Document 717

Using LINQ to XML Query Members 718

Elements( ) 718

Descendants( ) 719

Attributes( ) 721

Summary 723

PART V: ADDITIONAL TECHNIQUES

CHAPTER 25: WINDOWS COMMUNICATION FOUNDATION 727

What Is WCF? 728

WCF Concepts 728

WCF Communication Protocols 729

Addresses, Endpoints, and Bindings 729

Contracts 731

Message Patterns 732

Behaviors 732

Hosting 732

WCF Programming 733

The WCF Test Client 740

Defi ning WCF Service Contracts 742

Data Contracts 743

Service Contracts 743

Operation Contracts 744

Message Contracts 745

Fault Contracts 745

Self-Hosted WCF Services 750

Summary 756

CHAPTER 26: WINDOWS WORKFLOW FOUNDATION 759

Hello World 759

Workfl ows and Activities 761

If Activity 761

While Activity 762

Sequence Activity 762

Arguments and Variables 763

Custom Activities 767

Workfl ow Extensions 769

Activity Validation 773

Activity Designers 774

Summary 776

APPENDIX A: EXERCISE SOLUTIONS 779

INDEX 827

Beginning Visual C 2012 Programming

    Product form

    £33.24

    Includes FREE delivery

    RRP £34.99 – you save £1.75 (5%)

    Order before 4pm today for delivery by Mon 29 Jun 2026.

    A Paperback / softback by Karli Watson, Jacob Vibe Hammer, Jon D. Reid

    10 in stock


      View other formats and editions of Beginning Visual C 2012 Programming by Karli Watson

      Publisher: John Wiley & Sons Inc
      Publication Date: 18/12/2012
      ISBN13: 9781118314418, 978-1118314418
      ISBN10: 1118314417

      Description

      Book Synopsis
      Step-by-step beginner s guide to Visual C# 2012 Written for novice programmers who want to learn programming with C# and the. NET framework, this book offers programming basics such as variables, flow control, and object oriented programming. It then moves into web and Windows programming and data access (databases and XML).

      Table of Contents

      INTRODUCTION xxxi

      PART I: THE C# LANGUAGE

      CHAPTER 1: INTRODUCING C# 3

      What Is the .NET Framework? 3

      What’s in the .NET Framework? 4

      Writing Applications Using the .NET Framework 4

      CIL and JIT 4

      Assemblies 5

      Managed Code 5

      Garbage Collection 6

      Fitting It Together 6

      Linking 7

      What Is C#? 7

      Applications You Can Write with C# 8

      C# in this Book 8

      Visual Studio 2012 8

      Visual Studio Express 2012 Products 9

      Solutions 9

      Summary 10

      CHAPTER 2: WRITING A C# PROGRAM 13

      The Visual Studio 2012 Development Environment 14

      Console Applications 16

      The Solution Explorer 18

      The Properties Window 19

      The Error List Window 19

      Desktop Applications 20

      Summary 23

      CHAPTER 3: VARIABLES AND EXPRESSIONS 25

      Basic C# Syntax 26

      Basic C# Console Application Structure 28

      Variables 29

      Simple Types 29

      Variable Naming 33

      Naming Conventions 34

      Literal Values 34

      Variable Declaration and Assignment 36

      Expressions 37

      Mathematical Operators 37

      Assignment Operators 41

      Operator Precedence 42

      Namespaces 42

      Summary 45

      CHAPTER 4: FLOW CONTROL 49

      Boolean Logic 49

      Boolean Assignment Operators 52

      Bitwise Operators 53

      Operator Precedence Updated 57

      The goto Statement 58

      Branching 59

      The Ternary Operator 59

      The if Statement 59

      Checking More Conditions Using if Statements 62

      The switch Statement 63

      Looping 65

      do Loops 66

      while Loops 68

      for Loops 70

      Interrupting Loops 74

      Infi nite Loops 75

      Summary 75

      CHAPTER 5: MORE ABOUT VARIABLES 79

      Type Conversion 80

      Implicit Conversions 80

      Explicit Conversions 81

      Explicit Conversions Using the Convert Commands 84

      Complex Variable Types 86

      Enumerations 87

      Defi ning Enumerations 87

      Structs 90

      Defi ning Structs 90

      Arrays 92

      Declaring Arrays 93

      foreach Loops 95

      Multidimensional Arrays 96

      Arrays of Arrays 97

      String Manipulation 98

      Summary 102

      CHAPTER 6: FUNCTIONS 105

      Defi ning and Using Functions 106

      Return Values 108

      Parameters 109

      Parameter Matching 111

      Parameter Arrays 111

      Reference and Value Parameters 113

      Out Parameters 115

      Variable Scope 116

      Variable Scope in Other Structures 118

      Parameters and Return Values versus Global Data 120

      The Main( ) Function 121

      Struct Functions 123

      Overloading Functions 124

      Using Delegates 125

      Summary 128

      CHAPTER 7: DEBUGGING AND ERROR HANDLING 131

      Debugging in Visual Studio 132

      Debugging in Nonbreak (Normal) Mode 132

      Outputting Debugging Information 133

      Tracepoints 137

      Diagnostics Output Versus Tracepoints 139

      Debugging in Break Mode 140

      Entering Break Mode 140

      Monitoring Variable Content 142

      Stepping Through Code 144

      Immediate and Command Windows 146

      The Call Stack Window 146

      Error Handling 147

      try…catch…finally 147

      Listing and Configuring Exceptions 152

      Notes on Exception Handling 152

      Summary 153

      CHAPTER 8: INTRODUCTION TO OBJECT-ORIENTED

      PROGRAMMING 157

      What Is Object-Oriented Programming? 158

      What Is an Object? 158

      Properties and Fields 159

      Methods 160

      Everything’s an Object 161

      The Life Cycle of an Object 161

      Constructors 161

      Destructors 162

      Static and Instance Class Members 162

      Static Constructors 162

      Static Classes 163

      OOP Techniques 163

      Interfaces 163

      Disposable Objects 164

      Inheritance 165

      Polymorphism 167

      Interface Polymorphism 168

      Relationships Between Objects 168

      Containment 168

      Collections 169

      Operator Overloading 169

      Events 170

      Reference Types Versus Value Types 170

      OOP in Desktop Applications 171

      Summary 174

      CHAPTER 9: DEFINING CLASSES 177

      Class Defi nitions in C# 177

      Interface Defi nitions 180

      System.Object 182

      Constructors and Destructors 184

      Constructor Execution Sequence 185

      OOP Tools in Visual Studio 188

      The Class View Window 188

      The Object Browser 190

      Adding Classes 191

      Class Diagrams 192

      Class Library Projects 193

      Interfaces Versus Abstract Classes 196

      Struct Types 198

      Shallow Copying Versus Deep Copying 200

      Summary 200

      CHAPTER 10: DEFINING CLASS MEMBERS 203

      Member Defi nitions 203

      Defi ning Fields 204

      Defi ning Methods 204

      Defi ning Properties 205

      Adding Members from a Class Diagram 210

      Adding Methods 210

      Adding Properties 212

      Adding Fields 212

      Refactoring Members 212

      Automatic Properties 213

      Additional Class Member Topics 213

      Hiding Base Class Methods 213

      Calling Overridden or Hidden Base Class Methods 215

      The this Keyword 216

      Using Nested Type Defi nitions 216

      Interface Implementation 218

      Implementing Interfaces in Classes 219

      Explicit Interface Member Implementation 220

      Additional Property Accessors 220

      Partial Class Defi nitions 221

      Partial Method Defi nitions 222

      Example Application 224

      Planning the Application 224

      The Card Class 224

      The Deck Class 224

      Writing the Class Library 224

      Adding the Suit and Rank Enumerations 225

      Adding the Card Class 226

      Adding the Deck Class 227

      A Client Application for the Class Library 230

      The Call Hierarchy Window 231

      Summary 232

      CHAPTER 11: COLLECTIONS, COMPARISONS, AND CONVERSIONS 235

      Collections 236

      Using Collections 236

      Defi ning Collections 241

      Indexers 242

      Adding a Cards Collection to CardLib 244

      Keyed Collections and IDictionary 247

      Iterators 248

      Iterators and Collections 252

      Deep Copying 253

      Adding Deep Copying to CardLib 255

      Comparisons 256

      Type Comparisons 256

      Boxing and Unboxing 257

      The is Operator 258

      Value Comparisons 260

      Operator Overloading 261

      Adding Operator Overloads to CardLib 265

      The IComparable and IComparer Interfaces 269

      Sorting Collections 271

      Conversions 274

      Overloading Conversion Operators 274

      The as Operator 275

      Summary 276

      CHAPTER 12: GENERICS 279

      What Are Generics? 280

      Using Generics 281

      Nullable Types 281

      Operators and Nullable Types 282

      The ?? Operator 283

      The System.Collections.Generic Namespace 287

      List 287

      Sorting and Searching Generic Lists 289

      Dictionary 294

      Modifying CardLib to Use a Generic Collection Class 295

      Defi ning Generic Types 296

      Defi ning Generic Classes 296

      The default Keyword 298

      Constraining Types 298

      Inheriting from Generic Classes 304

      Generic Operators 305

      Generic Structs 306

      Defi ning Generic Interfaces 306

      Defi ning Generic Methods 306

      Defi ning Generic Delegates 308

      Variance 308

      Covariance 309

      Contravariance 310

      Summary 310

      CHAPTER 13: ADDITIONAL OOP TECHNIQUES 313

      The :: Operator and the Global Namespace Qualifi er 313

      Custom Exceptions 315

      Adding Custom Exceptions to CardLib 315

      Events 316

      What Is an Event? 316

      Handling Events 317

      Defi ning Events 319

      Multipurpose Event Handlers 323

      The EventHandler and Generic EventHandler Types 325

      Return Values and Event Handlers 326

      Anonymous Methods 326

      Expanding and Using CardLib 327

      A Card Game Client for CardLib 327

      Attributes 334

      Reading Attributes 334

      Creating Attributes 335

      Summary 336

      CHAPTER 14: C# LANGUAGE ENHANCEMENTS 339

      Initializers 340

      Object Initializers 340

      Collection Initializers 342

      Type Inference 344

      Anonymous Types 346

      Dynamic Lookup 350

      The dynamic Type 350

      IDynamicMetaObjectProvider 354

      Advanced Method Parameters 354

      Optional Parameters 354

      Optional Parameter Values 355

      The OptionalAttribute Attribute 356

      Optional Parameter Order 356

      Named Parameters 356

      Named and Optional Parameter Guidelines 360

      Extension Methods 360

      Lambda Expressions 364

      Anonymous Methods Recap 364

      Lambda Expressions for Anonymous Methods 365

      Lambda Expression Parameters 368

      Lambda Expression Statement Bodies 368

      Lambda Expressions as Delegates and Expression Trees 369

      Lambda Expressions and Collections 370

      Caller Information Attributes 372

      Summary 375

      PART II: WINDOWS PROGRAMMING

      CHAPTER 15: BASIC DESKTOP PROGRAMMING 381

      XAML 382

      Separation of Concerns 382

      XAML in Action 383

      Namespaces 383

      Code-Behind Files 384

      The Playground 384

      WPF Controls 385

      Properties 386

      Dependency Properties 387

      Attached Properties 388

      Events 388

      Handling Events 389

      Routed Events 390

      Routed Commands 390

      Control Types 392

      Control Layout 393

      Stack Order 393

      Alignment, Margins, Padding, and Dimensions 393

      Border 394

      Canvas 394

      DockPanel 395

      StackPanel 397

      WrapPanel 398

      Grid 398

      The Game Client 401

      The About Window 401

      Designing the User Interface 401

      The Image Control 401

      The Label Control 402

      The TextBlock Control 402

      The Button Control 402

      The Options Window 405

      The TextBox Control 406

      The CheckBox Control 406

      The RadioButton Control 407

      The ComboBox Control 408

      The TabControl 409

      Handling Events in the Options Window 411

      Data Binding 413

      The DataContext 414

      Binding to Local Objects 414

      Static Binding to External Objects 414

      Dynamic Binding to External Objects 415

      Starting a Game 418

      The ListBox Control 418

      Summary 421

      CHAPTER 16: ADVANCED DESKTOP PROGRAMMING 425

      The Main Window 425

      The Menu Control 426

      Routed Commands with Menus 426

      Creating and Styling Controls 429

      Styles 430

      Templates 430

      Value Converters 434

      The IValueConverter Interface 434

      ValueConversionAttribute 434

      Triggers 435

      Animations 436

      Timelines without Key Frames 436

      Timelines with Key Frames 437

      WPF User Controls 438

      Implementing Dependency Properties 439

      Putting It All Together 447

      Refactoring the Domain Model 447

      The View Models 451

      Completing the Game 459

      Summary 466

      CHAPTER 17: WINDOWS STORE APPS 469

      Getting Started 469

      Windows 8 Developer License 470

      How to Get the License 470

      Windows Store Apps versus Desktop Applications 471

      Developing Windows Store Apps 472

      View Modes 472

      Full-Screen Mode 473

      Snapped Mode 473

      Fill Mode 473

      Screen Orientation 473

      The Missing Caption Bar 473

      Menus and Toolbars 473

      The App Bar 474

      Charms 475

      Tiles and Badges 476

      App Lifetime 476

      Lock Screen Apps 476

      App Development 476

      WPF and Windows Store App XAML Diff erences 476

      Namespace Changes 477

      Eff ects 477

      Opacity Mask 477

      Style Triggers 477

      Commands 478

      Templates and Pages 478

      Blank Page 478

      Basic Page 478

      Grouped Items and Group Details Pages 478

      Item Details Page 479

      Items and Split Pages 479

      Sandboxed Apps 479

      Disk Access 479

      Serialization, Streams, and Async Programming 480

      Navigation Between Pages 483

      Managing State 485

      Converting KarliCards, Part 1 485

      Creating the CardLib Project 486

      Converting the View Models 489

      Visual Changes 493

      Drop Shadow and Opacity Masks 493

      Style Triggers 493

      Converting User Controls 493

      Common Elements of Windows Store Apps 499

      The AppBar Control 500

      The Settings Panel 501

      Tiles, Badges, and Splash Screens 503

      Converting KarliCards, Part 2 504

      The Windows Store 509

      Checking the Store Requirements 509

      Summary 510

      CHAPTER 18: DEPLOYING DESKTOP APPLICATIONS 513

      Deployment Overview 514

      ClickOnce Deployment 514

      Implementing ClickOnce Deployment 515

      Installing the Application with ClickOnce 522

      Creating and Using Updates of the Application 524

      InstallShield Limited Edition 524

      The Project Assistant 524

      Step 1: Application Information 525

      Step 2: Installation Requirements 525

      Step 3: Installation Architecture 526

      Step 4: Application Files 526

      Step 5: Application Shortcuts 527

      Step 6: Application Registry 528

      Step 7: Installation Interview 528

      Summary 530

      PART III: WEB PROGRAMMING

      CHAPTER 19: ASP.NET WEB PROGRAMMING 535

      Overview of Web Applications 536

      ASP.NET Runtime 536

      Creating a Simple Page 536

      Server Controls 544

      ASP.NET Postback 545

      ASP.NET AJAX Postback 550

      Input Validation 553

      State Management 557

      Client-Side State Management 558

      View State 558

      Cookie 559

      Server-Side State Management 560

      Session 560

      Application 561

      Cache 562

      Styles 562

      Master Pages 566

      Site Navigation 571

      Authentication and Authorization 573

      Authentication Confi guration 574

      Using Security Controls 577

      Reading from and Writing to a SQL Server Database 580

      Summary 589

      CHAPTER 20: DEPLOYING WEB APPLICATIONS 591

      Internet Information Services 591

      IIS Confi guration 592

      Copying a Website 594

      Publishing a Web Application 597

      Summary 600

      PART IV: DATA ACCESS

      CHAPTER 21: FILE SYSTEM DATA 605

      Streams 605

      The Classes for Input and Output 606

      The File and Directory Classes 607

      The FileInfo Class 608

      The DirectoryInfo Class 610

      Path Names and Relative Paths 611

      The FileStream Object 611

      File Position 612

      Reading Data 613

      Writing Data 615

      The StreamWriter Object 617

      The StreamReader Object 618

      Reading Data 620

      Delimited Files 621

      Asynchronous File Access 625

      Reading and Writing Compressed Files 625

      Serialized Objects 628

      Monitoring the File System 632

      Summary 636

      CHAPTER 22: XML 639

      XML Documents 640

      XML Elements 640

      Attributes 641

      The XML Declaration 641

      The Structure of an XML Document 642

      XML Namespaces 642

      Well-Formed and Valid XML 643

      Validating XML Documents 644

      Schemas 644

      The XSD dialog box shown in the XmlDocument Class 645

      Using XML in Your Application 647

      XML Document Object Model 647

      The XmlDocument Class 648

      The XmlElement Class 648

      Changing the Values of Nodes 652

      Selecting Nodes 656

      XPath 657

      Summary 661

      CHAPTER 23: INTRODUCTION TO LINQ 663

      First LINQ Query 664

      Declaring a Variable for Results Using the var Keyword 665

      Specifying the Data Source: from Clause 666

      Specify Condition: where Clause 666

      Selecting Items: select Clause 666

      Finishing Up: Using the foreach Loop 667

      Deferred Query Execution 667

      Using the LINQ Method Syntax 667

      LINQ Extension Methods 667

      Query Syntax versus Method Syntax 668

      Ordering Query Results 669

      Understanding the orderby Clause 670

      Ordering Using Method Syntax 671

      Querying a Large Data Set 672

      Using Aggregate Operators 674

      Querying Complex Objects 678

      Projection: Creating New Objects in Queries 681

      Projection: Method Syntax 682

      Using the Select Distinct Query 683

      Using the Any and All Methods 684

      Ordering by Multiple Levels 685

      Multi-Level Ordering Method Syntax: ThenBy 687

      Using Group Queries 687

      Using Take and Skip 689

      Using First and FirstOrDefault 691

      Using the LINQ Set Operators 692

      Using Joins 694

      Summary 696

      CHAPTER 24: APPLYING LINQ 699

      LINQ Varieties 699

      Using LINQ with Databases 700

      Installing SQL Server and the Northwind Sample Data 700

      Installing SQL Server Express 701

      Installing the Northwind Sample Database 701

      First LINQ to Database Query 701

      Navigating Database Relationships 704

      Using LINQ with XML 706

      LINQ to XML Functional Constructors 707

      Constructing XML Element Text with Strings 710

      Saving and Loading an XML Document 710

      Loading XML from a String 712

      Contents of a Saved XML Document 713

      Working with XML Fragments 713

      Generating XML from Databases 715

      How to Query an XML Document 717

      Using LINQ to XML Query Members 718

      Elements( ) 718

      Descendants( ) 719

      Attributes( ) 721

      Summary 723

      PART V: ADDITIONAL TECHNIQUES

      CHAPTER 25: WINDOWS COMMUNICATION FOUNDATION 727

      What Is WCF? 728

      WCF Concepts 728

      WCF Communication Protocols 729

      Addresses, Endpoints, and Bindings 729

      Contracts 731

      Message Patterns 732

      Behaviors 732

      Hosting 732

      WCF Programming 733

      The WCF Test Client 740

      Defi ning WCF Service Contracts 742

      Data Contracts 743

      Service Contracts 743

      Operation Contracts 744

      Message Contracts 745

      Fault Contracts 745

      Self-Hosted WCF Services 750

      Summary 756

      CHAPTER 26: WINDOWS WORKFLOW FOUNDATION 759

      Hello World 759

      Workfl ows and Activities 761

      If Activity 761

      While Activity 762

      Sequence Activity 762

      Arguments and Variables 763

      Custom Activities 767

      Workfl ow Extensions 769

      Activity Validation 773

      Activity Designers 774

      Summary 776

      APPENDIX A: EXERCISE SOLUTIONS 779

      INDEX 827

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account