Hands-On Network Programming with C# and .NET Core

More Information
Learn
  • Understand the breadth of C#'s network programming utility classes
  • Utilize network-layer architecture and organizational strategies
  • Implement various communication and transport protocols within C#
  • Discover hands-on examples of distributed application development
  • Gain hands-on experience with asynchronous socket programming and streams
  • Learn how C# and the .NET Core runtime interact with a hosting network
  • Understand a full suite of network programming tools and features
About

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.

Features
  • Explore various network architectures that make distributed programming possible
  • Learn how to make reliable software by writing secure interactions between clients and servers
  • Use .NET Core for network device automation, DevOps, and software-defined networking
Page Count 488
Course Length 14 hours 38 minutes
ISBN 9781789340761
Date Of Publication 29 Mar 2019
Technical requirements
Leveraging networks – transmitting packets for use by remote resources
The anatomy of a packet
Streams and serialization – understanding sequential data transmission
Summary
Questions
Further reading

Authors

Sean Burns

Sean Burns is a software engineer and author dedicated to craftsmanship and quality in his work. His professional career began while attending Virginia Commonwealth University in 2012. Leaving school to pursue his career full-time, he has accumulated 7 years of experience as a professional software engineer, working in a wide range of industries. Over the course of his career, he has developed and released software for every layer of the application stack. His projects include feature-rich and high performance front-end user interfaces exposed to millions of consumers, as well as high performance web services and APIs. Since it began, his career has been driven by an innate curiosity and a continued passion for software and technology.