Tungsten.NuGet 1.0.0


Homepage: https://github.com/mode51/Tungsten

Platform: NuGet

Language: C#

License: MIT

Keywords: Tungsten.NuGet, Tungsten

View on registry: https://www.nuget.org/packages/Tungsten.NuGet/1.0.0

Direct download link: https://www.nuget.org/api/v2/package/Tungsten.NuGet/1.0.0

Install: Install-Package Tungsten.NuGet -Version 1.0.0



A C# library to make Windows Forms, WPF, Windows Universal and Windows Portable application development easier. See the Wiki page for details and use.


  • Tungsten - A collection of useful classes for Winforms/WPF (some classes are listed below)
    • Targets .Net Framework 4.5
  • Tungsten.Portable - A Portable version of Tungsten
    • Targets portable-net45+win+wpa81+MonoAndroid10+MonoTouch10+xamarinios10+xamarinmac20
  • Tungsten.Universal - A Universal version of Tungsten
    • Targets Windows 10 (10.0; Build 10240)
  • Tungsten.Standard - A NetStandard version of Tungsten
    • Targets .NetStandard 1.4


  • Tungsten.Net - A client/server tcp socket library
  • Tungsten.Net.Standard - A NetStandard version of Tungsten.Net


  • Tungsten.Net.RPC - Encrypted socket classes (client and server) to run code on a Tungsten.RPC server
  • Tungsten.Net.RPC.Standard - .NetStandard version of Tungsten.Net.RPC


  • Tungsten.Domains - Easily implement reloadable AppDomains in your application


  • Tungsten.LiteDb - LiteDb based CRUD for your POCO classes


  • Tungsten.Firewall - A minimal library, using NetFwTypeLib, to add and remove Windows firewall rules


  • Tungsten.IO.Pipes.Standard - A NetStandard wrapper for named pipes (client and server)
  • Tungsten.Demo.Winforms - Uses tasks, Property and Gate to provide a responsive UI while handling background tasks
  • Tungsten.Demo.WPF - Illustrates how to use Tungsten in a WPF application
  • Tungsten.Standard.Demo - Demonstrates using some of the features in Tungsten.Standard
  • Tungsten.Domains.Demo - Illustrates using Tungsten.Domains to host a reloadable AppDomain
  • Tungsten.Domains.Plugin.Demo - A sample plugin
  • Tungsten.Domains.Plugin.Interface.Demo - The interface used by the plugin demo
  • Tungsten.IO.Pipes.Standard.Demo - Illustrates using the named pipe client and server wrappers
  • Tungsten.Net.Demo - Illustrates how to create a tcp server and connect clients
  • Tungsten.Net.RPC.Standard.Demo - a client/server RPC demo

Overview Of Classes By Project

Tungsten (Tungsten, Portable, Universal, Standard)

  • W.Lockable - A generic class to wrap a value in a thread-safe manner
  • W.Property - A generic class providing a number of enhancements to a W.Lockable value
    • Implements INotifyPropertyChanged
    • Adds IsDirty/MarkAsClean functionality
    • Supports a callback handler in the constructor so you don't have to use events
  • W.PropertyHost - a base class which automates the IsDirty, MarkAsClean and InitializeProperties so you don't have to.
  • W.PropertyChangedNotifier - provides implementation of INotifyPropertyChanged in a base-class with overridable GetValue and SetValue methods
  • [W.PropertyHostNotifier] - aggregates PropertyHost and PropertyChangedNotifier
  • W.InvokeExtensions - A static class exposing InvokeEx extension methods (to ease InvokeRequired handling)
  • W.CallResult - A non-generic class which can be used to return true/false and an exception from a function
  • W.Threading.Thread - automates creating a thread with an Action
  • W.Threading.Thread<T> - like Thread, except Action is now Action<T>
  • W.Threading.Gate - similar to Thread, a Gate can be started some time after creation
  • W.Threading.Gate<T> - like Gate, exception Action is now Action<T>
  • W.ActionQueue<T> - Merges a Thread with a ConcurrentQueue. Executes the provided Action<T> or Func<T, bool>, on a background thread, whenever an item is added to the ConcurrentQueue.


These two classes are designed to be the primary implementations

  • W.Net.GenericServer - a generic TCP server hosts secure client connections
  • W.Net.GenericClient - a secure generic TCP client to be used specifically with W.Net.GenericServer; sends and receives messages of any type

These classes can be used if you don't need to transmit objects

  • W.Net.SecureStringServer - a secure server which hosts W.Net.SecureStringClient connections
  • W.Net.SecureStringClient - a secure client which
  • W.Net.StringServer - a non-secure server which hosts non-secure W.Net.StringClient connections
  • W.Net.StringClient - a non-secure string client to be used specifically with W.Net.StringServer; sends and receives string messages

The following classes can be used to create more customized implementations

  • W.Net.Sockets.SecureServer - can be used with customized secure client connections
  • W.Net.Sockets.Server - a non-secure server; can be used with customized W.Net.Socket.FormattedSocket clients
  • W.Net.Sockets.FormattedSocket - can be used to create a custom client with a custom data type (as long as you can convert it to and from a byte array)
  • W.Net.Sockets.Socket - can be used to create a custom client which transmits byte arrays


  • W.Net.RPC.Server - An RPC server (see Tungsten.Net.RPC.Standard.Demo for use)
  • W.Net.RPC.Client - An RPC client (see Tungsten.Net.RPC.Standard.Demo for use)


  • W.Domains.DomainLoader - A handy class to make reloadable AppDomains easy


  • W.IO.Pipes.PipeClient - A named pipe client; designed to be used with W.IO.Pipes.PipeServer
  • W.IO.Pipes.PipeServer - A named pipe server; designed to be used with W.IO.Pipes.PipeClient
  • W.IO.Pipes.FormattedPipeClient - the base class for PipeClient which handles connecting, disconnecting and cleanup
  • W.IO.Pipes.PipeTransceiver - the base class of FormattedPipeClient which handles sending and receiving of data


  • W.LiteDb.LiteDbItem - A base class for your POCO classes (necessary for LiteDbMethods due to needing to know the _id field)
  • W.LiteDb.LiteDbMethods - CRUD methods for your POCO classes which inherit LiteDbItem


  • W.Firewall - Provides static methods to add, remove and check the existance of, Windows firewall rules


1.0.0 January 11, 2017

Project Statistics

SourceRank 0
Dependencies 0
Dependent projects 0
Dependent repositories 0
Total releases 1
Latest release
First release
Stars 1
Forks 0
Watchers 1
Contributors 1
Repo Size: 14.3 MB

Top Contributors See all


Something wrong with this page? Make a suggestion

Export .ABOUT file for this library

Last synced: 2017-01-13 09:34:37 UTC

Login to resync this project