"Written for programmers with a background in C++, Java or other high-level languages, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft's C# language and .NET Framework 3.5 in depth. The book is updated for Visual Studio 2008 and C# 3.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code descriptions, and program outputs. The book features 200+ C# applications with about 20,000 lines of proven C# code, and hundreds of tips that will help you build robust applications." Start with a concise introduction to C# using an early classes and objects approach, then rapidly move on to more advanced topics, including the .NET Framework 3.5, LINQ, WPF, ASP.NET AJAX, WCF web services and Silverlight. You'll enjoy the Deitels' classic treatment of object-oriented programming and the OOD/UML ATM case study, including a complete C# implementation. When you're finished, you'll have everything you need to build next-generation Windows applications, web applications and web services. Cover......Page 1 Contents......Page 11 Preface......Page 25 Before You Begin......Page 41 1 Introduction......Page 45 1.2 Microsoft's Windows® Operating System......Page 46 1.3 C, C++ and Java......Page 47 1.4 Visual C#......Page 48 1.6 The Internet and the World Wide Web......Page 49 1.8 Introduction to Microsoft .NET......Page 51 1.9 The .NET Framework and the Common Language Runtime......Page 52 1.10 Test-Driving a C# Advanced Painter Application......Page 53 1.11 (Only Required Section of the Case Study) Software Engineering Case Study: Introduction to Object Technology and the UML......Page 55 1.13 Web Resources......Page 60 2 Dive Into® Visual C# 2008 Express......Page 62 2.2 Overview of the Visual Studio 2008 IDE......Page 63 2.3 Menu Bar and Toolbar......Page 69 2.4 Navigating the Visual Studio IDE......Page 72 2.4.1 Solution Explorer......Page 74 2.4.2 Toolbox......Page 75 2.4.3 Properties Window......Page 76 2.5 Using Help......Page 77 2.6 Using Visual Programming to Create a Simple Program that Displays Text and an Image......Page 79 2.7 Wrap-Up......Page 91 2.8 Web Resources......Page 92 3 Introduction to C# Applications......Page 93 3.2 A Simple C# Application: Displaying a Line of Text......Page 94 3.3 Creating a Simple Application in Visual C# Express......Page 99 3.4 Modifying Your Simple C# Application......Page 107 3.5 Formatting Text with Console.Write and Console.WriteLine......Page 109 3.6 Another C# Application: Adding Integers......Page 110 3.7 Arithmetic......Page 114 3.8 Decision Making: Equality and Relational Operators......Page 115 3.9 (Optional) Software Engineering Case Study: Examining the ATM Requirements Document......Page 120 3.11 Web Resources......Page 129 4 Introduction to Classes and Objects......Page 130 4.2 Classes, Objects, Methods, Properties and Instance Variables......Page 131 4.3 Declaring a Class with a Method and Instantiating an Object of a Class......Page 133 4.4 Declaring a Method with a Parameter......Page 137 4.5 Instance Variables and Properties......Page 140 4.7 Software Engineering with Properties and set and get Accessors......Page 146 4.8 Auto-Implemented Properties......Page 148 4.9 Value Types vs. Reference Types......Page 149 4.10 Initializing Objects with Constructors......Page 151 4.11 Floating-Point Numbers and Type decimal......Page 154 4.12 (Optional) Software Engineering Case Study: Identifying the Classes in the ATM Requirements Document......Page 160 4.13 Wrap-Up......Page 167 5 Control Statements: Part 1......Page 169 5.2 Control Structures......Page 170 5.3 if Single-Selection Statement......Page 173 5.4 if...else Double-Selection Statement......Page 174 5.5 while Repetition Statement......Page 178 5.6 Counter-Controlled Repetition......Page 179 5.7 Formulating Algorithms: Sentinel-Controlled Repetition......Page 183 5.8 Formulating Algorithms: Nested Control Statements......Page 188 5.9 Compound Assignment Operators......Page 191 5.10 Increment and Decrement Operators......Page 192 5.12 (Optional) Software Engineering Case Study: Identifying Class Attributes in the ATM System......Page 195 5.13 Wrap-Up......Page 200 6 Control Statements: Part 2......Page 201 6.2 Essentials of Counter-Controlled Repetition......Page 202 6.3 for Repetition Statement......Page 204 6.4 Examples Using the for Statement......Page 208 6.5 do...while Repetition Statement......Page 212 6.6 switch Multiple-Selection Statement......Page 214 6.7 break and continue Statements......Page 222 6.8 Logical Operators......Page 224 6.9 (Optional) Software Engineering Case Study: Identifying Objects' States and Activities in the ATM System......Page 230 6.10 Wrap-Up......Page 234 7 Methods: A Deeper Look......Page 236 7.2 Packaging Code in C#......Page 237 7.3 static Methods, static Variables and Class Math......Page 238 7.4 Declaring Methods with Multiple Parameters......Page 241 7.5 Notes on Declaring and Using Methods......Page 245 7.6 Method-Call Stack and Activation Records......Page 246 7.7 Argument Promotion and Casting......Page 247 7.8 The .NET Framework Class Library......Page 249 7.9 Case Study: Random-Number Generation......Page 250 7.9.1 Scaling and Shifting Random Numbers......Page 254 7.9.2 Random-Number Repeatability for Testing and Debugging......Page 255 7.10 Case Study: A Game of Chance (Introducing Enumerations)......Page 256 7.11 Scope of Declarations......Page 261 7.12 Method Overloading......Page 264 7.13 Recursion......Page 267 7.14 Passing Arguments: Pass-by-Value vs. Pass-by-Reference......Page 270 7.15 (Optional) Software Engineering Case Study: Identifying Class Operations in the ATM System......Page 273 7.16 Wrap-Up......Page 281 8 Arrays......Page 282 8.2 Arrays......Page 283 8.3 Declaring and Creating Arrays......Page 285 8.4 Examples Using Arrays......Page 286 8.5 Case Study: Card Shuffling and Dealing Simulation......Page 295 8.6 foreach Statement......Page 299 8.7 Passing Arrays and Array Elements to Methods......Page 301 8.8 Passing Arrays by Value and by Reference......Page 303 8.9 Case Study: Class GradeBook Using an Array to Store Grades......Page 307 8.10 Multidimensional Arrays......Page 312 8.11 Case Study: Class GradeBook Using a Rectangular Array......Page 317 8.12 Variable-Length Argument Lists......Page 323 8.13 Using Command-Line Arguments......Page 324 8.14 (Optional) Software Engineering Case Study: Collaboration Among Objects in the ATM System......Page 326 8.15 Wrap-Up......Page 334 9 Introduction to LINQ and Generic Collections......Page 336 9.1 Introduction......Page 337 9.2 Querying an Array Using LINQ......Page 338 9.3 Introduction to Collections......Page 347 9.4 Querying a Generic Collection Using LINQ......Page 350 9.6 Deitel LINQ Resource Center......Page 352 10 Classes and Objects: A Deeper Look......Page 353 10.1 Introduction......Page 354 10.2 Time Class Case Study......Page 355 10.3 Controlling Access to Members......Page 359 10.4 Referring to the Current Object's Members with the this Reference......Page 360 10.5 Indexers......Page 362 10.6 Time Class Case Study: Overloaded Constructors......Page 365 10.7 Default and Parameterless Constructors......Page 371 10.8 Composition......Page 372 10.9 Garbage Collection and Destructors......Page 375 10.10 static Class Members......Page 376 10.11 readonly Instance Variables......Page 380 10.12 Software Reusability......Page 382 10.13 Data Abstraction and Encapsulation......Page 383 10.14 Time Class Case Study: Creating Class Libraries......Page 385 10.15 internal Access......Page 389 10.16 Class View and Object Browser......Page 391 10.17 Object Initializers......Page 392 10.18 Time Class Case Study: Extension Methods......Page 395 10.19 Delegates......Page 398 10.20 Lambda Expressions......Page 401 10.21 Anonymous Types......Page 404 10.22 (Optional) Software Engineering Case Study: Starting to Program the Classes of the ATM System......Page 406 10.23 Wrap-Up......Page 412 11 Object-Oriented Programming: Inheritance......Page 414 11.1 Introduction......Page 415 11.2 Base Classes and Derived Classes......Page 416 11.3 protected Members......Page 418 11.4 Relationship between Base Classes and Derived Classes......Page 419 11.4.1 Creating and Using a CommissionEmployee Class......Page 420 11.4.2 Creating a BasePlusCommissionEmployee Class without Using Inheritance......Page 425 11.4.3 Creating a CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy......Page 429 11.4.4 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables......Page 432 11.4.5 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables......Page 438 11.5 Constructors in Derived Classes......Page 443 11.6 Software Engineering with Inheritance......Page 449 11.7 Class object......Page 450 11.8 Wrap-Up......Page 451 12 Polymorphism, Interfaces and Operator Overloading......Page 452 12.1 Introduction......Page 453 12.2 Polymorphism Examples......Page 455 12.3 Demonstrating Polymorphic Behavior......Page 456 12.4 Abstract Classes and Methods......Page 459 12.5 Case Study: Payroll System Using Polymorphism......Page 461 12.5.1 Creating Abstract Base Class Employee......Page 462 12.5.2 Creating Concrete Derived Class SalariedEmployee......Page 464 12.5.3 Creating Concrete Derived Class HourlyEmployee......Page 466 12.5.4 Creating Concrete Derived Class CommissionEmployee......Page 467 12.5.5 Creating Indirect Concrete Derived Class BasePlusCommissionEmployee......Page 469 12.5.6 Polymorphic Processing, Operator is and Downcasting......Page 470 12.5.7 Summary of the Allowed Assignments Between Base-Class and Derived-Class Variables......Page 475 12.6 sealed Methods and Classes......Page 476 12.7 Case Study: Creating and Using Interfaces......Page 477 12.7.1 Developing an IPayable Hierarchy......Page 478 12.7.3 Creating Class Invoice......Page 479 12.7.4 Modifying Class Employee to Implement Interface IPayable......Page 481 12.7.5 Modifying Class SalariedEmployee for Use with IPayable......Page 482 12.7.6 Using Interface IPayable to Process Invoices and Employees Polymorphically......Page 484 12.7.7 Common Interfaces of the .NET Framework Class Library......Page 486 12.8 Operator Overloading......Page 487 12.9 (Optional) Software Engineering Case Study: Incorporating Inheritance and Polymorphism into the ATM System......Page 490 12.10 Wrap-Up......Page 499 13 Exception Handling......Page 500 13.1 Introduction......Page 501 13.3 Example: Divide by Zero without Exception Handling......Page 502 13.4 Example: Handling DivideByZeroExceptions and FormatExceptions......Page 505 13.4.3 Uncaught Exceptions......Page 508 13.4.4 Termination Model of Exception Handling......Page 509 13.5 .NET Exception Hierarchy......Page 510 13.5.2 Determining Which Exceptions a Method Throws......Page 511 13.6 finally Block......Page 512 13.7 Exception Properties......Page 520 13.8 User-Defined Exception Classes......Page 525 13.9 Wrap-Up......Page 528 14 Graphical User Interfaces with Windows Forms: Part 1......Page 529 14.1 Introduction......Page 530 14.2 Windows Forms......Page 531 14.3.1 A Simple Event-Driven GUI......Page 534 14.3.2 Another Look at the Visual Studio Generated Code......Page 536 14.3.3 Delegates and the Event-Handling Mechanism......Page 537 14.3.4 Other Ways to Create Event Handlers......Page 538 14.3.5 Locating Event Information......Page 539 14.4 Control Properties and Layout......Page 541 14.5 Labels, TextBoxes and Buttons......Page 544 14.6 GroupBoxes and Panels......Page 547 14.7 CheckBoxes and RadioButtons......Page 551 14.8 PictureBoxes......Page 559 14.9 ToolTips......Page 562 14.10 NumericUpDown Control......Page 564 14.11 Mouse-Event Handling......Page 566 14.12 Keyboard-Event Handling......Page 569 14.13 Wrap-Up......Page 572 15 Graphical User Interfaces with Windows Forms: Part 2......Page 574 15.2 Menus......Page 575 15.3 MonthCalendar Control......Page 585 15.4 DateTimePicker Control......Page 586 15.5 LinkLabel Control......Page 589 15.6 ListBox Control......Page 593 15.7 CheckedListBox Control......Page 597 15.8 ComboBox Control......Page 600 15.9 TreeView Control......Page 604 15.10 ListView Control......Page 609 15.11 TabControl Control......Page 615 15.12 Multiple Document Interface (MDI) Windows......Page 620 15.13 Visual Inheritance......Page 628 15.14 User-Defined Controls......Page 631 15.15 Wrap-Up......Page 636 16 GUI with Windows Presentation Foundation......Page 637 16.1 Introduction......Page 638 16.2 Windows Presentation Foundation (WPF)......Page 639 16.3 XML Basics......Page 640 16.4 Structuring Data......Page 643 16.5 XML Namespaces......Page 648 16.6 Declarative GUI Programming Using XAML......Page 652 16.7 Creating a WPF Application in Visual C# Express......Page 654 16.8.1 General Layout Principles......Page 656 16.8.2 Layout in Action......Page 657 16.9 Event Handling......Page 662 16.10 Commands and Common Application Tasks......Page 669 16.11 WPF GUI Customization......Page 674 16.12 Using Styles to Change a Control's Appearance......Page 675 16.13 Customizing Windows......Page 680 16.14 Defining a Control's Appearance with Control Templates......Page 683 16.15 Data-Driven GUIs with Data Binding......Page 688 16.17 Web Resources......Page 694 17 WPF Graphics and Multimedia......Page 695 17.2 Controlling Fonts......Page 696 17.3 Basic Shapes......Page 698 17.4 Polygons and Polylines......Page 700 17.5 Brushes......Page 703 17.6 Transforms......Page 709 17.7 WPF Customization: A Television GUI......Page 712 17.8 Animations......Page 721 17.9 (Optional) 3-D Objects and Transforms......Page 724 17.10 Wrap-Up......Page 731 18 Strings, Characters and Regular Expressions......Page 732 18.1 Introduction......Page 733 18.2 Fundamentals of Characters and Strings......Page 734 18.3 string Constructors......Page 735 18.4 string Indexer, Length Property and CopyTo Method......Page 736 18.5 Comparing strings......Page 737 18.6 Locating Characters and Substrings in strings......Page 741 18.7 Extracting Substrings from strings......Page 743 18.8 Concatenating strings......Page 744 18.9 Miscellaneous string Methods......Page 745 18.10 Class StringBuilder......Page 746 18.11 Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder......Page 748 18.12 Append and AppendFormat Methods of Class StringBuilder......Page 749 18.13 Insert, Remove and Replace Methods of Class StringBuilder......Page 752 18.14 Char Methods......Page 754 18.15 Card Shuffling and Dealing Simulation......Page 757 18.16 Introduction to Regular-Expression Processing......Page 761 18.16.1 Simple Regular Expressions and Class Regex......Page 762 18.16.2 Complex Regular Expressions......Page 767 18.16.3 Validating User Input with Regular Expressions and LINQ......Page 768 18.16.4 Regex Methods Replace and Split......Page 773 18.17 Wrap-Up......Page 775 19 Files and Streams......Page 776 19.2 Data Hierarchy......Page 777 19.3 Files and Streams......Page 779 19.4 Classes File and Directory......Page 780 19.5 Creating a Sequential-Access Text File......Page 789 19.6 Reading Data from a Sequential-Access Text File......Page 799 19.7 Case Study: Credit Inquiry Program Using LINQ......Page 804 19.9 Creating a Sequential-Access File Using Object Serialization......Page 810 19.10 Reading and Deserializing Data from a Binary File......Page 817 19.11 Wrap-Up......Page 821 20 XML and LINQ to XML......Page 822 20.2 Document Type Definitions (DTDs)......Page 823 20.3 W3C XML Schema Documents......Page 827 20.4 Extensible Stylesheet Language and XSL Transformations......Page 834 20.5 LINQ to XML: Document Object Model (DOM)......Page 843 20.6 LINQ to XML Class Hierarchy......Page 847 20.7 LINQ to XML: Namespaces and Creating Documents......Page 856 20.8 XSLT with Class XslCompiledTransform......Page 859 20.9 Wrap-Up......Page 861 20.10 Web Resources......Page 862 21 Databases and LINQ to SQL......Page 863 21.1 Introduction......Page 864 21.2 Relational Databases......Page 865 21.3 Relational Database Overview: Books Database......Page 866 21.4.1 Basic SELECT Query......Page 870 21.4.2 WHERE Clause......Page 871 21.4.3 ORDER BY Clause......Page 873 21.4.4 Retrieving Data from Multiple Tables: INNER JOIN......Page 875 21.4.5 INSERT Statement......Page 876 21.4.6 UPDATE Statement......Page 877 21.4.7 DELETE Statement......Page 878 21.5 LINQ to SQL......Page 879 21.6.1 Creating LINQ to SQL Classes......Page 880 21.6.2 Creating Data Bindings......Page 881 21.7 More Complex LINQ Queries and Data Binding......Page 884 21.8 Retrieving Data from Multiple Tables with LINQ......Page 889 21.9 Creating a Master/Detail View Application......Page 892 21.10 Programming with LINQ to SQL: Address-Book Case Study......Page 897 21.12 Tools and Web Resources......Page 903 22 ASP.NET 3.5 and ASP.NET AJAX......Page 905 22.1 Introduction......Page 906 22.2 Simple HTTP Transactions......Page 907 22.3 Multitier Application Architecture......Page 911 22.4.1 Examining an ASPX File......Page 912 22.4.2 Examining a Code-Behind File......Page 914 22.4.3 Relationship Between an ASPX File and a Code-Behind File......Page 915 22.4.5 Examining the XHTML Generated by an ASP.NET Application......Page 916 22.4.6 Building an ASP.NET Web Application......Page 918 22.5 Web Controls......Page 926 22.5.1 Text and Graphics Controls......Page 927 22.5.2 AdRotator Control......Page 933 22.5.3 Validation Controls......Page 936 22.6 Session Tracking......Page 943 22.6.1 Cookies......Page 944 22.6.2 Session Tracking with HttpSessionState......Page 952 22.7 Case Study: Connecting to a Database in ASP.NET......Page 959 22.7.1 Building a Web Form That Displays Data from a Database......Page 960 22.7.2 Modifying the Code-Behind File for the Guestbook Application......Page 967 22.8 Case Study: Secure Books Database Application......Page 968 22.8.1 Examining the Completed Secure Books Database Application......Page 969 22.8.2 Creating the Secure Books Database Application......Page 972 22.9.1 Traditional Web Applications......Page 996 22.9.3 Examining an ASP.NET AJAX Application......Page 997 22.10 New ASP.NET 3.5 Data Controls......Page 1004 22.11 Wrap-Up......Page 1005 22.12 Web Resources......Page 1006 23 Windows Communication Foundation (WCF) Web Services......Page 1007 23.1 Introduction......Page 1008 23.3 Simple Object Access Protocol (SOAP)......Page 1009 23.5 JavaScript Object Notation (JSON)......Page 1010 23.6.2 Code for the WelcomeSOAPXMLService......Page 1011 23.6.3 Building a SOAP-Based Web Service......Page 1012 23.6.4 Deploying the WelcomeSOAPXMLService......Page 1015 23.6.5 Creating a Client to Consume the WelcomeSOAPXMLService......Page 1017 23.6.6 Consuming the WelcomeSOAPXMLService......Page 1019 23.7.1 Creating a REST-Based XML Web Service......Page 1020 23.7.2 Consuming a REST-Based XML Web Service......Page 1023 23.8.1 Creating a REST-Based JSON Web Service......Page 1024 23.8.2 Consuming a REST-Based JSON Web Service......Page 1026 23.9.1 Creating a Blackjack Web Service......Page 1028 23.9.2 Consuming the Blackjack Web Service......Page 1032 23.10 Airline Reservation Web Service: Database Access and Invoking a Service from ASP.NET......Page 1041 23.11 Equation Generator: Returning User-Defined Types......Page 1046 23.11.1 Creating the REST-Based XML EquationGenerator Web Service......Page 1049 23.11.2 Consuming the REST-Based XML EquationGenerator Web Service......Page 1050 23.11.3 Creating the REST-Based JSON EquationGenerator Web Service......Page 1054 23.11.4 Consuming the REST-Based JSON EquationGenerator Web Service......Page 1055 23.12 Wrap-Up......Page 1058 23.13 Deitel Web Services Resource Centers......Page 1059 24 Silverlight, Rich Internet Applications and Multimedia......Page 1060 24.1 Introduction......Page 1061 24.2 Platform Overview......Page 1062 24.4 Building a Silverlight WeatherViewer Application......Page 1063 24.4.1 GUI Layout......Page 1066 24.4.2 Obtaining and Displaying Weather Forecast Data......Page 1068 24.4.3 Custom Controls......Page 1072 24.5 Animations and the FlickrViewer......Page 1075 24.6 Images and Deep Zoom......Page 1081 24.6.1 Getting Started With Deep Zoom Composer......Page 1084 24.6.2 Creating a Silverlight Deep Zoom Application......Page 1086 24.7 Audio and Video......Page 1094 24.8 Isolated Storage......Page 1099 24.9 Silverlight Demos and Web Resources......Page 1100 24.10 Wrap-Up......Page 1101 25 Data Structures......Page 1103 25.2 Simple-Type structs, Boxing and Unboxing......Page 1104 25.3 Self-Referential Classes......Page 1105 25.4 Linked Lists......Page 1106 25.5 Stacks......Page 1119 25.6 Queues......Page 1123 25.7 Trees......Page 1126 25.7.1 Binary Search Tree of Integer Values......Page 1127 25.7.2 Binary Search Tree of IComparable Objects......Page 1134 25.8 Wrap-Up......Page 1139 26 Generics......Page 1141 26.1 Introduction......Page 1142 26.2 Motivation for Generic Methods......Page 1143 26.3 Generic-Method Implementation......Page 1145 26.4 Type Constraints......Page 1147 26.5 Overloading Generic Methods......Page 1150 26.6 Generic Classes......Page 1151 26.7 Wrap-Up......Page 1160 27 Collections......Page 1162 27.1 Introduction......Page 1163 27.2 Collections Overview......Page 1164 27.3 Class Array and Enumerators......Page 1166 27.4 Nongeneric Collections......Page 1169 27.4.1 Class ArrayList......Page 1170 27.4.2 Class Stack......Page 1174 27.4.3 Class Hashtable......Page 1176 27.5.1 Generic Class SortedDictionary......Page 1181 27.5.2 Generic Class LinkedList......Page 1184 27.6 Wrap-Up......Page 1188 A: Operator Precedence Chart......Page 1189 B: Simple Types......Page 1191 C: Number Systems......Page 1193 C.1 Introduction......Page 1194 C.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers......Page 1197 C.4 Converting from Binary, Octal or Hexadecimal to Decimal......Page 1198 C.5 Converting from Decimal to Binary, Octal or Hexadecimal......Page 1199 C.6 Negative Binary Numbers: Two's Complement Notation......Page 1201 D.1 ATM Case Study Implementation......Page 1203 D.2 Class ATM......Page 1204 D.4 Class Keypad......Page 1210 D.5 Class CashDispenser......Page 1211 D.6 Class DepositSlot......Page 1212 D.7 Class Account......Page 1213 D.8 Class BankDatabase......Page 1215 D.9 Class Transaction......Page 1218 D.10 Class BalanceInquiry......Page 1220 D.11 Class Withdrawal......Page 1221 D.12 Class Deposit......Page 1225 D.14 Wrap-Up......Page 1227 E.2 Additional Diagram Types......Page 1229 F: ASCII Character Set......Page 1231 G: Unicode®......Page 1232 G.1 Introduction......Page 1233 G.2 Unicode Transformation Formats......Page 1234 G.4 Advantages/Disadvantages of Unicode......Page 1235 G.5 Using Unicode......Page 1236 G.6 Character Ranges......Page 1238 H: Using the Visual C# 2008 Debugger......Page 1240 H.2 Breakpoints and the Continue Command......Page 1241 H.3 DataTips and Visualizers......Page 1247 H.4 The Locals and Watch Windows......Page 1248 H.5 Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands......Page 1251 H.6.1 Edit and Continue......Page 1254 H.6.2 Exception Assistant......Page 1256 H.6.4 Other Debugger Features......Page 1257 A......Page 1258 B......Page 1260 C......Page 1261 D......Page 1266 E......Page 1268 F......Page 1272 G......Page 1273 H......Page 1274 I......Page 1275 L......Page 1277 M......Page 1278 N......Page 1280 O......Page 1281 P......Page 1282 Q......Page 1283 R......Page 1284 S......Page 1285 T......Page 1289 U......Page 1290 V......Page 1291 W......Page 1292 X......Page 1294 Z......Page 1295 The professional programmer's Deitel® guide to C# and the powerful Microsoft®.NET Framework Written for programmers with a background in C++, Java or other high-level languages, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft's C# language and.NET Framework 3.5 in depth. The book is updated for Visual Studio® 2008 and C# 3.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, code highlighting, line-by-line code descriptions, and program outputs. The book features 200+ C# applications with about 20,000 lines of proven C# code, and hundreds of tips that will help you build robust applications. Start with a concise introduction to C# using an early classes and objects approach, then rapidly move on to more advanced topics, including the.NET Framework 3.5, LINQ, WPF, ASP.NET AJAX, WCF web services and SilverlightTM. You'll enjoy the Deitels'classic treatment of object-oriented programming and the OOD/UMLTM ATM case study, including a complete C# implementation. When you're finished, you'll have everything you need to build next-generation Windows applications, web applications and web services. TheDeitel® Developer Series isdesigned for practicing programmers. The series presents focused treatments of emerging technologies, including.NET, JavaTM, web services, Internet and web development, and more. Practical, example-rich coverage of:.Net Framework 3.5 Types, Arrays, LINQ to Objects Exception Handling LINQ, Object/Collection Initializers OOP: Classes, Inheritance, Polymorphism, Interfaces WinForms, WPF, XAML, Event Handling WPF Graphics/Multimedia, SilverlightTM Lists, Queues, Stacks, Trees Generic Collections, Generic Methods and Classes XML®, LINQ to XML Database, SQL, LINQ to SQL ASP.NET 3.5, ASP.NET AJAX Web Forms, Web Controls WCF Web Services OOD/UMLTM 2 CASE STUDY And more Visit www.deitel.com to: Download code examples Check out the growing list of programming, Web 2.0, and software-related Resource Centers To receive updates for this book, subscribe to the free Deitel® Buzz Online e-mail newsletter at www.deitel.com/newsletter/subscribe.html Read archived issues of the Deitel® Buzz Online Visit www.deitel.com/training for information on Deitel's Dive Into® Series corporate training courses delivered on-site worldwide