Suche
Lesesoftware
Info / Kontakt
Beginning C# 7 Programming with Visual Studio 2017
von: Benjamin Perkins, Jacob Vibe Hammer, Jon D. Reid
Wrox, 2018
ISBN: 9781119458722 , 915 Seiten
Format: PDF, Online Lesen
Kopierschutz: DRM
Preis: 35,99 EUR
eBook anfordern
Cover
1
Title Page
3
Copyright
4
About the Authors
5
About the Technical Editor
5
Credits
6
Acknowledgments
7
Contents
9
Introduction
23
Who This Book is for
24
What This Book Covers
24
How This Book is Structured
25
The C# Language (Chapters 1–13)
25
Windows Programming (Chapters 14–15)
26
Cloud and Cross-Platform Programming (Chapters 16–19)
26
Data Access (Chapters 20–23)
27
Additional Techniques (Chapters 24–25)
27
What you Need to use This Book
28
Conventions
28
Source Code
29
Errata
29
Part I: The C# Language
31
Chapter 1: Introducing C#
33
What is the .NET Framework?
34
What’s in the .NET Framework?
34
.NET Standard and .NET Core
35
Writing Applications Using the .NET Framework and .NET Core
35
CIL and JIT
36
Assemblies
37
Managed Code
37
Garbage Collection
37
Fitting it Together
38
Linking
39
What Is C#?
39
Applications You Can Write with C#
40
C# in this Book
41
Visual Studio 2017
41
Visual Studio 2017 Products
41
Solutions
42
Chapter 2: Writing a C# Program
45
The Visual Studio 2017 Development Environment
46
Console Applications
51
The Solution Explorer
54
The Properties Window
55
The Error List Window
55
Desktop Applications
56
Chapter 3: Variables and Expressions
63
Basic C# Syntax
64
Basic C# Console Application Structure
66
Variables
68
Simple Types
68
Variable Naming
73
Literal Values
73
Binary Literals and Digit Separators
74
String Literals
75
Expressions
76
Mathematical Operators
77
Assignment Operators
82
Operator Precedence
83
Namespaces
84
Chapter 4: Flow Control
89
Boolean Logic
90
Boolean Bitwise and Assignment Operators
92
Operator Precedence Updated
94
Branching
95
The Ternary Operator
95
The if Statement
95
Checking More Conditions Using if Statements
98
The switch Statement
99
Looping
102
do Loops
103
while Loops
105
for Loops
107
Interrupting Loops
108
Infinite Loops
109
Chapter 5: More about Variables
113
Type Conversion
114
Implicit Conversions
114
Explicit Conversions
116
Explicit Conversions Using the Convert Commands
118
Complex Variable Types
121
Enumerations
121
Defining Enumerations
122
Structs
126
Defining Structs
126
Arrays
129
Declaring Arrays
129
foreach Loops
132
Pattern Matching with switch case expression
132
Multidimensional Arrays
136
Arrays of Arrays
138
String Manipulation
139
Chapter 6: Functions
147
Defining and Using Functions
148
Return Values
150
Parameters
152
Parameter Matching
154
Parameter Arrays
154
Reference and Value Parameters
156
Out Parameters
159
Tuples
160
Variable Scope
161
Variable Scope in Other Structures
164
Parameters and Return Values versus Global Data
166
Local Functions
167
The Main() Function
168
Struct Functions
171
Overloading Functions
172
Using Delegates
174
Chapter 7: Debugging and Error Handling
179
Debugging in Visual Studio
180
Debugging in Nonbreak (Normal) Mode
180
Outputting Debugging Information
181
Tracepoints
186
Diagnostics Output Versus Tracepoints
188
Debugging in Break Mode
188
Entering Break Mode
188
Monitoring Variable Content
192
Stepping through Code
194
Immediate and Command Windows
196
The Call Stack Window
197
Error Handling
197
try…catch…finally
198
Throw Expressions
205
Listing and Configuring Exceptions
206
Chapter 8: Introduction to Object-Oriented Programming
209
What Is Object-Oriented Programming?
210
What Is an Object?
211
Properties and Fields
212
Methods
213
Everything’s an Object
214
The Life Cycle of an Object
214
Constructors
214
Destructors
215
Static and Instance Class Members
215
Static Constructors
215
Static Classes
216
OOP Techniques
216
Interfaces
217
Disposable Objects
218
Inheritance
218
Polymorphism
221
Interface Polymorphism
222
Relationships between Objects
223
Containment
223
Collections
224
Operator Overloading
224
Events
225
Reference Types versus Value Types
225
OOP in Desktop Applications
226
Chapter 9: Defining Classes
233
Class Definitions in C#
234
Interface Definitions
236
System.Object
239
Constructors and Destructors
241
Constructor Execution Sequence
242
OOP Tools in Visual Studio
246
The Class View Window
246
The Object Browser
248
Adding Classes
249
Class Diagrams
250
Class Library Projects
252
Interfaces Versus Abstract Classes
256
Struct Types
258
Shallow Copying Versus Deep Copying
260
Chapter 10: Defining Class Members
263
Member Definitions
264
Defining Fields
264
Defining Methods
265
Defining Properties
266
Tuple Deconstruction
271
Refactoring Members
272
Automatic Properties
273
Additional Class Member Topics
274
Hiding Base Class Methods
274
Calling Overridden or Hidden Base Class Methods
276
The this Keyword
276
Using Nested Type Definitions
277
Interface Implementation
279
Implementing Interfaces in Classes
280
Explicit Interface Member Implementation
281
Additional Property Accessors
282
Partial Class Definitions
282
Partial Method Definitions
283
Example Application
285
Planning the Application
285
The Card Class
285
The Deck Class
285
Writing the Class Library
286
Adding the Suit and Rank Enumerations
287
Adding the Card Class
289
Adding the Deck Class
290
A Client Application for the Class Library
293
The Call Hierarchy Window
295
Chapter 11: Collections, Comparisons, and Conversions
299
Collections
300
Using Collections
301
Defining Collections
306
Indexers
307
Adding a Cards Collection to CardLib
309
Keyed Collections and IDictionary
312
Iterators
313
Iterators and Collections
318
Deep Copying
319
Adding Deep Copying to CardLib
320
Comparisons
322
Type Comparisons
322
Boxing and Unboxing
322
The is Operator
324
Pattern Matching with the is Operator Pattern Expression
327
Value Comparisons
328
Operator Overloading
328
Adding Operator Overloads to CardLib
332
The IComparable and IComparer Interfaces
338
Sorting Collections
339
Conversions
343
Overloading Conversion Operators
343
The as Operator
345
Chapter 12: Generics
349
What Are Generics?
350
Using Generics
351
Nullable Types
351
Operators and Nullable Types
352
The ?? Operator
353
The ?. Operator
354
Working with Nullable Types
355
The System.Collections.Generic Namespace
359
List
360
Sorting and Searching Generic Lists
361
Dictionary
367
Modifying CardLib to Use a Generic Collection Class
369
Defining Generic Types
369
Defining Generic Classes
370
The default Keyword
372
Constraining Types
372
Inheriting from Generic Classes
378
Generic Operators
379
Generic Structs
380
Defining Generic Interfaces
380
Defining Generic Methods
381
Defining Generic Delegates
382
Variance
383
Covariance
384
Contravariance
384
Chapter 13: Additional C# Techniques
389
The :: Operator and the Global Namespace Qualifier
390
Custom Exceptions
391
Adding Custom Exceptions to CardLib
392
Events
393
What Is an Event?
393
Handling Events
395
Defining Events
398
Multipurpose Event Handlers
401
The EventHandler and Generic EventHandler
Types 404
Return Values and Event Handlers
404
Anonymous Methods
405
Expanding and Using CardLib
405
Attributes
414
Reading Attributes
414
Creating Attributes
415
Initializers
416
Object Initializers
417
Collection Initializers
419
Type Inference
422
Anonymous Types
424
Dynamic Lookup
428
The dynamic Type
429
Advanced Method Parameters
432
Optional Parameters
433
Optional Parameter Values
434
The OptionalAttribute Attribute
434
Optional Parameter Order
434
Named Parameters
434
Lambda Expressions
439
Anonymous Methods Recap
439
Lambda Expressions for Anonymous Methods
440
Lambda Expression Parameters
443
Lambda Expression Statement Bodies
444
Lambda Expressions as Delegates and Expression Trees
445
Lambda Expressions and Collections
446
Part II: Windows Programming
453
Chapter 14: Basic Desktop Programming
455
XAML
456
Separation of Concerns
457
XAML in Action
457
Namespaces
458
Code-Behind Files
459
The Playground
459
WPF Controls
460
Properties
462
Dependency Properties
465
Attached Properties
465
Events
466
Handling Events
467
Routed Events
468
Routed Commands
468
Control Types
471
Control Layout
471
Basic Layout Concepts
471
Stack Order
472
Alignment, Margins, Padding, and Dimensions
472
Border
473
Visual Debugging Tools
473
Layout Panels
474
Canvas
474
DockPanel
476
StackPanel
478
WrapPanel
479
Grid
479
The Game Client
482
The About Window
483
Designing the User Interface
483
The Image Control
484
The Label Control
484
The TextBlock Control
484
The Button Control
485
The Options Window
488
The TextBox Control
489
The CheckBox Control
489
The RadioButton Control
490
The ComboBox Control
491
The TabControl
492
Handling Events in the Options Window
495
Data Binding
497
The DataContext
498
Binding to Local Objects
498
Static Binding to External Objects
499
Dynamic Binding to External Objects
500
Starting a Game with the Listbox Control
502
Chapter 15: Advanced Desktop Programming
509
Creating and Styling Controls
510
Styles
510
Templates
511
Triggers
513
Animations
514
WPF User Controls
515
Implementing Dependency Properties
516
The Main Window
529
The Menu Control
529
Routed Commands with Menus
529
Putting It All Together
534
Refactoring the Domain Model
534
The ViewModel
541
Completing the Game
549
Part III: Cloud and Cross-Platform Programming
561
Chapter 16: Basic Cloud Programming
563
The Cloud, Cloud Computing, and the Cloud Optimized Stack
564
Cloud Patterns and Best Practices
567
Using Microsoft Azure C# Libraries to Create a Storage Container
568
Creating an ASP.NET 4.7 Web Site That Uses the Storage Container
578
Chapter 17: Advanced Cloud Programming and Deployment
589
Creating an ASP.NET Web API
590
Deploying and Consuming an ASP.NET Web API on Microsoft Azure
594
Scaling an ASP.NET Web API on Microsoft Azure
602
Chapter 18: .NET Standard and .NET Core
609
Cross-Platform Basics and Key “Must Know” Terms
611
What Is .NET Standard, and Why Is It Needed?
613
Shared Project, PCL, and .NET Standard
614
Referencing and Targeting Frameworks
617
What is .NET Core?
618
Cross Platform
620
Open Source
621
Optimized for the Cloud
621
Performance
622
Modular Design
623
Self-Contained Deployment Model
625
Building and Packaging a .NET Standard Library
626
Building a .NET Core Application with Visual Studio
632
Porting from .NET Framework to .NET Core
635
Identifying Third-Party Dependencies
635
Understanding Which Features Are Not Available
636
Upgrading the Current .NET Framework Target
636
Choosing the Platforms to Target for the Program
636
Chapter 19: ASP.NET and ASP.NET Core
639
Overview of Web Applications
640
Which ASP.NET to Use and Why
641
ASP.NET Web Forms
643
ASP.NET MVC
644
ASP.NET Web API
647
ASP.NET Core
647
ASP.NET Web Site versus ASP.NET Web Application Project Types
648
File Structure
649
Compiling
649
Deployment
649
Using ASP.NET Web Forms
650
Server Controls
650
Input Validation
651
State Management
652
Authentication and Authorization
653
Creating ASP.NET Core Web Applications
657
IIS and Kestrel
658
Razor Syntax
658
Input Validation
659
State Management
660
Authentication and Authorization
661
Dependency Injection
662
Part IV: Data Access
669
Chapter 20: Files
671
File Classes for Input and Output
672
The File and Directory Classes
673
The FileInfo Class
674
The DirectoryInfo Class
676
Path Names and Relative Paths
676
Streams
677
Classes for Using Streams
677
The FileStream Object
678
File Position
680
Reading Data
680
Writing Data
683
The StreamWriter Object
685
The StreamReader Object
688
Reading Data
690
Asynchronous File Access
690
Reading and Writing Compressed Files
691
Monitoring the File System
694
Chapter 21: XML and JSON
703
XML Basics
704
JSON Basics
704
XML Schemas
705
XML Document Object Model
707
The XmlDocument Class
708
The XmlElement Class
708
Changing the Values of Nodes
713
Inserting New Nodes
714
Deleting Nodes
717
Selecting Nodes
719
Converting XML to JSON
719
Searching XML with XPath
721
Chapter 22: LINQ
727
LINQ to XML
728
LINQ to XML Functional Constructors
728
Working with XML Fragments
731
LINQ Providers
734
LINQ Query Syntax
735
Declaring a Variable for Results Using the var Keyword
736
Specifying the Data Source: from Clause
737
Specify Condition: where Clause
737
Selecting Items: select Clause
738
Finishing Up: Using the foreach Loop
738
Deferred Query Execution
738
LINQ Method Syntax
739
LINQ Extension Methods
739
Query Syntax versus Method Syntax
739
Lambda Expressions
740
Ordering Query Results
742
Understanding the orderby Clause
743
Querying a Large Data Set
744
Using Aggregate Operators
747
Using the Select Distinct Query
750
Ordering by Multiple Levels
753
Using Group Queries
755
Using Joins
757
Chapter 23: Databases
761
Using Databases
761
Installing SQL Server Express
762
Entity Framework
762
A Code First Database
763
But Where Is My Database?
770
Navigating Database Relationships
772
Handling Migrations
779
Creating and Querying XML from an Existing Database
780
Part V: Additional Techniques
789
Chapter 24: Windows Communication Foundation
791
What Is WCF?
792
WCF Concepts
793
WCF Communication Protocols
793
Addresses, Endpoints, and Bindings
794
Contracts
796
Message Patterns
797
Behaviors
797
Hosting
798
WCF Programming
798
The WCF Test Client
804
Defining WCF Service Contracts
807
Data Contracts
807
Service Contracts
808
Operation Contracts
808
Message Contracts
809
Fault Contracts
809
Self-Hosted WCF Services
814
Chapter 25: Universal Apps
823
Getting Started
824
Windows Universal Apps
825
App Concepts and Design
826
Screen Orientation
826
Menus and Toolbars
826
Tiles and Badges
826
App Lifetime
827
Lock Screen Apps
827
App Development
827
Adaptive Displays
827
Relative Panel
828
Adaptive Triggers
828
FlipView
830
Sandboxed Apps
835
Disk Access
836
Serialization, Streams, and Async Programming
836
Navigation between Pages
840
The CommandBar Control
842
Managing State
844
Common Elements of Windows Store Apps
846
The Windows Store
848
Packaging an App
848
Creating the Package
849
Appendix : Exercise Solutions
851
Chapter 3 Solutions
851
Exercise 1
851
Exercise 2
851
Exercise 3
851
Exercise 4
851
Exercise 5
851
Chapter 4 Solutions
852
Exercise 1
852
Exercise 2
852
Exercise 3
853
Chapter 5 Solutions
853
Exercise 1
853
Exercise 2
853
Exercise 3
853
Exercise 4
854
Exercise 5
854
Exercise 6
854
Chapter 6 Solutions
855
Exercise 1
855
Exercise 2
855
Exercise 3
855
Exercise 4
855
Exercise 5
856
Chapter 7 Solutions
856
Exercise 1
856
Exercise 2
856
Exercise 3
856
Exercise 4
857
Chapter 8 Solutions
857
Exercise 1
857
Exercise 2
857
Exercise 3
857
Exercise 4
858
Exercise 5
858
Chapter 9 Solutions
859
Exercise 1
859
Exercise 2
859
Exercise 3
859
Exercise 4
859
Exercise 5
860
Chapter 10 Solutions
861
Exercise 1
861
Exercise 2
861
Exercise 3
861
Exercise 4
861
Exercise 5
862
Chapter 11 Solutions
863
Exercise 1
863
Exercise 2
864
Exercise 3
864
Exercise 4
865
Exercise 5
866
Chapter 12 Solutions
866
Exercise 1
866
Exercise 2
866
Exercise 3
867
Exercise 4
867
Exercise 5
867
Exercise 6
869
Chapter 13 Solutions
869
Exercise 1
869
Exercise 2
870
Exercise 3
874
Exercise 4
874
Exercise 5
875
Exercise 6
875
Exercise 7
875
Exercise 8
875
Chapter 14 Solutions
875
Exercise 1
875
Exercise 2
876
Exercise 3
876
Exercise 4
877
Chapter 15 Solutions
878
Exercise 1
878
Exercise 2
880
Exercise 3
880
Chapter 16 Solutions
881
Exercise 1
881
Exercise 2
882
Chapter 17 Solutions
882
Exercise 1
882
Exercise 2
883
Chapter 20 Solutions
883
Exercise 1
883
Exercise 2
883
Exercise 3
883
Exercise 4
883
Exercise 5
884
Exercise 6
884
Chapter 21 Solutions
884
Exercise 1
884
Exercise 2
884
Exercise 3
884
Exercise 4
885
Chapter 22 Solutions
885
Exercise 1
885
Exercise 2
886
Exercise 3
886
Exercise 4
887
Exercise 5
887
Exercise 6
888
Chapter 23 Solutions
888
Exercise 1
888
Exercise 2
889
Exercise 3
889
Exercise 4
890
Chapter 24 Solutions
892
Exercise 1
892
Exercise 2
892
Exercise 3
892
Exercise 4
892
Exercise 5
892
Chapter 25 Solutions
893
Exercise 1
893
Exercise 2
894
Index
895
EULA
915