Networks (and network programming) have come a long way over the past 20 years. In the early days of network computing (the ’80s), network programming was left to the advanced programmer, who typically built applications using the C programming language in (mostly) Unix environments.
Now, networks are everywhere, from large corporations to small home users. With so many computers connected together via networks, network-aware applications are an accepted necessity. Existing applications must incorporate network features to stay competitive in the marketplace, and adding network communication to applications is essential. Network programs are used for everything from children’s games to advanced corporate database systems.
Network programming has always been a key feature of the Microsoft Windows operating system. Unfortunately, you’ve had to know advanced C or C++ programming concepts to utilize the network programming features in Windows programs. Now, though, the .NET Framework languages simplify the task of adding network features to your applications. The .NET libraries provide many network classes that can integrate network programming.
As a network administrator, I’ve written many network programs using the C and Java languages for both Windows and Unix platforms. Today’s network management and security requirements make it essential to communicate with network devices and track workstations on the network. Trying to quickly write clean network code can be difficult when you are working within the structure of the C socket APIs (especially in WinSock), and running Java applications is often a painful experience due to slow processing speeds and poor Windows support.
The C# language has solved many of my network programming problems by allowing me to quickly prototype and deploy network applications using C# classes. Combining the C# Forms library to write the graphical code with the C# Socket library to write the networking code makes creating professional network applications simple. With C# network classes, what used to take a day to write often only takes an hour or less.