I mentioned it before, but it bears repeating, application layer is where the vast majority of day-to-day network programming will take place. This is especially true within the .NET Core framework, since the libraries provided by that framework deliver a wide array of clean, easy-to-use abstractions for entities or responsibilities that must be programmed lower in the stack. So, first, let's see why we should be so concerned with the responsibilities of the application layer. We'll look at the kinds of responsibilities that are typically delegated to entities in the layer, and see how frequently those responsibilities overlap with the requirements faced by everyday .NET Core developers. Then, given the extensive range of use cases for entities in the application layer, we'll take a look at some of the common protocols used by entities at...
Hands-On Network Programming with C# and .NET Core
By :
Hands-On Network Programming with C# and .NET Core
By:
Overview of this book
The C# language and the .NET Core application framework provide the tools and patterns required to make the discipline of network programming as intuitive and enjoyable as any other aspect of C# programming. With the help of this book, you will discover how the C# language and the .NET Core framework make this possible.
The book begins by introducing the core concepts of network programming, and what distinguishes this field of programming from other disciplines. After this, you will gain insights into concepts such as transport protocols, sockets and ports, and remote data streams, which will provide you with a holistic understanding of how network software fits into larger distributed systems. The book will also explore the intricacies of how network software is implemented in a more explicit context, by covering sockets, connection strategies such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP), asynchronous processing, and threads. You will then be able to work through code examples for TCP servers, web APIs served over HTTP, and a Secure Shell (SSH) client.
By the end of this book, you will have a good understanding of the Open Systems Interconnection (OSI) network stack, the various communication protocols for that stack, and the skills that are essential to implement those protocols using the C# programming language and the .NET Core framework.
Table of Contents (26 chapters)
Preface
Free Chapter
Section 1: Foundations of Network Architecture
Networks in a Nutshell
DNS and Resource Location
Communication Protocols
Packets and Streams
Section 2: Communicating Over Networks
Generating Network Requests in C#
Streams, Threads, and Asynchronous Data
Error Handling over the Wire
Section 3: Application Protocols and Connection Handling
Sockets and Ports
HTTP in .NET
FTP and SMTP
The Transport Layer - TCP and UDP
Section 4: Security, Stability, and Scalability
The Internet Protocol
Transport Layer Security
Authentication and Authorization on Networks
Caching Strategies for Distributed Systems
Performance Analysis and Monitoring
Section 5: Advanced Subjects
Pluggable Protocols in .NET Core
Network Analysis and Packet Inspection
Remote Logins and SSH
Other Books You May Enjoy
Customer Reviews