Professional C# 7 and .NET Core 2.0, 7th Edition

Book description

The professional’s guide to C# 7, with expert guidance on the newest features

Professional C# 7 and .NET Core 2.0 provides experienced programmers with the information they need to work effectively with the world’s leading programming language. The latest C# update added many new features that help you get more done in less time, and this book is your ideal guide for getting up to speed quickly. C# 7 focuses on data consumption, code simplification, and performance, with new support for local functions, tuple types, record types, pattern matching, non-nullable reference types, immutable types, and better support for variables. Improvements to Visual Studio will bring significant changes to the way C# developers interact with the space, bringing .NET to non-Microsoft platforms and incorporating tools from other platforms like Docker, Gulp, and NPM. Guided by a leading .NET expert and steeped in real-world practicality, this guide is designed to get you up to date and back to work.

With Microsoft speeding up its release cadence while offering more significant improvement with each update, it has never been more important to get a handle on new tools and features quickly. This book is designed to do just that, and more—everything you need to know about C# is right here, in the single-volume resource on every developer’s shelf.

  • Tour the many new and enhanced features packed into C# 7 and .NET Core 2.0
  • Learn how the latest Visual Studio update makes developers’ jobs easier
  • Streamline your workflow with a new focus on code simplification and performance enhancement
  • Delve into improvements made for localization, networking, diagnostics, deployments, and more

Whether you’re entirely new to C# or just transitioning to C# 7, having a solid grasp of the latest features allows you to exploit the language’s full functionality to create robust, high -quality apps. Professional C# 7 and .NET Core 2.0 is the one-stop guide to everything you need to know.

Table of contents

  1. COVER
  2. TITLE PAGE
  3. INTRODUCTION
    1. THE WORLD OF .NET CORE
    2. THE WORLD OF C#
    3. WHAT’S NEW IN C# 7
    4. WHAT’S NEW IN ASP.NET CORE
    5. WHAT’S NEW WITH THE UNIVERSAL WINDOWS PLATFORM
    6. WHAT YOU NEED TO WRITE AND RUN C# CODE
    7. WHAT THIS BOOK COVERS
    8. CONVENTIONS
    9. SOURCE CODE
    10. GITHUB
    11. ERRATA
  4. PART I: The C# Language
    1. 1 .NET Applications and Tools
      1. CHOOSING YOUR TECHNOLOGIES
      2. REVIEWING .NET HISTORY
      3. .NET TERMS
      4. USING THE .NET CORE CLI
      5. USING VISUAL STUDIO 2017
      6. APPLICATION TYPES AND TECHNOLOGIES
      7. DEVELOPER TOOLS
      8. SUMMARY
    2. 2 Core C#
      1. FUNDAMENTALS OF C#
      2. WORKING WITH VARIABLES
      3. USING PREDEFINED DATA TYPES
      4. CONTROLLING PROGRAM FLOW
      5. GETTING ORGANIZED WITH NAMESPACES
      6. UNDERSTANDING THE MAIN METHOD
      7. USING COMMENTS
      8. UNDERSTANDING C# PREPROCESSOR DIRECTIVES
      9. C# PROGRAMMING GUIDELINES
      10. SUMMARY
    3. 3 Objects and Types
      1. CREATING AND USING CLASSES
      2. CLASSES AND STRUCTS
      3. CLASSES
      4. STRUCTS
      5. PASSING PARAMETERS BY VALUE AND BY REFERENCE
      6. NULLABLE TYPES
      7. ENUM TYPES
      8. PARTIAL CLASSES
      9. EXTENSION METHODS
      10. THE OBJECT CLASS
      11. SUMMARY
    4. 4 Object-Oriented Programming with C#
      1. OBJECT ORIENTATION
      2. TYPES OF INHERITANCE
      3. IMPLEMENTATION INHERITANCE
      4. MODIFIERS
      5. INTERFACES
      6. IS AND AS OPERATORS
      7. SUMMARY
    5. 5 Generics
      1. GENERICS OVERVIEW
      2. CREATING GENERIC CLASSES
      3. GENERICS FEATURES
      4. GENERIC INTERFACES
      5. GENERIC STRUCTS
      6. GENERIC METHODS
      7. SUMMARY
    6. 6 Operators and Casts
      1. OPERATORS AND CASTS
      2. OPERATORS
      3. USING BINARY OPERATORS
      4. TYPE SAFETY
      5. COMPARING OBJECTS FOR EQUALITY
      6. OPERATOR OVERLOADING
      7. IMPLEMENTING CUSTOM INDEX OPERATORS
      8. USER-DEFINED CASTS
      9. SUMMARY
    7. 7 Arrays
      1. MULTIPLE OBJECTS OF THE SAME TYPE
      2. SIMPLE ARRAYS
      3. MULTIDIMENSIONAL ARRAYS
      4. JAGGED ARRAYS
      5. ARRAY CLASS
      6. ARRAYS AS PARAMETERS
      7. ARRAY COVARIANCE
      8. ENUMERATORS
      9. STRUCTURAL COMPARISON
      10. SPANS
      11. ARRAY POOLS
      12. SUMMARY
    8. 8 Delegates, Lambdas, and Events
      1. REFERENCING METHODS
      2. DELEGATES
      3. LAMBDA EXPRESSIONS
      4. EVENTS
      5. SUMMARY
    9. 9 Strings and Regular Expressions
      1. EXAMINING SYSTEM.STRING
      2. STRING FORMATS
      3. REGULAR EXPRESSIONS
      4. STRINGS AND SPANS
      5. SUMMARY
    10. 10 Collections
      1. OVERVIEW
      2. COLLECTION INTERFACES AND TYPES
      3. LISTS
      4. QUEUES
      5. STACKS
      6. LINKED LISTS
      7. SORTED LIST
      8. DICTIONARIES
      9. SETS
      10. PERFORMANCE
      11. SUMMARY
    11. 11 Special Collections
      1. OVERVIEW
      2. WORKING WITH BITS
      3. OBSERVABLE COLLECTIONS
      4. IMMUTABLE COLLECTIONS
      5. CONCURRENT COLLECTIONS
      6. SUMMARY
    12. 12 Language Integrated Query
      1. LINQ OVERVIEW
      2. STANDARD QUERY OPERATORS
      3. PARALLEL LINQ
      4. EXPRESSION TREES
      5. LINQ PROVIDERS
      6. SUMMARY
    13. 13 Functional Programming with C#
      1. WHAT IS FUNCTIONAL PROGRAMMING?
      2. EXPRESSION-BODIED MEMBERS
      3. EXTENSION METHODS
      4. USING STATIC
      5. LOCAL FUNCTIONS
      6. TUPLES
      7. PATTERN MATCHING
      8. SUMMARY
    14. 14 Errors and Exceptions
      1. INTRODUCTION
      2. EXCEPTION CLASSES
      3. CATCHING EXCEPTIONS
      4. USER-DEFINED EXCEPTION CLASSES
      5. CALLER INFORMATION
      6. SUMMARY
    15. 15 Asynchronous Programming
      1. WHY ASYNCHRONOUS PROGRAMMING IS IMPORTANT
      2. .NET HISTORY OF ASYNCHRONOUS PROGRAMMING
      3. FOUNDATION OF ASYNCHRONOUS PROGRAMMING
      4. ERROR HANDLING
      5. ASYNC WITH WINDOWS APPS
      6. SUMMARY
    16. 16 Reflection, Metadata, and Dynamic Programming
      1. INSPECTING CODE AT RUNTIME AND DYNAMIC PROGRAMMING
      2. CUSTOM ATTRIBUTES
      3. USING REFLECTION
      4. USING DYNAMIC LANGUAGE EXTENSIONS FOR REFLECTION
      5. THE DYNAMIC TYPE
      6. DYNAMICOBJECT AND EXPANDOOBJECT
      7. SUMMARY
    17. 17 Managed and Unmanaged Memory
      1. MEMORY
      2. MEMORY MANAGEMENT UNDER THE HOOD
      3. STRONG AND WEAK REFERENCES
      4. WORKING WITH UNMANAGED RESOURCES
      5. UNSAFE CODE
      6. REFERENCE SEMANTICS
      7. SPAN<T>
      8. PLATFORM INVOKE
      9. SUMMARY
    18. 18 Visual Studio 2017
      1. WORKING WITH VISUAL STUDIO 2017
      2. CREATING A PROJECT
      3. EXPLORING AND CODING A PROJECT
      4. BUILDING A PROJECT
      5. DEBUGGING YOUR CODE
      6. REFACTORING TOOLS
      7. DIAGNOSTIC TOOLS
      8. CREATING AND USING CONTAINERS WITH DOCKER
      9. SUMMARY
  5. PART II: .NET Core and the Windows Runtime
    1. 19 Libraries, Assemblies, Packages, and NuGet
      1. THE HELL OF LIBRARIES
      2. ASSEMBLIES
      3. CREATING LIBRARIES
      4. USING SHARED PROJECTS
      5. CREATING NUGET PACKAGES
      6. SUMMARY
    2. 20 Dependency Injection
      1. WHAT IS DEPENDENCY INJECTION?
      2. USING THE .NET CORE DI CONTAINER
      3. LIFETIME OF SERVICES
      4. INITIALIZATION OF SERVICES USING OPTIONS
      5. USING CONFIGURATION FILES
      6. CREATING PLATFORM INDEPENDENCE
      7. USING OTHER DI CONTAINERS
      8. SUMMARY
    3. 21 Tasks and Parallel Programming
      1. OVERVIEW
      2. PARALLEL CLASS
      3. TASKS
      4. CANCELLATION FRAMEWORK
      5. DATA FLOW
      6. TIMERS
      7. THREADING ISSUES
      8. THE LOCK STATEMENT AND THREAD SAFETY
      9. INTERLOCKED
      10. MONITOR
      11. SPINLOCK
      12. WAITHANDLE
      13. MUTEX
      14. SEMAPHORE
      15. EVENTS
      16. BARRIER
      17. READERWRITERLOCKSLIM
      18. LOCKS WITH AWAIT
      19. SUMMARY
    4. 22 Files and Streams
      1. INTRODUCTION
      2. MANAGING THE FILE SYSTEM
      3. ENUMERATING FILES
      4. WORKING WITH STREAMS
      5. USING READERS AND WRITERS
      6. COMPRESSING FILES
      7. WATCHING FILE CHANGES
      8. WORKING WITH MEMORY MAPPED FILES
      9. COMMUNICATING WITH PIPES
      10. USING FILES AND STREAMS WITH THE WINDOWS RUNTIME
      11. SUMMARY
    5. 23 Networking
      1. NETWORKING
      2. THE HTTPCLIENT CLASS
      3. WORKING WITH THE WEBLISTENER CLASS
      4. WORKING WITH UTILITY CLASSES
      5. USING TCP
      6. USING UDP
      7. USING SOCKETS
      8. SUMMARY
    6. 24 Security
      1. INTRODUCTION
      2. VERIFYING USER INFORMATION
      3. ENCRYPTING DATA
      4. PROTECTING DATA
      5. ACCESS CONTROL TO RESOURCES
      6. WEB SECURITY
      7. SUMMARY
    7. 25 ADO.NET and Transactions
      1. ADO.NET OVERVIEW
      2. USING DATABASE CONNECTIONS
      3. COMMANDS
      4. ASYNCHRONOUS DATA ACCESS
      5. TRANSACTIONS WITH ADO.NET
      6. TRANSACTIONS WITH SYSTEM.TRANSACTIONS
      7. SUMMARY
    8. 26 Entity Framework Core
      1. HISTORY OF ENTITY FRAMEWORK
      2. INTRODUCING EF CORE
      3. USING DEPENDENCY INJECTION
      4. CREATING A MODEL
      5. QUERIES
      6. RELATIONSHIPS
      7. SAVING DATA
      8. CONFLICT HANDLING
      9. CONTEXT POOLING
      10. USING TRANSACTIONS
      11. MIGRATIONS
      12. SUMMARY
    9. 27 Localization
      1. GLOBAL MARKETS
      2. NAMESPACE SYSTEM.GLOBALIZATION
      3. RESOURCES
      4. LOCALIZATION WITH ASP.NET CORE
      5. LOCALIZATION WITH THE UNIVERSAL WINDOWS PLATFORM
      6. SUMMARY
    10. 28 Testing
      1. OVERVIEW
      2. UNIT TESTING WITH MSTEST
      3. UNIT TESTING WITH XUNIT
      4. LIVE UNIT TESTING
      5. UNIT TESTING WITH EF CORE
      6. UI TESTING WITH WINDOWS APPS
      7. WEB INTEGRATION, LOAD, AND PERFORMANCE TESTING
      8. SUMMARY
    11. 29 Tracing, Logging, and Analytics
      1. DIAGNOSTICS OVERVIEW
      2. TRACING WITH EVENTSOURCE
      3. CREATING CUSTOM LISTENERS
      4. WRITING LOGS WITH THE ILOGGER INTERFACE
      5. ANALYTICS WITH VISUAL STUDIO APP CENTER
      6. SUMMARY
  6. PART III: Web Applications and Services
    1. 30 ASP.NET Core
      1. ASP.NET CORE
      2. WEB TECHNOLOGIES
      3. ASP.NET WEB PROJECT
      4. ADDING CLIENT-SIDE CONTENT
      5. REQUEST AND RESPONSE
      6. DEPENDENCY INJECTION
      7. SIMPLE ROUTING
      8. CREATING CUSTOM MIDDLEWARE
      9. SESSION STATE
      10. CONFIGURING WITH ASP.NET CORE
      11. SUMMARY
    2. 31 ASP.NET Core MVC
      1. SETTING UP SERVICES FOR ASP.NET CORE MVC
      2. DEFINING ROUTES
      3. CREATING CONTROLLERS
      4. CREATING VIEWS
      5. RECEIVING DATA FROM THE CLIENT
      6. WORKING WITH HTML HELPERS
      7. GETTING TO KNOW TAG HELPERS
      8. IMPLEMENTING ACTION FILTERS
      9. CREATING A DATA-DRIVEN APPLICATION
      10. IMPLEMENTING AUTHENTICATION AND AUTHORIZATION
      11. RAZOR PAGES
      12. SUMMARY
    3. 32 Web API
      1. OVERVIEW
      2. CREATING SERVICES
      3. CREATING AN ASYNC SERVICE
      4. CREATING A .NET CLIENT
      5. WRITING TO THE DATABASE
      6. CREATING METADATA WITH THE OPENAPI OR SWAGGER
      7. CREATING AND USING ODATA SERVICES
      8. USING AZURE FUNCTIONS
      9. SUMMARY
  7. PART IV: Apps
    1. 33 Windows Apps
      1. INTRODUCING WINDOWS APPS
      2. INTRO TO XAML
      3. CONTROLS
      4. DATA BINDING
      5. NAVIGATION
      6. LAYOUT PANELS
      7. SUMMARY
    2. 34 Patterns with XAML Apps
      1. WHY MVVM?
      2. DEFINING THE MVVM PATTERN
      3. SHARING CODE
      4. SAMPLE SOLUTION
      5. MODELS
      6. SERVICES
      7. VIEW MODELS
      8. VIEWS
      9. MESSAGING USING EVENTS
      10. USING A FRAMEWORK
      11. SUMMARY
    3. 35 Styling Windows Apps
      1. STYLING
      2. SHAPES
      3. GEOMETRY
      4. TRANSFORMATION
      5. BRUSHES
      6. STYLES AND RESOURCES
      7. TEMPLATES
      8. ANIMATIONS
      9. VISUAL STATE MANAGER
      10. SUMMARY
    4. 36 Advanced Windows Apps
      1. OVERVIEW
      2. APP LIFETIME
      3. NAVIGATION STATE
      4. SHARING DATA
      5. APP SERVICES
      6. ADVANCED COMPILED BINDING
      7. USING TEXT
      8. INKING
      9. AUTOSUGGEST
      10. SUMMARY
    5. 37 Xamarin.Forms
      1. STARTING WITH XAMARIN DEVELOPMENT
      2. TOOLS FOR XAMARIN DEVELOPMENT
      3. ANDROID FOUNDATION
      4. IOS FOUNDATION
      5. XAMARIN.FORMS APPLICATION
      6. USING THE COMMON LIBRARIES
      7. CONTROL HIERARCHY
      8. PAGES
      9. NAVIGATION
      10. LAYOUT
      11. VIEWS
      12. DATA BINDING
      13. COMMANDS
      14. LISTVIEW AND VIEWCELL
      15. SUMMARY
  8. INDEX
  9. END USER LICENSE AGREEMENT

Product information

  • Title: Professional C# 7 and .NET Core 2.0, 7th Edition
  • Author(s): Christian Nagel
  • Release date: April 2018
  • Publisher(s): Wrox
  • ISBN: 9781119449270