{"product_id":"professional-c-and-net-paperback-softback-9781119797203","title":"Professional C# and .NET (Paperback \/ softback) 9781119797203","description":"\u003cfont face=\"Georgia\"\u003e\r\n\u003cp\u003e\u003cfont size=\"6\"\u003eProfessional 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\"\u003eChristian Nagel (Author)\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e9781119797203, Wiley\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003ePaperback \/ softback, published 21 January 2022\u003c\/font\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e1008 pages\u003cbr\u003e23.4 x 18.8 x 5.1 cm, 1.656 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 the latest coverage of the newest features in C#9 and .NET 5\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIn \u003ci\u003eProfessional C# and .NET: 2021 Edition\u003c\/i\u003e, Microsoft MVP for Visual Studio and Development Technologies and veteran developer, Christian Nagel, delivers a comprehensive tour of the new features and capabilities of C#9 and .NET 5.\u003c\/p\u003e \u003cp\u003eExperienced programmers making the transition to C# will benefit from the author’s in-depth explorations to create Web- and Windows applications using ASP.NET Core, Blazor, and WinUI using modern application patterns and new features offered by .NET including Microservices deployed to Docker images, GRPC, localization, asynchronous streaming, and much more.\u003c\/p\u003e \u003cp\u003eThe book also offers:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eDiscussions of the extension of .NET to non-Microsoft platforms like OSX and Linux\u003c\/li\u003e \u003cli\u003eExplanations of the newest features in C#9, including support for record types, and enhanced support for tuples, pattern matching, and nullable reference types\u003c\/li\u003e \u003cli\u003eIntegrating .NET applications with Microsoft Azure services such as Azure App\u003c\/li\u003e \u003cli\u003eConfiguration, Azure Key Vault, Azure Functions, the Azure Active Directory, and others Downloadable code examples from wrox.com and github.com with online updates for C# 10 and .NET 6\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003ePerfect for programmers with a background in C#, Visual Basic, Java, or C\/C++, \u003ci\u003eProfessional C# and .NET: 2021 Edition\u003c\/i\u003e will also earn a place in the libraries of software architects seeking an up-to-date and fulsome treatment of the latest C# and .NET releases.\u003c\/p\u003e\u003c\/font\u003e\u003c\/strong\u003e\u003c\/p\u003e\r\n\r\n\u003cp\u003e\u003cfont size=\"3\"\u003e\u003cp\u003eIntroduction xxxix\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: The C# Language\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 1: .NET Applications and Tools 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFrom .NET Framework to .NET Core to .NET 3\u003c\/p\u003e \u003cp\u003e.NET Terms 4\u003c\/p\u003e \u003cp\u003e.NET Support Length 9\u003c\/p\u003e \u003cp\u003eApplication Types and Technologies 10\u003c\/p\u003e \u003cp\u003eMicrosoft Azure 12\u003c\/p\u003e \u003cp\u003eDeveloper Tools 14\u003c\/p\u003e \u003cp\u003eUsing the .NET CLI 16\u003c\/p\u003e \u003cp\u003eSummary 23\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 2: Core C# 24\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eFundamentals of C# 25\u003c\/p\u003e \u003cp\u003eNullable Types 30\u003c\/p\u003e \u003cp\u003eUsing Predefined Types 33\u003c\/p\u003e \u003cp\u003eControlling Program Flow 37\u003c\/p\u003e \u003cp\u003eOrganization with Namespaces 44\u003c\/p\u003e \u003cp\u003eWorking with Strings 45\u003c\/p\u003e \u003cp\u003eComments 49\u003c\/p\u003e \u003cp\u003eC# Preprocessor Directives 51\u003c\/p\u003e \u003cp\u003eC# Programming Guidelines 54\u003c\/p\u003e \u003cp\u003eSummary 58\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 3: Classes, Records, Structs, and Tuples 59\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eCreating and Using Types 60\u003c\/p\u003e \u003cp\u003ePass by Value or by Reference 60\u003c\/p\u003e \u003cp\u003eClasses 62\u003c\/p\u003e \u003cp\u003eRecords 77\u003c\/p\u003e \u003cp\u003eStructs 79\u003c\/p\u003e \u003cp\u003eEnum Types 80\u003c\/p\u003e \u003cp\u003eref, in, and out 83\u003c\/p\u003e \u003cp\u003eTuples 86\u003c\/p\u003e \u003cp\u003eValueTuple 88\u003c\/p\u003e \u003cp\u003eDeconstruction 88\u003c\/p\u003e \u003cp\u003ePattern Matching 89\u003c\/p\u003e \u003cp\u003ePartial Types 92\u003c\/p\u003e \u003cp\u003eSummary 94\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 4: Object-Oriented Programming in C# 95\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eObject Orientation 96\u003c\/p\u003e \u003cp\u003eInheritance with Classes 96\u003c\/p\u003e \u003cp\u003eModifiers 104\u003c\/p\u003e \u003cp\u003eInheritance with Records 106\u003c\/p\u003e \u003cp\u003eUsing Interfaces 107\u003c\/p\u003e \u003cp\u003eGenerics 115\u003c\/p\u003e \u003cp\u003eSummary 118\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 5: Operators and Casts 119\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOperators 120\u003c\/p\u003e \u003cp\u003eUsing Binary Operators 127\u003c\/p\u003e \u003cp\u003eType Safety 132\u003c\/p\u003e \u003cp\u003eOperator Overloading 136\u003c\/p\u003e \u003cp\u003eComparing Objects for Equality 139\u003c\/p\u003e \u003cp\u003eImplementing Custom Indexers 142\u003c\/p\u003e \u003cp\u003eUser-Defined Conversions 143\u003c\/p\u003e \u003cp\u003eSummary 152\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 6: Arrays 153\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMultiple Objects of the Same Type 154\u003c\/p\u003e \u003cp\u003eSimple Arrays 154\u003c\/p\u003e \u003cp\u003eMultidimensional Arrays 157\u003c\/p\u003e \u003cp\u003eJagged Arrays 158\u003c\/p\u003e \u003cp\u003eArray Class 159\u003c\/p\u003e \u003cp\u003eArrays as Parameters 163\u003c\/p\u003e \u003cp\u003eEnumerators 163\u003c\/p\u003e \u003cp\u003eUsing Span with Arrays 167\u003c\/p\u003e \u003cp\u003eIndices and Ranges 170\u003c\/p\u003e \u003cp\u003eArray Pools 172\u003c\/p\u003e \u003cp\u003eBitArray 174\u003c\/p\u003e \u003cp\u003eSummary 176\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 7: Delegates, Lambdas, and Events 177\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eReferencing Methods 178\u003c\/p\u003e \u003cp\u003eDelegates 178\u003c\/p\u003e \u003cp\u003eLambda Expressions 187\u003c\/p\u003e \u003cp\u003eEvents 189\u003c\/p\u003e \u003cp\u003eSummary 192\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 8: Collections 193\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 194\u003c\/p\u003e \u003cp\u003eCollection Interfaces and Types 194\u003c\/p\u003e \u003cp\u003eLists 195\u003c\/p\u003e \u003cp\u003eStacks 206\u003c\/p\u003e \u003cp\u003eLinked Lists 208\u003c\/p\u003e \u003cp\u003eSorted List 209\u003c\/p\u003e \u003cp\u003eDictionaries 211\u003c\/p\u003e \u003cp\u003eSets 218\u003c\/p\u003e \u003cp\u003ePerformance 220\u003c\/p\u003e \u003cp\u003eImmutable Collections 222\u003c\/p\u003e \u003cp\u003eSummary 225\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 9: Language Integrated Query 226\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eLINQ Overview 227\u003c\/p\u003e \u003cp\u003eStandard Query Operators 233\u003c\/p\u003e \u003cp\u003eParallel LINQ 256\u003c\/p\u003e \u003cp\u003eExpression Trees 258\u003c\/p\u003e \u003cp\u003eLINQ Providers 261\u003c\/p\u003e \u003cp\u003eSummary 262\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 10: Errors and Exceptions 263\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eHandling Errors 264\u003c\/p\u003e \u003cp\u003ePredefined Exception Classes 264\u003c\/p\u003e \u003cp\u003eCatching Exceptions 265\u003c\/p\u003e \u003cp\u003eUser-Defined Exception Classes 278\u003c\/p\u003e \u003cp\u003eCaller Information 285\u003c\/p\u003e \u003cp\u003eSummary 287\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 11: Tasks and Asynchronous Programming 288\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy Asynchronous Programming Is Important 289\u003c\/p\u003e \u003cp\u003eTask-Based Async Pattern 290\u003c\/p\u003e \u003cp\u003eTasks 291\u003c\/p\u003e \u003cp\u003eError Handling 297\u003c\/p\u003e \u003cp\u003eCancellation of async Methods 299\u003c\/p\u003e \u003cp\u003eAsync Streams 300\u003c\/p\u003e \u003cp\u003eAsync with Windows Apps 302\u003c\/p\u003e \u003cp\u003eSummary 306\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 12: Reflection, Metadata, And Source Generators 307\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eInspecting Code at Runtime and Dynamic Programming 308\u003c\/p\u003e \u003cp\u003eCustom Attributes 308\u003c\/p\u003e \u003cp\u003eUsing Reflection 314\u003c\/p\u003e \u003cp\u003eUsing Dynamic Language Extensions for Reflection 322\u003c\/p\u003e \u003cp\u003eExpandoObject 325\u003c\/p\u003e \u003cp\u003eSource Generators 327\u003c\/p\u003e \u003cp\u003eSummary 334\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 13: Managed and Unmanaged Memory 335\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eMemory 336\u003c\/p\u003e \u003cp\u003eMemory Management Under the Hood 336\u003c\/p\u003e \u003cp\u003eStrong and Weak References 342\u003c\/p\u003e \u003cp\u003eWorking with Unmanaged Resources 344\u003c\/p\u003e \u003cp\u003eUnsafe Code 349\u003c\/p\u003e \u003cp\u003eSpan\u003ct\u003e 365\u003c\/t\u003e\u003c\/p\u003e \u003cp\u003ePlatform Invoke 368\u003c\/p\u003e \u003cp\u003eSummary 373\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Libraries\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 14: Libraries, Assemblies, Packages, and Nuget 377\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Hell of Libraries 378\u003c\/p\u003e \u003cp\u003eAssemblies 379\u003c\/p\u003e \u003cp\u003eCreating and Using Libraries 381\u003c\/p\u003e \u003cp\u003eCreating NuGet Packages 386\u003c\/p\u003e \u003cp\u003eModule Initializers 390\u003c\/p\u003e \u003cp\u003eSummary 391\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 15: Dependency Injection and Configuration 392\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhat Is Dependency Injection? 393\u003c\/p\u003e \u003cp\u003eUsing the .NET DI Container 393\u003c\/p\u003e \u003cp\u003eUsing the Host Class 395\u003c\/p\u003e \u003cp\u003eLifetime of Services 396\u003c\/p\u003e \u003cp\u003eInitialization of Services Using Options 403\u003c\/p\u003e \u003cp\u003eUsing Configuration Files 405\u003c\/p\u003e \u003cp\u003eConfiguration with .NET Applications 406\u003c\/p\u003e \u003cp\u003eAzure App Configuration 411\u003c\/p\u003e \u003cp\u003eSummary 418\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 16: Diagnostics and Metrics 419\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDiagnostics Overview 420\u003c\/p\u003e \u003cp\u003eLogging 421\u003c\/p\u003e \u003cp\u003eMetrics 429\u003c\/p\u003e \u003cp\u003eAnalytics with Visual Studio App Center 434\u003c\/p\u003e \u003cp\u003eApplication Insights 437\u003c\/p\u003e \u003cp\u003eSummary 439\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 17: Parallel Programming 440\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 441\u003c\/p\u003e \u003cp\u003eParallel Class 442\u003c\/p\u003e \u003cp\u003eTasks 448\u003c\/p\u003e \u003cp\u003eCancellation Framework 455\u003c\/p\u003e \u003cp\u003eChannels 458\u003c\/p\u003e \u003cp\u003eTimers 461\u003c\/p\u003e \u003cp\u003eThreading Issues 463\u003c\/p\u003e \u003cp\u003eInterlocked 468\u003c\/p\u003e \u003cp\u003eMonitor 468\u003c\/p\u003e \u003cp\u003eSpinLock 469\u003c\/p\u003e \u003cp\u003eWaitHandle 470\u003c\/p\u003e \u003cp\u003eMutex 470\u003c\/p\u003e \u003cp\u003eSemaphore 471\u003c\/p\u003e \u003cp\u003eEvents 473\u003c\/p\u003e \u003cp\u003eBarrier 476\u003c\/p\u003e \u003cp\u003eReaderWriterLockSlim 479\u003c\/p\u003e \u003cp\u003eLocks with await 481\u003c\/p\u003e \u003cp\u003eSummary 484\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 18: Files and Streams 485\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 486\u003c\/p\u003e \u003cp\u003eManaging the File System 486\u003c\/p\u003e \u003cp\u003eIterating Files 492\u003c\/p\u003e \u003cp\u003eWorking with Streams 493\u003c\/p\u003e \u003cp\u003eUsing Readers and Writers 503\u003c\/p\u003e \u003cp\u003eCompressing Files 505\u003c\/p\u003e \u003cp\u003eWatching File Changes 508\u003c\/p\u003e \u003cp\u003eJSON Serialization 509\u003c\/p\u003e \u003cp\u003eUsing Files and Streams with the Windows Runtime 515\u003c\/p\u003e \u003cp\u003eSummary 519\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 19: Networking 520\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 521\u003c\/p\u003e \u003cp\u003eWorking with Utility Classes 521\u003c\/p\u003e \u003cp\u003eUsing Sockets 526\u003c\/p\u003e \u003cp\u003eUsing TCP Classes 533\u003c\/p\u003e \u003cp\u003eUsing UDP 537\u003c\/p\u003e \u003cp\u003eUsing Web Servers 542\u003c\/p\u003e \u003cp\u003eThe HttpClient Class 548\u003c\/p\u003e \u003cp\u003eHttpClient Factory 554\u003c\/p\u003e \u003cp\u003eSummary 557\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 20: Security 558\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eElements of Security 559\u003c\/p\u003e \u003cp\u003eVerifying User Information 559\u003c\/p\u003e \u003cp\u003eEncrypting Data 566\u003c\/p\u003e \u003cp\u003eEnsuring Web Security 576\u003c\/p\u003e \u003cp\u003eSummary 581\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 21: Entity Framework Core 582\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing EF Core 583\u003c\/p\u003e \u003cp\u003eCreating a Model 593\u003c\/p\u003e \u003cp\u003eScaffolding a Model from the Database 600\u003c\/p\u003e \u003cp\u003eMigrations 601\u003c\/p\u003e \u003cp\u003eWorking with Queries 606\u003c\/p\u003e \u003cp\u003eLoading Related Data 612\u003c\/p\u003e \u003cp\u003eWorking with Relationships 617\u003c\/p\u003e \u003cp\u003eSaving Data 625\u003c\/p\u003e \u003cp\u003eConflict Handling 630\u003c\/p\u003e \u003cp\u003eUsing Transactions 635\u003c\/p\u003e \u003cp\u003eUsing Azure Cosmos DB 639\u003c\/p\u003e \u003cp\u003eSummary 643\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 22: Localization 644\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eGlobal Markets 645\u003c\/p\u003e \u003cp\u003eNamespace System.Globalization 645\u003c\/p\u003e \u003cp\u003eResources 656\u003c\/p\u003e \u003cp\u003eLocalization with ASP.NET Core 658\u003c\/p\u003e \u003cp\u003eLocalization with WinUI 664\u003c\/p\u003e \u003cp\u003eSummary 667\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 23: Tests 668\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 668\u003c\/p\u003e \u003cp\u003eUnit Testing 669\u003c\/p\u003e \u003cp\u003eUsing a Mocking Library 678\u003c\/p\u003e \u003cp\u003eASP.NET Core Integration Testing 682\u003c\/p\u003e \u003cp\u003eSummary 684\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Web Applications and Services\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 24: Asp.NET Core 687\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Web Technologies 687\u003c\/p\u003e \u003cp\u003eCreating an ASP.NET Core Web Project 689\u003c\/p\u003e \u003cp\u003eAdding Client-Side Content 694\u003c\/p\u003e \u003cp\u003eCreating Custom Middleware 696\u003c\/p\u003e \u003cp\u003eEndpoint Routing 699\u003c\/p\u003e \u003cp\u003eRequest and Response 700\u003c\/p\u003e \u003cp\u003eSession State 706\u003c\/p\u003e \u003cp\u003eHealth Checks 708\u003c\/p\u003e \u003cp\u003eDeployment 711\u003c\/p\u003e \u003cp\u003eSummary 713\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 25: Services 714\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eUnderstanding Today’s Services 715\u003c\/p\u003e \u003cp\u003eREST Services with ASP.NET Core 715\u003c\/p\u003e \u003cp\u003eCreating a .NET Client 724\u003c\/p\u003e \u003cp\u003eUsing EF Core with Services 730\u003c\/p\u003e \u003cp\u003eAuthentication and Authorization with Azure AD B2C 732\u003c\/p\u003e \u003cp\u003eImplementing and Using Services with GRPC 740\u003c\/p\u003e \u003cp\u003eUsing Azure Functions 748\u003c\/p\u003e \u003cp\u003eMore Azure Services 751\u003c\/p\u003e \u003cp\u003eSummary 751\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 26: Razor Pages and MVC 752\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eSetting Up Services for Razor Pages and MVC 753\u003c\/p\u003e \u003cp\u003eRazor Pages 755\u003c\/p\u003e \u003cp\u003eASP.NET Core MVC 773\u003c\/p\u003e \u003cp\u003eSummary 778\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 27: Blazor 779\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eBlazor Server and Blazor WebAssembly 780\u003c\/p\u003e \u003cp\u003eCreating a Blazor Server Web Application 782\u003c\/p\u003e \u003cp\u003eBlazor WebAssembly 788\u003c\/p\u003e \u003cp\u003eRazor Components 792\u003c\/p\u003e \u003cp\u003eSummary 800\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 28: Signalr 801\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eOverview 801\u003c\/p\u003e \u003cp\u003eCreating a Simple Chat Using SignalR 802\u003c\/p\u003e \u003cp\u003eGrouping Connections 810\u003c\/p\u003e \u003cp\u003eStreaming with SignalR 814\u003c\/p\u003e \u003cp\u003eSummary 816\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV: Apps\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 29: Windows Apps 819\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eIntroducing Windows Apps 819\u003c\/p\u003e \u003cp\u003eIntroducing XAML 826\u003c\/p\u003e \u003cp\u003eWorking with Controls 837\u003c\/p\u003e \u003cp\u003eWorking with Data Binding 852\u003c\/p\u003e \u003cp\u003eImplementing Navigation 861\u003c\/p\u003e \u003cp\u003eImplementing Layout Panels 867\u003c\/p\u003e \u003cp\u003eSummary 875\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 30: Patterns with XAML Apps 876\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eWhy MVVM? 876\u003c\/p\u003e \u003cp\u003eDefining the MVVM Pattern 877\u003c\/p\u003e \u003cp\u003eSample Solution 879\u003c\/p\u003e \u003cp\u003eModels 879\u003c\/p\u003e \u003cp\u003eServices 882\u003c\/p\u003e \u003cp\u003eView Models 883\u003c\/p\u003e \u003cp\u003eViews 891\u003c\/p\u003e \u003cp\u003eMessaging Using Events 897\u003c\/p\u003e \u003cp\u003eSummary 898\u003c\/p\u003e \u003cp\u003e\u003cb\u003eChapter 31: Styling Windows Apps 899\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eStyling 900\u003c\/p\u003e \u003cp\u003eShapes 900\u003c\/p\u003e \u003cp\u003eGeometry 902\u003c\/p\u003e \u003cp\u003eTransformation 903\u003c\/p\u003e \u003cp\u003eBrushes 906\u003c\/p\u003e \u003cp\u003eStyles and Resources 908\u003c\/p\u003e \u003cp\u003eTemplates 913\u003c\/p\u003e \u003cp\u003eAnimations 918\u003c\/p\u003e \u003cp\u003eVisual State Manager 928\u003c\/p\u003e \u003cp\u003eSummary 931\u003c\/p\u003e \u003cp\u003eIndex 933\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":52470044131608,"sku":"9781119797203","price":30.98,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0730\/2037\/5320\/files\/9781119797203.jpg?v=1785629797","url":"https:\/\/freshlyprintedbooks.co.uk\/products\/professional-c-and-net-paperback-softback-9781119797203","provider":"Freshly Printed Books","version":"1.0","type":"link"}