A comprehensive guide to understanding network architecture, communication protocols, and network analysis to build secure applications compatible with the latest versions of C# 8 and .NET Core 3.0Key FeaturesExplore various network architectures that make distributed programming possibleLearn how to make reliable software by writing secure interactions between clients and serversUse .NET Core for network device automation, DevOps, and software-defined networkingBook DescriptionThe 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.What you will learnUnderstand the breadth of C#'s network programming utility classesUtilize network-layer architecture and organizational strategiesImplement various communication and transport protocols within C#Discover hands-on examples of distributed application developmentGain hands-on experience with asynchronous socket programming and streamsLearn how C# and the .NET Core runtime interact with a hosting networkUnderstand a full suite of network programming tools and featuresWho this book is forIf you're a .NET developer or a system administrator with .NET experience and are looking to get started with network programming, then this book is for you. Basic knowledge of C# and .NET is assumed, in addition to a basic understanding of common web protocols and some high-level distributed system designs.
Les mer
C# and .NET Core makes network programming the enjoyable experience it should be. This book will get you started with the basics of network programming as they relate to C#. We will then dig into the core topics of the network layer. You'll also learn to make sockets connections as well and develop practical client-side applications in this book.
Les mer
Table of ContentsNetworks in a NutshellDNS and Resource LocationCommunication ProtocolsPackets and StreamsGenerating Network Requests in C#Streams, Threads, and Asynchronous Data TransferError Handling Over the WireSockets and PortsHTTP in .NET FTP and SMTPThe Transport Layer: TCP, UDP, and Multi-CastingThe Internet ProtocolTransport Layer Security (TLS)Authentication and Authorization for Networked RequestsCaching Strategies for Distributed SystemsPerformance Analysis and MonitoringPluggable Protocols in .NET CoreNetwork Analysis and Packet InspectionRemote Logins and SSH
Les mer

Produktdetaljer

ISBN
9781789340761
Publisert
2019-03-29
Utgiver
Vendor
Packt Publishing Limited
Høyde
93 mm
Bredde
75 mm
Aldersnivå
G, 01
Språk
Product language
Engelsk
Format
Product format
Heftet

Forfatter

Biographical note

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.