Atjaunināt sīkdatņu piekrišanu

Getting Started with Advanced C#: Upgrade Your Programming Skills 1st ed. [Mīkstie vāki]

  • Formāts: Paperback / softback, 396 pages, height x width: 254x178 mm, weight: 802 g, 96 Illustrations, black and white; XXVI, 396 p. 96 illus., 1 Paperback / softback
  • Izdošanas datums: 26-Jun-2020
  • Izdevniecība: APress
  • ISBN-10: 1484259335
  • ISBN-13: 9781484259337
  • Mīkstie vāki
  • Cena: 69,22 €*
  • * ši ir gala cena, t.i., netiek piemērotas nekādas papildus atlaides
  • Standarta cena: 81,44 €
  • Ietaupiet 15%
  • Grāmatu piegādes laiks ir 3-4 nedēļas, ja grāmata ir uz vietas izdevniecības noliktavā. Ja izdevējam nepieciešams publicēt jaunu tirāžu, grāmatas piegāde var aizkavēties.
  • Daudzums:
  • Ielikt grozā
  • Piegādes laiks - 4-6 nedēļas
  • Pievienot vēlmju sarakstam
  • Formāts: Paperback / softback, 396 pages, height x width: 254x178 mm, weight: 802 g, 96 Illustrations, black and white; XXVI, 396 p. 96 illus., 1 Paperback / softback
  • Izdošanas datums: 26-Jun-2020
  • Izdevniecība: APress
  • ISBN-10: 1484259335
  • ISBN-13: 9781484259337
Intermediate-Advanced user level

Understand and work with the most important features of advanced C# in different programming environments. This book teaches you the fundamental features of advanced C# and how to incorporate them in different programming techniques using Visual Studio 2019.

The book is divided into two parts. Part I covers the fundamentals and essentials of advanced programming in C#. You will be introduced to delegates and events and then move on to lambda expressions. Part II teaches you how to implement these features in different programming techniques, starting with generic programming. After that, you will learn about thread programming and asynchronous programming, to benefit from a multi-threaded environment. Finally, you will learn database programming using ADO.NET to connect to a MySQL database and you will know how to exercise SQL statements and stored procedures through your C# applications.


What You Will Learn
  • Use delegates, events, and lambda expressions in advanced programming
  • Make your application flexible by utilizing generics
  • Create a fast application with multi-threading and asynchronous programming
  • Work in Visual Studio Community Edition, which is the most common IDE for using C#
  • Understand alternative implementations along with their pros and cons

Who This Book Is For

Developers and programmers who are already working in C#
About the Author xiii
About the Technical Reviewer xv
Acknowledgments xvii
Foreword xix
Introduction xxi
Part I Getting Familiar with Building Blocks
1(100)
Chapter 1 Delegates
3(30)
Definition
5(5)
Demonstration
10(1)
Q&A Session
10(1)
Comparing a Static Method with an Instance Method
11(3)
Demonstration 2
12(2)
Using Multicast Delegates
14(10)
Demonstration 3
15(2)
Q&A Session
17(1)
Demonstration 4
17(2)
Q&A Session
19(2)
Demonstration 5
21(1)
Q&A Session
22(2)
Variance in Delegates
24(7)
Covariance in Delegates
25(1)
Demonstration 6
26(2)
Contravariance in Delegates
28(1)
Demonstration 7
28(2)
Q&A Session
30(1)
Final Words
31(1)
Summary
31(2)
Chapter 2 Events
33(38)
Demonstration 1
35(3)
Output
38(1)
Analysis
38(1)
Q&A Session
38(1)
Creating Custom Events
39(4)
Demonstration 2
40(3)
Passing Data to an Event Argument
43(3)
Demonstrations
43(3)
Using Event Accessors
46(7)
Demonstration 4
48(4)
Q&A Session
52(1)
Handling Interface Events
53(2)
Demonstration 5
53(2)
Q&A Session
55(1)
Handling Explicit Interface Events
55(16)
Demonstration 6
56(4)
Q&A Session
60(1)
Demonstration 7
61(3)
Q&A Session
64(1)
Demonstrations
65(6)
Final Words 67(2)
Summary 69(320)
Chapter 3 Lambda Expressions
71(30)
The Usefulness of Lambda Expressions
71(5)
Demonstration 1
72(4)
Lambda Expression with (and Without) Parameters
76(2)
Demonstration 2
76(2)
Types of Lambda Expressions
78(1)
Expression-Bodied Members
78(7)
Demonstration 3
80(2)
Demonstration 4
82(3)
Local Variables in a Lambda Expression
85(3)
Demonstrations
86(2)
Using Tuples in a Lambda Expression
88(3)
Demonstrations
89(2)
Event Subscription with Lambda Expressions
91(8)
Demonstration 7
91(3)
Q&A Session
94(5)
Final Words
99(1)
Summary
99(2)
Part II Exploring Advanced Programming
101(240)
Chapter 4 Generic Programming
103(60)
The Motivation Behind Generics
103(9)
Demonstration 1
104(3)
Demonstration 2
107(3)
Demonstration 3
110(2)
A Quick Look into the List Class
112(2)
Demonstration 4
113(1)
Generic Delegates
114(8)
Func Delegate
114(2)
Q&A Session
116(1)
Action Delegate
117(1)
Predicate Delegate
118(1)
Demonstrations
118(2)
Q&A Session
120(2)
The Default Keyword in Generics
122(3)
Demonstration 6
122(2)
Q&A Session
124(1)
Implementing Generic Interface
125(4)
Demonstration 7
125(3)
Q&A Session
128(1)
Generic Constraints
129(6)
Demonstration 8
130(3)
Q&A Session
133(2)
Using Covariance and Contravariance
135(3)
Q&A Session
137(1)
Covariance with Generic Delegate
138(3)
Demonstration 9
139(2)
Covariance with Generic Interfaces
141(3)
Demonstration 10
141(3)
Contravariance with Generic Delegates
144(3)
Demonstration 11
145(2)
Contravariance with Generic Interface
147(7)
Partial Implementation
148(1)
Q&A Session
148(1)
Demonstration 12
149(2)
Q&A Session
151(1)
Demonstration 13
152(2)
Self-Referencing Generic Types
154(8)
Demonstration 14
155(3)
Q&A Session
158(1)
Demonstration 15
159(2)
Q&A Session
161(1)
Final Words
162(1)
Summary
162(1)
Chapter 5 Thread Programming
163(54)
Foundations in Thread Programming
163(3)
Q&A Session
166(1)
Coding Multithreaded Programs in C#
166(2)
Using the ThreadStart Delegate
168(11)
Demonstration 1
170(4)
Demonstration 2
174(4)
Q&A Session
178(1)
Using the ParameterizedThreadStart Delegate
179(17)
Demonstration 3
179(4)
Q&A Session
183(1)
Demonstration 4
184(6)
Q&A Session
190(1)
Demonstration 5
190(2)
Q&A Session
192(1)
Demonstration 6
193(2)
Q&A Session
195(1)
Foreground Thread vs. Background Thread
196(4)
Demonstration 7
197(3)
Thread Safety
200(5)
A Non-Synchronized Version
200(1)
Demonstration 8
201(2)
A Synchronized Version
203(1)
Demonstration 9
203(2)
An Alternative Approach Using the Monitor Class
205(2)
Deadlock
207(7)
Types of Deadlock
208(1)
Demonstration 10
208(3)
Investigating the Deadlocked State in Visual Studio
211(3)
Final Words
214(2)
Summary
216(1)
Chapter 6 Asynchronous Programming
217(66)
Overview
217(2)
Using a Synchronous Approach
219(1)
Demonstration 1
219(1)
Using Thread Class
220(3)
Demonstration 2
221(2)
Q&A Session
223(1)
Using the ThreadPool Class
223(6)
Demonstrations
225(4)
Q&A Session
229(1)
Using Lambda Expressions with ThreadPool
229(4)
Demonstration 4
230(3)
Using the lAsyncResult Pattern
233(16)
Polling Using Asynchronous Delegates
233(1)
Demonstrations
233(4)
Q&A Session
237(1)
Using the AsyncWaitHandle Property of lAsyncResult
238(1)
Demonstrations
239(3)
Using Asynchronous Callback
242(1)
Demonstration 7
243(3)
Q&A Session
246(3)
Using an Event-based Asynchronous Pattern (EAP)
249(9)
Demonstration 8
250(7)
Q&A Session
257(1)
Understanding Tasks
258(4)
Demonstration 9
260(2)
Using a Task-based Asynchronous Pattern (TAP)
262(19)
Demonstration 10
262(2)
Demonstration 11
264(5)
Q&A Session
269(1)
Using the async and await Keywords
270(2)
Demonstration 12
272(5)
Demonstration 13
277(4)
Final Words
281(1)
Summary
281(2)
Chapter 7 Database Programming
283(58)
Database and DBMS
284(6)
Types of DBMS
285(1)
RDBMS
285(1)
SQL
286(4)
A Brief Discussion of ADO.NET
290(1)
Understanding the Code
291(7)
MySqIConnection
293(1)
MySqICommand
294(2)
MySqIDataReader
296(2)
Implementing Connection-Oriented Architecture
298(14)
Demonstration 1
299(4)
Demonstration 2
303(9)
Implementing Disconnected Data Architecture
312(11)
MySqIDataAdapter
313(2)
MySqICommandBuilder
315(1)
Demonstration 3
316(7)
Programming with Stored Procedures
323(14)
Stored Procedure to Select Records
324(1)
Stored Procedure to Insert One Record
324(1)
Stored Procedure to Delete One Record
325(1)
One Simple Verification
325(2)
Demonstration 4
327(6)
Q&A Session
333(4)
Connection Pooling
337(1)
Final Words
338(1)
Summary
339(2)
Appendix A Installing MySQL and Testing SQL Commands
341(46)
Upgrade Scenario
374(2)
Testing the Installation and Executing Simple SQL Statements
376(11)
Appendix B Recommended Reading
387(2)
Index 389
Vaskaran Sarcar obtained his Master of Engineering in software engineering from Jadavpur University, Kolkata (India) and an MCA from Vidyasagar University, Midnapore (India). He was a National Gate Scholar (2007-2009) and has more than 12 years of experience in education and the IT industry. Vaskaran devoted his early years (2005-2007) to teaching at various engineering colleges and later he joined HP India PPS R&D Hub Bangalore and worked there until August, 2019. At the time of his retirement from the IT industry, he was a senior software engineer and a team lead at HP. To follow his dream and passion, Vaskaran is now a full-time author. Other Apress books by Vaskaran include: Interactive Object-Oriented Programming in Java (second edition), Java Design Patterns (second edition), Design Patterns in C#, Interactive C#, Interactive Object-Oriented Programming in Java, and Java Design Patterns.