What is .Networking?

.NetworkingGT is a .NET toolkit and run time architecture that will let you easily write programs that share data between distributed clients via a shared dictionary. Once you initialize the shared dictionary and subscribe to the particular data keys you are interested in, sharing data is usually just a matter of setting key / value pairs, and monitoring / retrieving the dictionary for changes to particular key/value pairs via event handlers.

Under the covers, the .Networking infrastructure automatically:

  • handles all the networking work for you
  • maintains the dictionary data structure
  • distributes data through its client/server architecture
  • caches data at the clients
  • serializes and marshals the data
  • maintains a per-client list of subscriptions that a client specifies to particular key/value pairs
  • raises events when subscribed-to data is changed.

The Typical Shared Dictionary Program

While there is some setup code, most shared dictionary programs follow the same basic pattern. The programmer typically writes one or more client programs, where the client:

  • opens a connection to the shared dictionary server (a basic server is distributed with the program)
  • subscribes to keys within the dictionary
  • notifications are received by creating event handlers associated with a subscription, where events are raised whenever a key is added or deleted, and whenever its value changes
  • responds to events such a changes in state of the shared dictionary, and events raised by changes to data in the shared dictionary.
  • adds and/or deletes keys, and/or sets the value associated with a key in the dictionary

Notes on the implementation

  • .NetworkingGT uses the GT Toolkit developed at the University of Saskatchewan as the underlying networking architecture. It is included with this software.

Last modified: December, 2009