MSDN Magazine: Networking
All MSDN Magazine Topics
Foundations: Working With The .NET Service Bus
Juval Lowy - April 2009
The .NET Services Bus is arguably the most accessible, powerful, and useful piece of the new Windows Azure Cloud Computing initiative. See how it manages cloud communications.
Silverlight: Build Line-Of-Business Enterprise Apps With Silverlight, Part 2
Hanu Kommalapati - February 2009
Here we wrap up the call center client application we began last month. The techniques we illustrate will help you build real-world enterprise solutions using Silverlight.
Service Station: Authorization In WCF-Based Services
Dominick Baier and Christian Weyer - October 2008
Windows Communication Foundation (WCF) provides an easy role-based system and a more powerful and complex claims-based API for implementing authorization in services.
Foundations: Managing State With Durable Services
Juval Lowy - October 2008
This month Juval Lowy tackles questions such as when to keep proxies and services in memory for better state management in long-running workflows.
Transactions: Build Scalable Systems That Handle Failure Without Losing Data
Udi Dahan - July 2008
Systems that handle failure without losing data are elusive. Learn how to achieve systems that are both scalable and robust.
WCF P2P: How To Design State Sharing in a Peer Network
Kevin Hoffman - July 2008
Learn how you can peer-enable business applications by allowing them to share state in a serverless peer network.
Test Run: Request/Response Testing with Windows PowerShell
Dr. James McCaffrey - May 2008
Did you know you can use Windows PowerShell to perform lightweight request/response testing for an ASP.NET Web app? Here's how.
Foundations: Code Access Security in WCF, Part 1
Juval Lowy - April 2008
Here we discuss code-access security in Windows Communication Foundation (WCF) and present a solution for enabling partially trusted clients for WCF services.
Service Station: Building a WCF Router, Part 1
Michele Leroux Bustamante - April 2008
Here we take a look at WCF clients and services, and explain how to tweak the addressing and message filtering behaviors so you can route services between them.
WCF Syndication: HTTP Programming with WCF and the .NET Framework 3.5
Justin Smith - January 2008
Introducing Web-centric features of Windows Communication Foundation in the .NET Framework 3.5, including the HTTP programming model and the new syndication API.
Look it Up: Managing Directory Security Principals in the .NET Framework 3.5
Joe Kaplan and Ethan Wilansky - January 2008
Here's an overview of the new System.DirectoryServices.AccountManagement class in the .NET Framework 3.5 and how it simplifies working with directory services.
Security: Authenticate Users Across Organizations Using ADFS
Jack Couch - December 2007
Jack Couch looks at how to set up ADFS and when to use it; he then shows how to connect to an outside organization to offer single sign-on.
Service Station: Extending WCF with Custom Behaviors
Aaron Skonnard - December 2007
WCF extensibility points allow you to customize the process by which messages are translated, formatted, and sent over the wire for more customized services.
Foundations: Synchronization Contexts in WCF
Juval Lowy - November 2007
After a description of what synchronization contexts are and how WCF uses them, the author demonstrates various options for extending WCF to use custom synchronization contexts, both programmatically and declaratively.
Networking: Get Connected With The .NET Framework 3.5
Mariya Atanasova, Larry Cleeton, Mike Flasko, and Amit Paka - September 2007
This article covers three core changes to networking support in Visual Studio 2008 and the upcoming release of the .NET Framework.
Foundations: WCF Transaction Propagation
Juval Lowy - May 2007
Foundations: Build a Queued WCF Response Service
Juval Lowy - February 2007
With queued calls in Windows Communication Foundation you can perform work in a disconnected manner by sending messages through Microsoft Message Queuing. Juval Lowy explains.
WCF Essentials: What You Need To Know About One-Way Calls, Callbacks, And Events
Juval Lowy - October 2006
Object and component-oriented programming have only one way for clients to call a method, but Windows® Communication Foundation introduces two more. In this article Juval Lowy explains how they work.
Peer To Peer: Harness The Power Of P2P Communication In Windows Vista And WCF
Justin Smith - October 2006
P2P applications face a number of barriers preventing their wide adoption as a productivity solution. Fortunately Windows Vista improves the situation, as you’ll learn here.
Secure By Design: Your Field Guide To Designing Security Into Networking Protocols
Mark Novak and Andrew Roths - September 2006
If you were to build a new communications protocol from scratch, how would you address security? Here the authors take a look at that question and generate some valuable insights into secure protocols.
Security Briefs: Security in Windows Communication Foundation
Keith Brown - August 2006
Windows Communication Foundation provides three major protections— confidentiality, integrity, and authentication. This month Keith Brown explains what they can do for you.
Service Station: WSE 3.0, SOAP Transports, and More
Aaron Skonnard - June 2006
It's that time again. Time to answer some of the questions I get on a regular basis. This month I'll look at service orientation and policy-based compatibility, SOAP's transport-neutral design, and Web Services Enhancements (WSE) 3.0.
Wrap It Up: Call Into The .NET Framework From Existing Visual Basic 6.0 Apps
Scott Swigart - May 2006
Distributed .NET: Learn The ABCs Of Programming Windows Communication Foundation
Aaron Skonnard - February 2006
Windows Communication Foundation unifies the existing suite of .NET distributed technologies into a single programming model to improve the developer experience. This article introduces WCF so you'll be prepared to take advantage of all the new capabilities.
UDP Delivers: Take Total Control Of Your Networking With .NET And UDP
Yaniv Pessach - February 2006
UDP, the lesser-known sibling of TCP, is used for DNS resolution, SNMP network status, Kerberos security, digital media streaming, VoIP, and lots more. Learn how to put UDP to work for you.
Wandering Code: Write Mobile Agents In .NET To Roam And Interact On Your Network
Matt Neely - February 2006
In artificial intelligence, an agent is a logical entity that has some level of autonomy within its environment or host. A mobile agent has the added capability that it can move between hosts. In this article Matt Neely brings mobile agents from the halls of academia to a dev shop near you.
Service Station: All About ASMX 2.0, WSE 3.0, and WCF
Aaron Skonnard - January 2006
The release of the Microsoft® . NET Framework 2. 0 reshapes the Web services landscape in several interesting, and perhaps confusing, ways. So this month I'm going to field some of the most common questions related to ASP.
Visual Basic: Navigate The .NET Framework And Your Projects With The My Namespace
Duncan Mackenzie - Visual Studio 2005 Guided Tour 2006
The My Namespace is best described as a speed-dial for the .NET Framework. It provides an intuitive navigation hierarchy that exposes existing .NET functionality through easily understood root objects. Here Duncan Mackenzie explains it all.
Advanced Basics: What's My IP Address?
Ken Getz - December 2005
If you're like me, you regularly do tech-support for family, friends, and neighbors. You can't go to a party without hearing the familiar refrain: "I've just got a quick question. " It's always something—their Internet connections get dropped, they've got a virus, they can't install some piece of hardware, or some file has gone missing.
Proxy Detection: Take the Burden Off Users with Automatic Configuration in .NET
Durgaprasad Gorti - August 2005
Proxy settings can be a real pain in the neck and very frustrating for users to configure properly. In this article, Durgaprasad Gorti discusses how you can use automatic proxy configuration via script and how it works in the Microsoft .NET Framework 1.1 and 2.0.
Winsock: Get Closer to the Wire with High-Performance Sockets in .NET
Daryn Kiely - August 2005
The Win32 Windows Sockets library (Winsock) provides mechanisms to improve the performance of programs that use sockets, and the Microsoft .NET Framework provides a layer over Winsock so that managed applications can communicate over sockets. To use all these layers to write a truly high-performance socket-based application requires a little background information, as Daryn Kiely explains here.
Around the Horn: Engineer a Distributed System Using .NET Remoting for Process Intensive Analysis
Nate D'Anna - May 2005
Before the Microsoft .NET Framework, creating a distributed cluster of computers to perform scientific analysis was expensive in terms of hardware, programming and debugging time, and maintenance. You had to purchase expensive servers, spend time debugging network communication, design a distributed system completely different from a system deployed locally, and maintain a melting pot of error handling, data acquisition, networking, and analysis code. In this article, the author shows you how he was able to engineer a distributed computing system in C# to perform analysis of real-world data continuously acquired at high sampling rates, thanks to the .NET Framework.
Web Q&A: Data Integrity Over HTTP, IIS Credentials, DataGrids, and More
Edited by Nancy Michell - March 2005
App Lockdown: Defend Your Apps and Critical User Info with Defensive Coding Techniques
Kenny Kerr - November 2004
Whether you're storing database connection strings, user credentials, or logon info, you'll need to practice good defensive programming techniques to avoid those surprise situations in which your data is exposed. In this article, author Kenny Kerry shows you how.
Advanced Basics: Digital Grandma
Duncan Mackenzie - November 2004
As a parent of a young child, I take a lot of pictures—many more than anyone would ever be interested in seeing. Well, anyone except my mother. This is her first grandchild and the one or two pictures I send to her each week only brush the surface of her grandmotherly needs.
Advanced Basics: P2P Comm Using Web Services
Carl Franklin - August 2004
Iwanted to use my first Advanced Basics column as an opportunity to strike out into new territory, to do something I haven't seen extolled much in the literature, so I've built a Windows® Forms chat program that uses Web services to communicate with other peers.
.NET Matters: XML Comments, Late-bound COM, and More
Stephen Toub - June 2004
Web Q&A: ANSI Chars in XML, E-commerce Architecture, and More
Edited by Nancy Michell - February 2004
Code Name Indigo: A Guide to Developing and Running Connected Systems with Indigo
Don Box - January 2004
This article describes a collection of new programming frameworks that are part of "Longhorn," the upcoming version of Windows. "Indigo," the code name for this framework, provides rich support for service-oriented design that is complementary to traditional object-oriented approaches. Indigo marries the best features of .NET Remoting, ASMX, and .NET Enterprise Services into a unified programming and administration model. Indigo's deep support for standard protocols, including HTTP, XML, and SOAP, makes it easier to integrate applications and services without sacrificing security or reliability.
MSMQ and .NET: Send MSMQ Messages Securely Across the Internet with HTTP and SOAP
David S. Platt - December 2003
When creating a distributed system you frequently need to provide for communication between two entities that are not in sync. Microsoft Message Queue Server (MSMQ) provides the kind of store-and-forward messaging in a pre-built infrastructure that can help you address these kinds of messaging needs. In the past, MSMQ was accessed using a COM wrapper. Now there's a .NET wrapper that lets you accomplish your messaging goals easily from your Framework-based code. To illustrate the use of the wrapper, the author builds a messaging application, sends MSMQ messages over the Web, and discusses messaging security.
Secure It: WS-Security and Remoting Channel Sinks Give Message-Level Security to Your SOAP Packets
Neeraj Srivastava - November 2003
As more organizations adopt XML-based Web Services, the need for message-level security has become evident. WS-Security, now supported in the Microsoft .NET Framework, addresses this need. Using the WS-Security framework, developers can implement channel sinks to intercept Remoting messages as they pass through the .NET Remoting infrastructure. The sink can read the message, change it, and pass it along. During this process, the message can be signed for added security. This article explains how to implement a Remoting channel sink that will modify the Remoting message by including a UserName token in the header, then sign the body using the token.
DCOM Interop: Generate Custom Managed C++ Wrappers for Easier COM Interoperation Using DCOMSuds
Vishwas Lele - August 2003
Now that you're writing managed code, you'll certainly want to use your existing COM components, but you can't simply call them directly. Instead, you have to wrap the COM component in a runtime-callable wrapper that acts as a proxy between the component and your managed code. While the CLR provides wrapper classes for this purpose, there will be times when you'll want custom objects to wrap your COM components. One way to get the low-level access you need to precisely control resource cleanup, pass security information, and get access to CLR features is to write your own wrapper class in managed C++. This article shows you how.
.NET Remoting: Secure Your .NET Remoting Traffic by Writing an Asymmetric Encryption Channel Sink
Stephen Toub - June 2003
As .NET Remoting gains popularity in the enterprise space, it must meet business demands for trustworthy computing. Remoting traffic can be secured when objects are hosted in IIS, but when they aren't hosted in IIS, custom security solutions can be developed to secure them. This article provides an in-depth look at writing channel sinks for .NET. It also details the flow of data through custom channel sinks and explains the kinds of manipulations that can be performed on that data.
BITS: Write Auto-Updating Apps with .NET and the Background Intelligent Transfer Service API
Jason Clark - February 2003
Both the .NET Framework and Windows have some very interesting APIs for creating applications that are capable of updating themselves automatically over a network. There are many advantages to writing your application to update itself like Windows Update does, including convenience for your users, from easier maintenance to network administration. Automatic updates require attention to factors such as discovery, security, and file replacement. In this article, the author covers the BITS API as well as a number of features of the .NET Framework that take care of these facets of auto-updating using the same facilities that the Windows Update uses.
.NET Remoting: Design and Develop Seamless Distributed Applications for the Common Language Runtime
Dino Esposito - October 2002
Prior to the advent of .NET, DCOM was the underlying technology for remote communications between Windows-based applications. But DCOM is quirky to set up and configure and not as interoperable as it should be. In .NET, XML Web Services and .NET Remoting are a seamless and effective answer to the demand for tools to build distributed applications.This article provides a primer on .NET Remoting with insights into the internal plumbing. Important aspects of remoting, such as channels, object lifetime management, and clients for remote objects are discussed. In addition, some practical examples are provided.
Serial Comm: Use P/Invoke to Develop a .NET Base Class Library for Serial Device Communications
John Hind - October 2002
Out-of-the-box, the only way of coding RS232 serial communications applications in the .NET environment is to import the outdated and somewhat limited MSComm ActiveX control. This article describes the development of a lean, multithreaded, and modern RS232 base class library in C# managed code. The library uses Platform Invocation Services to interact with the Win32 API directly. Application programmers can use the library from any .NET language through inheritance; the article explores examples written in C# and Visual Basic .NET.
Security in IIS 6.0: Innovations in Internet Information Services Let You Tightly Guard Secure Data and Server Processes
Wayne Berry - September 2002
Security improvements have been a top priority in the evolution of IIS. IIS 6.0, which will be part of Windows .NET Server, has improved security features and a new approach to server configuration. New security-related tools for IIS, including IIS LockDown, make securing your server against attack easier than ever. The author explains how and why you can shut down services with IIS LockDown. He discusses limiting port access with TCP/IP filtering, controlling how files are served with extension mapping, what's new for Secure Sockets Layer, the use of URLScan, and more.
Editor's Note: Parallel Networking
- August 2002
.NET Zero Deployment: Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
Chris Sells - July 2002
Windows Forms applications solve many of the problems inherent in building Web applications the old fashioned way?with HTML. To demonstrate the use of Windows Forms over the Web, the author takes his existing app, Wahoo!, and ports it to Windows Forms. In doing so, he discusses versioning, linked files, security, storage isolation, the deployment model, and everything else you need to get started building your own Windows Forms apps for the Web.
Return of the Rich Client: Code Access Security and Distribution Features in .NET Enhance Client-Side Apps
Jason Clark - June 2002
Rich clients employ many of the features and conveniences of the operating system they run on, and the list of these features has been growing since the dawn of the PC. But as apps have migrated to the Web, the trend towards increasing client-side functionality has ground to a virtual halt. There are several reasons for this; chief among them are security and deployment problems. But that's all about to change. With the .NET Framework, you can participate in building the distributable rich client of the future. In this article, the author enumerates the pertinent features of .NET that will allow you to build safe, easily deployable controls. The features discussed include managed code, code access security, versioning control, Windows Forms classes, and isolation.
Virus Hunting: Track and Report Server Attacks Quickly and Easily with the .NET Networking Classes
G. Andrew Duthie - April 2002
To help stop the spread of worms, viruses, and other hostile activity, it is important to track down and report the servers used in these attacks along with those used to send spam. Many Web administrators, however, don't take the time to track them because the manual process can be quite cumbersome. The Microsoft .NET Framework comes to the rescue with several networking classes, including the Dns class and the TcpClient class, that abstract away the complexity of performing DNS and WHOIS lookups. These classes make it easy to create a simple, straightforward ASP.NET-based utility for performing these lookups and automating this very important task.
Fax Services: Send Any Printable File From Your Program in Windows 2000
Marcin Kaluza - August 2001
All versions of Windows 2000 have fax services built in, so sending faxes manually is as easy as setting fax options from the control panel. Faxes can also be sent programmatically in Windows 2000 using either COM Automation or the standard C API. The example in this article uses COM Automation with Visual Basic and MFC to programmatically manage faxing. The objects used for fax transmission, such as the FaxServer and FaxDoc objects, as well as their properties and methods, are explained. Because faxing of files you can't print can be problematic, this process is explained. Finally, this article implements a fax routing extension-a plug-in that exports standard functions and implements routing methods for processing received faxes.
WinInet: Enable HTTP Communication in Windows-Based Client Applications
Todd Meister - June 2001
The Internet provides the infrastructure for applications to communicate, and that can include non-UI communication between Win32-based applications. If you think beyond the standard browser usage of HTTP, you can use this protocol to retrieve information from Win32-based applications and save it to a Web server. After explaining how HTTP can be used in this way, this article shows how to use Microsoft SQL Server, ASP, IIS, WinInet, and Visual Basic to implement two examples. The first reports usage data-how often an application is used and by whom. The second monitors application errors and reports error details for use by helpdesk staff or engineers in the debugging process.
Winsock 2: QoS API Fine-Tunes Networked App Throughput and Reliability
Wei Hua - April 2001
The Generic Quality of Service (GQoS) API is a subset of the Winsock 2 API that allows a Winsock application to inform the network of its traffic requirements, enabling entitled applications to receive preferential treatment for their traffic. Existing Winsock applications can be GQoS-enabled by adding or modifying Winsock calls at appropriate places. An application's sending and receiving traffic needs can also be defined by specifying parameters within the QualityOfService (QOS) structure. This article discusses how traffic information is conveyed throughout the network, what kind of QOS structure should be used in your app, and how to set up network configurations for testing GQoS applications.
Secure Sockets Layer: Protect Your E-Commerce Web Site with SSL and Digital Certificates
John Papa - April 2001
Security is one of the most important factors in the future growth of e-businesses. Making sure that communications remain secure between customers and the Web server is a critical issue. Secure Sockets Layer (SSL) is the standard that secure Web sites are built upon today. This article presents an overview of SSL-based Web security, explaining such fundamental concepts as digital certificates and their distribution, encryption, and the proper configuration of Microsoft Internet Information Services (IIS). Acquiring a certificate, installing it, and configuring IIS for SSL are outlined in a step-by-step process.
.NET P2P: Writing Peer-to-Peer Networked Apps with the Microsoft .NET Framework
Lance Olson - February 2001
Peer-to-peer applications such as Napster, Gnutella, and Scour that communicate as peers sharing and receiving information are becoming commonplace as a means for users connected on large networks to take advantage of the vast resources available to them. The Microsoft .NET Framework provides a rich platform for building P2P apps. This article explains the concepts that make up peer-to-peer applications. The peer-to-peer application model, discovering other peers, and querying peers for information are discussed. The article goes on to cover the System.Net namespace for the use of Internet protocols, the System.Web.Services namespace for exposing Web Services, and firewall and port issues. Finally, the role of the .NET Framework in simplifying the design of powerful peer-to-peer applications is outlined.
RPC and C++: Build a Template Library for Distributed Objects Containing Multiple Interfaces
Ajai Shankar - November 2000
Building a C++ template library for developing distributed object-oriented applications using Remote Procedure Calls (RPC) allows the programmer to design RPC applications that are composed of components that implement multiple interfaces. This article demonstrates the use of techniques such as assembly-level thunks to build machine code on the fly, and C++ features such as templates, conversion operators, virtual destructors and virtual function tables. Along the way, familiar C++ interfaces and classes are transformed into a distributed application. The benefits of using distributed objects rather than raw remote procedures, which include writing fewer lines of code, is explained.
Windows Sockets 2.0: Write Scalable Winsock Apps Using Completion Ports
Anthony Jones and Amol Deshpande - October 2000
Writing a network-aware application isn't difficult, but writing one that is scalable can be challenging. Overlapped I/O using completion ports provides true scalability on Windows NT and Windows 2000. Completion ports and Windows Sockets 2.0 can be used to design applications that will scale to thousands of connections. The article begins with a discussion of the implementation of a scalable server, discusses handling low-resource, high-demand conditions, and addresses the most common problems with scalability.
Web Q&A: Using WinInet for File Transfer, MSDN Tree Control, The Web-safe Palette
Robert Hess - October 2000
Cutting Edge: Exchanging Data Over the Internet Using XML
Dino Esposito - April 2000
Cutting Edge: Accessing Recordsets over the Internet
Dino Esposito - March 2000