{"product_id":"beginning-c-and-net-paperback-softback-9781119795780","title":"Beginning C# and .NET (Paperback \/ softback) 9781119795780","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eBeginning C# and .NET\u003c\/font\u003e\u003cbr\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003c\/p\u003e\n\u003cp\u003e\u003cfont size=\"4\"\u003eBenjamin Perkins (Author), Jon D. Reid (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781119795780, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003ePaperback \/ softback, published 21 September 2021\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e864 pages\u003cbr\u003e23.6 x 19.1 x 4.6 cm, 1.406 kg\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cp align=\"justify\"\u003e\u003cstrong\u003e\u003cfont size=\"3\"\u003e\u003cp\u003e\u003cb\u003eGet a running start to learning C# programming with this fun and easy-to-read guide \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eAs one of the most versatile and powerful programming languages around, you might think C# would be an intimidating language to learn. It doesn’t have to be! \u003c\/p\u003e \u003cp\u003eIn \u003ci\u003eBeginning C# and .NET: 2021 Edition\u003c\/i\u003e, expert Microsoft programmer and engineer Benjamin Perkins and program manager Jon D. Reid walk you through the precise, step-by-step directions you’ll need to follow to become fluent in the C# language and .NET. \u003c\/p\u003e \u003cp\u003eUsing the proven WROX method, you’ll discover how to understand and write simple expressions and functions, debug programs, work with classes and class members, work with Windows forms, program for the web, and access data. You’ll even learn about some of the new features included in the latest releases of C# and .NET, including data consumption, code simplification, and performance. \u003c\/p\u003e \u003cp\u003eThe book also offers: \u003c\/p\u003e \u003cul\u003e \u003cli\u003eDetailed discussions of programming basics, like variables, flow control, and object-oriented programming that assume no previous programming experience \u003c\/li\u003e \u003cli\u003e“Try it Out” sections to help you write useful programming code using the steps you’ve learned in the book \u003c\/li\u003e \u003cli\u003eDownloadable code examples from wrox.com \u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003ePerfect for beginning-level programmers who are completely new to C#, \u003ci\u003eBeginning C# and .NET: 2021 Edition\u003c\/i\u003e is a must-have resource for anyone interested in learning programming and looking for a fun and intuitive place to start. \u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eIntroduction xxvii\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: The C# Language\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: Introducing C# 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat Is .NET? 3\u003c\/p\u003e \u003cp\u003e.NET Framework, .NET Standard, and .NET Core 4\u003c\/p\u003e \u003cp\u003eWriting Programs Using .NET 5\u003c\/p\u003e \u003cp\u003eCIL and JIT 5\u003c\/p\u003e \u003cp\u003eAssemblies 6\u003c\/p\u003e \u003cp\u003eManaged Code 7\u003c\/p\u003e \u003cp\u003eGarbage Collection 7\u003c\/p\u003e \u003cp\u003eFitting It Together 7\u003c\/p\u003e \u003cp\u003eLinking 8\u003c\/p\u003e \u003cp\u003eWhat Is C#? 8\u003c\/p\u003e \u003cp\u003eApplications You Can Write with C# 9\u003c\/p\u003e \u003cp\u003eC# in This Book 10\u003c\/p\u003e \u003cp\u003eVisual Studio 10\u003c\/p\u003e \u003cp\u003eVisual Studio Products 10\u003c\/p\u003e \u003cp\u003eSolutions 11\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Writing a C# Program 13\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Visual Studio Development Environment 14\u003c\/p\u003e \u003cp\u003eConsole Applications 18\u003c\/p\u003e \u003cp\u003eThe Solution Explorer 21\u003c\/p\u003e \u003cp\u003eThe Properties Window 22\u003c\/p\u003e \u003cp\u003eThe Error List Window 23\u003c\/p\u003e \u003cp\u003eDesktop Applications 23\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Variables and Expressions 29\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBasic C# Syntax 30\u003c\/p\u003e \u003cp\u003eBasic C# Console Application Structure 33\u003c\/p\u003e \u003cp\u003eVariables 34\u003c\/p\u003e \u003cp\u003eSimple Types 34\u003c\/p\u003e \u003cp\u003eVariable Naming 39\u003c\/p\u003e \u003cp\u003eLiteral Values 39\u003c\/p\u003e \u003cp\u003eBinary Literals and Digit Separators 40\u003c\/p\u003e \u003cp\u003eString Literals 41\u003c\/p\u003e \u003cp\u003eExpressions 42\u003c\/p\u003e \u003cp\u003eMathematical Operators 43\u003c\/p\u003e \u003cp\u003eAssignment Operators 48\u003c\/p\u003e \u003cp\u003eOperator Precedence 49\u003c\/p\u003e \u003cp\u003eNamespaces 50\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Flow Control 55\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBoolean Logic 56\u003c\/p\u003e \u003cp\u003eBoolean Bitwise and Assignment Operators 58\u003c\/p\u003e \u003cp\u003eOperator Precedence Updated 60\u003c\/p\u003e \u003cp\u003eBranching 60\u003c\/p\u003e \u003cp\u003eThe Ternary Operator 61\u003c\/p\u003e \u003cp\u003eThe if Statement 61\u003c\/p\u003e \u003cp\u003eChecking More Conditions Using if Statements 64\u003c\/p\u003e \u003cp\u003eThe switch Statement 65\u003c\/p\u003e \u003cp\u003eLooping 68\u003c\/p\u003e \u003cp\u003edo Loops 68\u003c\/p\u003e \u003cp\u003ewhile Loops 71\u003c\/p\u003e \u003cp\u003efor Loops 73\u003c\/p\u003e \u003cp\u003eInterrupting Loops 74\u003c\/p\u003e \u003cp\u003eInfinite Loops 75\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: More About Variables 79\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eType Conversion 80\u003c\/p\u003e \u003cp\u003eImplicit Conversions 80\u003c\/p\u003e \u003cp\u003eExplicit Conversions 82\u003c\/p\u003e \u003cp\u003eExplicit Conversions Using the Convert Commands 84\u003c\/p\u003e \u003cp\u003eComplex Variable Types 87\u003c\/p\u003e \u003cp\u003eEnumerations 87\u003c\/p\u003e \u003cp\u003eDefining Enumerations 88\u003c\/p\u003e \u003cp\u003eStructs 91\u003c\/p\u003e \u003cp\u003eDefining Structs 92\u003c\/p\u003e \u003cp\u003eArrays 94\u003c\/p\u003e \u003cp\u003eDeclaring Arrays 95\u003c\/p\u003e \u003cp\u003eforeach Loops 98\u003c\/p\u003e \u003cp\u003ePattern Matching with switch case Expression 98\u003c\/p\u003e \u003cp\u003eMultidimensional Arrays 102\u003c\/p\u003e \u003cp\u003eArrays of Arrays 104\u003c\/p\u003e \u003cp\u003eString Manipulation 105\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Functions 113\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDefining and Using Functions 114\u003c\/p\u003e \u003cp\u003eReturn Values 117\u003c\/p\u003e \u003cp\u003eParameters 118\u003c\/p\u003e \u003cp\u003eParameter Matching 121\u003c\/p\u003e \u003cp\u003eParameter Arrays 121\u003c\/p\u003e \u003cp\u003eReference and Value Parameters 123\u003c\/p\u003e \u003cp\u003eOut Parameters 125\u003c\/p\u003e \u003cp\u003eTuples 126\u003c\/p\u003e \u003cp\u003eVariable Scope 128\u003c\/p\u003e \u003cp\u003eVariable Scope in Other Structures 131\u003c\/p\u003e \u003cp\u003eParameters and Return Values versus Global Data 132\u003c\/p\u003e \u003cp\u003eLocal Functions 134\u003c\/p\u003e \u003cp\u003eThe Main() Function 135\u003c\/p\u003e \u003cp\u003eStruct Functions 137\u003c\/p\u003e \u003cp\u003eOverloading Functions 138\u003c\/p\u003e \u003cp\u003eUsing Delegates 140\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Debugging and Error Handling 145\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDebugging in Visual Studio 146\u003c\/p\u003e \u003cp\u003eDebugging in Nonbreak (Normal) Mode 147\u003c\/p\u003e \u003cp\u003eOutputting Debugging Information 148\u003c\/p\u003e \u003cp\u003eTracepoints 152\u003c\/p\u003e \u003cp\u003eDiagnostics Output versus Tracepoints 154\u003c\/p\u003e \u003cp\u003eDebugging in Break Mode 155\u003c\/p\u003e \u003cp\u003eEntering Break Mode 155\u003c\/p\u003e \u003cp\u003eMonitoring Variable Content 158\u003c\/p\u003e \u003cp\u003eStepping through Code 161\u003c\/p\u003e \u003cp\u003eImmediate and Command Windows 162\u003c\/p\u003e \u003cp\u003eThe Call Stack Window 163\u003c\/p\u003e \u003cp\u003eError Handling 163\u003c\/p\u003e \u003cp\u003etry catch finally 164\u003c\/p\u003e \u003cp\u003eThrow Expressions 172\u003c\/p\u003e \u003cp\u003eListing and Configuring Exceptions 172\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Introduction to Object-oriented Programming 175\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat Is Object-Oriented Programming? 176\u003c\/p\u003e \u003cp\u003eWhat Is an Object? 177\u003c\/p\u003e \u003cp\u003eProperties and Fields 178\u003c\/p\u003e \u003cp\u003eMethods 179\u003c\/p\u003e \u003cp\u003eEverything’s an Object 180\u003c\/p\u003e \u003cp\u003eThe Life Cycle of an Object 180\u003c\/p\u003e \u003cp\u003eConstructors 180\u003c\/p\u003e \u003cp\u003eDestructors 181\u003c\/p\u003e \u003cp\u003eStatic and Instance Class Members 181\u003c\/p\u003e \u003cp\u003eStatic Constructors 181\u003c\/p\u003e \u003cp\u003eStatic Classes 182\u003c\/p\u003e \u003cp\u003eOOP Techniques 182\u003c\/p\u003e \u003cp\u003eInterfaces 182\u003c\/p\u003e \u003cp\u003eDisposable Objects 184\u003c\/p\u003e \u003cp\u003eInheritance 184\u003c\/p\u003e \u003cp\u003ePolymorphism 187\u003c\/p\u003e \u003cp\u003eInterface Polymorphism 188\u003c\/p\u003e \u003cp\u003eRelationships between Objects 189\u003c\/p\u003e \u003cp\u003eContainment 189\u003c\/p\u003e \u003cp\u003eCollections 190\u003c\/p\u003e \u003cp\u003eOperator Overloading 191\u003c\/p\u003e \u003cp\u003eEvents 191\u003c\/p\u003e \u003cp\u003eReference Types versus Value Types 192\u003c\/p\u003e \u003cp\u003eOOP in Desktop Applications 192\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Defining Classes 199\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eClass Definitions in C# 200\u003c\/p\u003e \u003cp\u003eInterface Definitions 202\u003c\/p\u003e \u003cp\u003eSystem.Object 205\u003c\/p\u003e \u003cp\u003eConstructors and Destructors 207\u003c\/p\u003e \u003cp\u003eConstructor Execution Sequence 209\u003c\/p\u003e \u003cp\u003eOOP Tools in Visual Studio 212\u003c\/p\u003e \u003cp\u003eThe Class View Window 212\u003c\/p\u003e \u003cp\u003eThe Object Browser 214\u003c\/p\u003e \u003cp\u003eAdding Classes 216\u003c\/p\u003e \u003cp\u003eClass Diagrams 217\u003c\/p\u003e \u003cp\u003eClass Library Projects 219\u003c\/p\u003e \u003cp\u003eInterfaces versus Abstract Classes 223\u003c\/p\u003e \u003cp\u003eStruct Types 225\u003c\/p\u003e \u003cp\u003eShallow Copying versus Deep Copying 227\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Defining Class Members 231\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMember Definitions 232\u003c\/p\u003e \u003cp\u003eDefining Fields 232\u003c\/p\u003e \u003cp\u003eDefining Methods 233\u003c\/p\u003e \u003cp\u003eDefining Properties 234\u003c\/p\u003e \u003cp\u003eTuple Deconstruction 239\u003c\/p\u003e \u003cp\u003eRefactoring Members 240\u003c\/p\u003e \u003cp\u003eAutomatic Properties 241\u003c\/p\u003e \u003cp\u003eAdditional Class Member Topics 242\u003c\/p\u003e \u003cp\u003eHiding Base Class Methods 242\u003c\/p\u003e \u003cp\u003eCalling Overridden or Hidden Base Class Methods 244\u003c\/p\u003e \u003cp\u003eThe this Keyword 244\u003c\/p\u003e \u003cp\u003eUsing Nested Type Definitions 245\u003c\/p\u003e \u003cp\u003eInterface Implementation 247\u003c\/p\u003e \u003cp\u003eImplementing Interfaces in Classes 248\u003c\/p\u003e \u003cp\u003eExplicit Interface Member Implementation 249\u003c\/p\u003e \u003cp\u003eAdditional Property Accessors 249\u003c\/p\u003e \u003cp\u003ePartial Class Definitions 250\u003c\/p\u003e \u003cp\u003ePartial Method Definitions 251\u003c\/p\u003e \u003cp\u003eExample Application 252\u003c\/p\u003e \u003cp\u003ePlanning the Application 253\u003c\/p\u003e \u003cp\u003eThe Card Class 253\u003c\/p\u003e \u003cp\u003eThe Deck Class 253\u003c\/p\u003e \u003cp\u003eWriting the Class Library 253\u003c\/p\u003e \u003cp\u003eAdding the Suit and Rank Enumerations 254\u003c\/p\u003e \u003cp\u003eAdding the Card Class 256\u003c\/p\u003e \u003cp\u003eAdding the Deck Class 258\u003c\/p\u003e \u003cp\u003eA Client Application for the Class Library 261\u003c\/p\u003e \u003cp\u003eThe Call Hierarchy Window 262\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Collections, Comparisons, and Conversions 265\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCollections 266\u003c\/p\u003e \u003cp\u003eUsing Collections 267\u003c\/p\u003e \u003cp\u003eDefining Collections 272\u003c\/p\u003e \u003cp\u003eIndexers 273\u003c\/p\u003e \u003cp\u003eAdding a CardCollection to CardLib 275\u003c\/p\u003e \u003cp\u003eKeyed Collections and IDictionary 278\u003c\/p\u003e \u003cp\u003eIterators 279\u003c\/p\u003e \u003cp\u003eIterators and Collections 284\u003c\/p\u003e \u003cp\u003eDeep Copying 285\u003c\/p\u003e \u003cp\u003eAdding Deep Copying to CardLib 286\u003c\/p\u003e \u003cp\u003eComparisons 288\u003c\/p\u003e \u003cp\u003eType Comparisons 288\u003c\/p\u003e \u003cp\u003eBoxing and Unboxing 289\u003c\/p\u003e \u003cp\u003eThe is Operator 290\u003c\/p\u003e \u003cp\u003ePattern Matching with the is Operator Pattern Expression 293\u003c\/p\u003e \u003cp\u003eValue Comparisons 294\u003c\/p\u003e \u003cp\u003eOperator Overloading 294\u003c\/p\u003e \u003cp\u003eAdding Operator Overloads to CardLib 299\u003c\/p\u003e \u003cp\u003eThe IComparable and IComparer Interfaces 304\u003c\/p\u003e \u003cp\u003eSorting Collections 306\u003c\/p\u003e \u003cp\u003eConversions 309\u003c\/p\u003e \u003cp\u003eOverloading Conversion Operators 310\u003c\/p\u003e \u003cp\u003eThe as Operator 311\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Generics 315\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat Are Generics? 316\u003c\/p\u003e \u003cp\u003eUsing Generics 317\u003c\/p\u003e \u003cp\u003eNullable Types 317\u003c\/p\u003e \u003cp\u003eOperators and Nullable Types 318\u003c\/p\u003e \u003cp\u003eThe ?? Operator 319\u003c\/p\u003e \u003cp\u003eThe ?. Operator 320\u003c\/p\u003e \u003cp\u003eWorking with Nullable Types 321\u003c\/p\u003e \u003cp\u003eThe System.Collections.Generic Namespace 325\u003c\/p\u003e \u003cp\u003eList\u003ct\u003e 326\u003c\/t\u003e\u003c\/p\u003e \u003cp\u003eSorting and Searching Generic Lists 327\u003c\/p\u003e \u003cp\u003eDictionary\u003ck v\u003e 333\u003c\/k\u003e\u003c\/p\u003e \u003cp\u003eModifying CardLib to Use a Generic Collection Class 334\u003c\/p\u003e \u003cp\u003eDefining Generic Types 335\u003c\/p\u003e \u003cp\u003eDefining Generic Classes 336\u003c\/p\u003e \u003cp\u003eThe default Keyword 338\u003c\/p\u003e \u003cp\u003eConstraining Types 338\u003c\/p\u003e \u003cp\u003eInheriting from Generic Classes 344\u003c\/p\u003e \u003cp\u003eGeneric Operators 345\u003c\/p\u003e \u003cp\u003eGeneric Structs 346\u003c\/p\u003e \u003cp\u003eDefining Generic Interfaces 346\u003c\/p\u003e \u003cp\u003eDefining Generic Methods 346\u003c\/p\u003e \u003cp\u003eDefining Generic Delegates 348\u003c\/p\u003e \u003cp\u003eVariance 348\u003c\/p\u003e \u003cp\u003eCovariance 349\u003c\/p\u003e \u003cp\u003eContravariance 350\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Additional C# Techniques 355\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe :: Operator and the Global Namespace Qualifier 356\u003c\/p\u003e \u003cp\u003eCustom Exceptions 357\u003c\/p\u003e \u003cp\u003eAdding Custom Exceptions to CardLib 358\u003c\/p\u003e \u003cp\u003eEvents 359\u003c\/p\u003e \u003cp\u003eWhat Is an Event? 359\u003c\/p\u003e \u003cp\u003eHandling Events 361\u003c\/p\u003e \u003cp\u003eDefining Events 363\u003c\/p\u003e \u003cp\u003eMultipurpose Event Handlers 367\u003c\/p\u003e \u003cp\u003eThe EventHandler and Generic EventHandler\u003ct\u003e Types 370\u003c\/t\u003e\u003c\/p\u003e \u003cp\u003eReturn Values and Event Handlers 370\u003c\/p\u003e \u003cp\u003eAnonymous Methods 370\u003c\/p\u003e \u003cp\u003eExpanding and Using CardLib 371\u003c\/p\u003e \u003cp\u003eAttributes 380\u003c\/p\u003e \u003cp\u003eReading Attributes 380\u003c\/p\u003e \u003cp\u003eCreating Attributes 381\u003c\/p\u003e \u003cp\u003eInitializers 382\u003c\/p\u003e \u003cp\u003eObject Initializers 383\u003c\/p\u003e \u003cp\u003eCollection Initializers 385\u003c\/p\u003e \u003cp\u003eType Inference 388\u003c\/p\u003e \u003cp\u003eAnonymous Types 390\u003c\/p\u003e \u003cp\u003eDynamic Lookup 394\u003c\/p\u003e \u003cp\u003eThe dynamic Type 395\u003c\/p\u003e \u003cp\u003eAdvanced Method Parameters 399\u003c\/p\u003e \u003cp\u003eOptional Parameters 399\u003c\/p\u003e \u003cp\u003eOptional Parameter Values 400\u003c\/p\u003e \u003cp\u003eThe OptionalAttribute Attribute 400\u003c\/p\u003e \u003cp\u003eOptional Parameter Order 401\u003c\/p\u003e \u003cp\u003eNamed Parameters 401\u003c\/p\u003e \u003cp\u003eLambda Expressions 405\u003c\/p\u003e \u003cp\u003eAnonymous Methods Recap 405\u003c\/p\u003e \u003cp\u003eLambda Expressions for Anonymous Methods 407\u003c\/p\u003e \u003cp\u003eLambda Expression Parameters 410\u003c\/p\u003e \u003cp\u003eLambda Expression Statement Bodies 411\u003c\/p\u003e \u003cp\u003eLambda Expressions as Delegates and Expression Trees 412\u003c\/p\u003e \u003cp\u003eLambda Expressions and Collections 413\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Data Access\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Files 423\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFile Classes for Input and Output 424\u003c\/p\u003e \u003cp\u003eThe File and Directory Classes 424\u003c\/p\u003e \u003cp\u003eThe FileInfo Class 426\u003c\/p\u003e \u003cp\u003eThe DirectoryInfo Class 428\u003c\/p\u003e \u003cp\u003ePath Names and Relative Paths 428\u003c\/p\u003e \u003cp\u003eStreams 429\u003c\/p\u003e \u003cp\u003eClasses for Using Streams 429\u003c\/p\u003e \u003cp\u003eThe FileStream Object 429\u003c\/p\u003e \u003cp\u003eFile Position 430\u003c\/p\u003e \u003cp\u003eReading Data 432\u003c\/p\u003e \u003cp\u003eWriting Data 434\u003c\/p\u003e \u003cp\u003eThe StreamWriter Object 436\u003c\/p\u003e \u003cp\u003eThe StreamReader Object 439\u003c\/p\u003e \u003cp\u003eReading Data 440\u003c\/p\u003e \u003cp\u003eAsynchronous File Access 441\u003c\/p\u003e \u003cp\u003eReading and Writing Compressed Files 442\u003c\/p\u003e \u003cp\u003eMonitoring the File System 445\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: XML and JSON 453\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eXML Basics 454\u003c\/p\u003e \u003cp\u003eJSON Basics 455\u003c\/p\u003e \u003cp\u003eXML Schemas 455\u003c\/p\u003e \u003cp\u003eXML Document Object Model 458\u003c\/p\u003e \u003cp\u003eThe XmlDocument Class 458\u003c\/p\u003e \u003cp\u003eThe XmlElement Class 459\u003c\/p\u003e \u003cp\u003eChanging the Values of Nodes 463\u003c\/p\u003e \u003cp\u003eInserting New Nodes 465\u003c\/p\u003e \u003cp\u003eDeleting Nodes 467\u003c\/p\u003e \u003cp\u003eSelecting Nodes 469\u003c\/p\u003e \u003cp\u003eSearching XML with XPath 469\u003c\/p\u003e \u003cp\u003eJSON Serialization and Deserialization 473\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: LINQ 479\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLINQ to XML 480\u003c\/p\u003e \u003cp\u003eLINQ to XML Functional Constructors 480\u003c\/p\u003e \u003cp\u003eWorking with XML Fragments 483\u003c\/p\u003e \u003cp\u003eLINQ Providers 486\u003c\/p\u003e \u003cp\u003eLINQ Query Syntax 486\u003c\/p\u003e \u003cp\u003eDeclaring a Variable for Results Using the var Keyword 488\u003c\/p\u003e \u003cp\u003eSpecifying the Data Source: from Clause 489\u003c\/p\u003e \u003cp\u003eSpecify Condition: where Clause 489\u003c\/p\u003e \u003cp\u003eSelecting Items: select Clause 490\u003c\/p\u003e \u003cp\u003eFinishing Up: Using the foreach Loop 490\u003c\/p\u003e \u003cp\u003eDeferred Query Execution 490\u003c\/p\u003e \u003cp\u003eLINQ Method Syntax 490\u003c\/p\u003e \u003cp\u003eLINQ Extension Methods 491\u003c\/p\u003e \u003cp\u003eQuery Syntax versus Method Syntax 491\u003c\/p\u003e \u003cp\u003eLambda Expressions 492\u003c\/p\u003e \u003cp\u003eOrdering Query Results 494\u003c\/p\u003e \u003cp\u003eUnderstanding the orderby Clause 495\u003c\/p\u003e \u003cp\u003eQuerying a Large Data Set 496\u003c\/p\u003e \u003cp\u003eUsing Aggregate Operators 498\u003c\/p\u003e \u003cp\u003eUsing the Select Distinct Query 502\u003c\/p\u003e \u003cp\u003eOrdering by Multiple Levels 504\u003c\/p\u003e \u003cp\u003eUsing Group Queries 506\u003c\/p\u003e \u003cp\u003eUsing Joins 508\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Databases 513\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUsing Databases 514\u003c\/p\u003e \u003cp\u003eEntity Framework 514\u003c\/p\u003e \u003cp\u003eCode- First versus Database- First 514\u003c\/p\u003e \u003cp\u003eMigrations and Scaffolding 515\u003c\/p\u003e \u003cp\u003eInstall SQL Server Express LocalDB 515\u003c\/p\u003e \u003cp\u003eA Code- First Database 516\u003c\/p\u003e \u003cp\u003eExploring Your Database 527\u003c\/p\u003e \u003cp\u003eNavigating Database Relationships 530\u003c\/p\u003e \u003cp\u003eCreating and Querying XML from an Existing Database 536\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Additional Techniques\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: .NET and ASP.NET 545\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCross- Platform Basics and Key “Must Know” Terms 547\u003c\/p\u003e \u003cp\u003eWhat was .NET Standard? 549\u003c\/p\u003e \u003cp\u003eShared Project, PCL, and .NET Standard 551\u003c\/p\u003e \u003cp\u003eBuilding and Packaging a .NET Standard Library 553\u003c\/p\u003e \u003cp\u003eReferencing and Targeting .NET 557\u003c\/p\u003e \u003cp\u003eWhat was .NET Core? 558\u003c\/p\u003e \u003cp\u003eCross Platform 558\u003c\/p\u003e \u003cp\u003eOpen Source 559\u003c\/p\u003e \u003cp\u003eOptimized for the Cloud 560\u003c\/p\u003e \u003cp\u003ePerformance 560\u003c\/p\u003e \u003cp\u003eModular Design 561\u003c\/p\u003e \u003cp\u003eSelf- Contained Deployment Model 562\u003c\/p\u003e \u003cp\u003ePorting from .NET Framework to .NET 565\u003c\/p\u003e \u003cp\u003eIdentifying Third- Party Dependencies 567\u003c\/p\u003e \u003cp\u003eUnderstanding Which Features Are Not Available 567\u003c\/p\u003e \u003cp\u003eUpgrading the Current .NET Framework Target 567\u003c\/p\u003e \u003cp\u003eOverview of Web Applications 568\u003c\/p\u003e \u003cp\u003eWhich ASP.NET to Use and Why 569\u003c\/p\u003e \u003cp\u003eASP.NET Web Forms 570\u003c\/p\u003e \u003cp\u003eServer Controls 572\u003c\/p\u003e \u003cp\u003eInput Validation 573\u003c\/p\u003e \u003cp\u003eState Management 574\u003c\/p\u003e \u003cp\u003eAuthentication and Authorization 575\u003c\/p\u003e \u003cp\u003eASP.NET Web Site versus ASP.NET Web Applications 575\u003c\/p\u003e \u003cp\u003eASP.NET MVC\/ASP.NET Core Web App MVC 577\u003c\/p\u003e \u003cp\u003eASP.NET Core Web API 579\u003c\/p\u003e \u003cp\u003eASP.NET Core Web App 580\u003c\/p\u003e \u003cp\u003eIIS and Kestrel 581\u003c\/p\u003e \u003cp\u003eBlazor App and Razor Pages 582\u003c\/p\u003e \u003cp\u003eInput Validation 584\u003c\/p\u003e \u003cp\u003eState Management 585\u003c\/p\u003e \u003cp\u003eAuthentication and Authorization 586\u003c\/p\u003e \u003cp\u003eDependency Injection 586\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: Basic Cloud Programming 591\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Cloud, Cloud Computing, and the Cloud Optimized Stack 592\u003c\/p\u003e \u003cp\u003eCloud Patterns and Best Practices 595\u003c\/p\u003e \u003cp\u003eUsing Microsoft Azure C# Libraries to Create a Storage Container 597\u003c\/p\u003e \u003cp\u003eCreating an ASP.NET Core Web Application That Uses the Storage Container 607\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20: Basic Web API and WCF Programming 617\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating an ASP.NET Core Web API 617\u003c\/p\u003e \u003cp\u003eConsuming an ASP.NET Core Web API 622\u003c\/p\u003e \u003cp\u003eWhat Is REST? 629\u003c\/p\u003e \u003cp\u003eWhat Is WCF? 630\u003c\/p\u003e \u003cp\u003eWCF Concepts 631\u003c\/p\u003e \u003cp\u003eWCF Communication Protocols 631\u003c\/p\u003e \u003cp\u003eAddresses, Endpoints, and Bindings 632\u003c\/p\u003e \u003cp\u003eContracts 634\u003c\/p\u003e \u003cp\u003eMessage Patterns 634\u003c\/p\u003e \u003cp\u003eBehaviors 635\u003c\/p\u003e \u003cp\u003eHosting 635\u003c\/p\u003e \u003cp\u003eWCF Programming 635\u003c\/p\u003e \u003cp\u003eThe WCF Test Client 642\u003c\/p\u003e \u003cp\u003eDefining WCF Service Contracts 644\u003c\/p\u003e \u003cp\u003eData Contracts 645\u003c\/p\u003e \u003cp\u003eService Contracts 645\u003c\/p\u003e \u003cp\u003eOperation Contracts 646\u003c\/p\u003e \u003cp\u003eMessage Contracts 647\u003c\/p\u003e \u003cp\u003eFault Contracts 647\u003c\/p\u003e \u003cp\u003eSelf- Hosted WCF Services 652\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21: Basic Desktop Programming 663\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eXAML 664\u003c\/p\u003e \u003cp\u003eSeparation of Concerns 665\u003c\/p\u003e \u003cp\u003eXAML in Action 665\u003c\/p\u003e \u003cp\u003eNamespaces 666\u003c\/p\u003e \u003cp\u003eCode- Behind Files 667\u003c\/p\u003e \u003cp\u003eThe Playground 667\u003c\/p\u003e \u003cp\u003eWPF Controls 669\u003c\/p\u003e \u003cp\u003eProperties 670\u003c\/p\u003e \u003cp\u003eDependency Properties 673\u003c\/p\u003e \u003cp\u003eAttached Properties 673\u003c\/p\u003e \u003cp\u003eEvents 674\u003c\/p\u003e \u003cp\u003eHandling Events 675\u003c\/p\u003e \u003cp\u003eRouted Events 676\u003c\/p\u003e \u003cp\u003eRouted Commands 676\u003c\/p\u003e \u003cp\u003eControl Types 679\u003c\/p\u003e \u003cp\u003eControl Layout 679\u003c\/p\u003e \u003cp\u003eBasic Layout Concepts 679\u003c\/p\u003e \u003cp\u003eStack Order 679\u003c\/p\u003e \u003cp\u003eAlignment, Margins, Padding, and Dimensions 680\u003c\/p\u003e \u003cp\u003eBorder 680\u003c\/p\u003e \u003cp\u003eVisual Debugging Tools 681\u003c\/p\u003e \u003cp\u003eLayout Panels 682\u003c\/p\u003e \u003cp\u003eCanvas 682\u003c\/p\u003e \u003cp\u003eDockPanel 684\u003c\/p\u003e \u003cp\u003eStackPanel 686\u003c\/p\u003e \u003cp\u003eWrapPanel 687\u003c\/p\u003e \u003cp\u003eGrid 688\u003c\/p\u003e \u003cp\u003eThe Game Client 691\u003c\/p\u003e \u003cp\u003eThe About Window 691\u003c\/p\u003e \u003cp\u003eDesigning the User Interface 692\u003c\/p\u003e \u003cp\u003eThe Image Control 692\u003c\/p\u003e \u003cp\u003eThe Label Control 692\u003c\/p\u003e \u003cp\u003eThe TextBlock Control 693\u003c\/p\u003e \u003cp\u003eThe Button Control 693\u003c\/p\u003e \u003cp\u003eThe Options Window 696\u003c\/p\u003e \u003cp\u003eThe TextBox Control 697\u003c\/p\u003e \u003cp\u003eThe CheckBox Control 698\u003c\/p\u003e \u003cp\u003eThe RadioButton Control 699\u003c\/p\u003e \u003cp\u003eThe ComboBox Control 700\u003c\/p\u003e \u003cp\u003eThe TabControl 701\u003c\/p\u003e \u003cp\u003eHandling Events in the Options Window 705\u003c\/p\u003e \u003cp\u003eData Binding 707\u003c\/p\u003e \u003cp\u003eThe DataContext 708\u003c\/p\u003e \u003cp\u003eBinding to Local Objects 708\u003c\/p\u003e \u003cp\u003eStatic Binding to External Objects 709\u003c\/p\u003e \u003cp\u003eDynamic Binding to External Objects 710\u003c\/p\u003e \u003cp\u003eStarting a Game with the ListBox Control 712\u003c\/p\u003e \u003cp\u003eCreating and Styling Controls 716\u003c\/p\u003e \u003cp\u003eStyles 716\u003c\/p\u003e \u003cp\u003eTemplates 717\u003c\/p\u003e \u003cp\u003eTriggers 719\u003c\/p\u003e \u003cp\u003eAnimations 720\u003c\/p\u003e \u003cp\u003eWPF User Controls 721\u003c\/p\u003e \u003cp\u003eImplementing Dependency Properties 722\u003c\/p\u003e \u003cp\u003eThe Main Window 736\u003c\/p\u003e \u003cp\u003eThe Menu Control 736\u003c\/p\u003e \u003cp\u003eRouted Commands with Menus 736\u003c\/p\u003e \u003cp\u003ePutting It All Together 741\u003c\/p\u003e \u003cp\u003eRefactoring the Domain Model 741\u003c\/p\u003e \u003cp\u003eThe View Model 748\u003c\/p\u003e \u003cp\u003eCompleting the Game 757\u003c\/p\u003e \u003cp\u003e\u003cb\u003eAppendix: Exercise Solutions 769\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIndex 809\u003c\/p\u003e\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003eSubject Areas: Computer programming \/ software development [\u003ca title=\"See our other books on Computer programming \/ software development\" href=\"https:\/\/freshlyprintedbooks.co.uk\/search?q=%22Computer%20programming%20\/%20software%20development%20%5BUM%5D%22\"\u003eUM\u003c\/a\u003e]\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\r\n\u003c\/font\u003e","brand":"Wrox","offers":[{"title":"Brand New","offer_id":52501152268568,"sku":"9781119795780","price":31.45,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781119795780.jpg?v=1786213021","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/beginning-c-and-net-paperback-softback-9781119795780","provider":"Freshly Printed Books","version":"1.0","type":"link"}