DeviceMap .NET C# Client

CLS (ISO/IEC 23271:2012) compliant .NET version of Apache DeviceMap Client

This client is used to classify browser User-Agent strings.

The client requires devicemap-data. Data can be loaded via:

 * URL
 * JAR file
 * Filesystem

# Code

//get client using configured data source 
//see "Configuration" below for further details on how to configure the data source
DeviceMapClient client = new DeviceMapClient();

String userAgent = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";

//classify the userAgent
IDictionary<string, string> devices = client.Map(userAgent);

//iterate thru the devices
foreach (string device in devices)
{
	Console.WriteLine(device);
}
	
## Compile
DeviceMap C# Client and Console have been tested with .NET Framework 4.0 or higher.

To compile the sources you may use

- Visual Studio (DeviceMap.sln file works with VS 2010 or above, Community Edition is sufficient)
- Mono Project (http://www.mono-project.com/) and MonoDevelop (http://www.monodevelop.com/)

We currently don't provide a MonoDevelop solution, but the project layout should be compatible with it. And you're more than welcome to contribute solution files if you use MonDevelop (please create a JIRA ticket under https://issues.apache.org/jira/browse/DMAP/component/12323107 ".NET Client" and attach your files)

# Run

## Configuration
DeviceMapConsole comes with a config file DeviceMapConsole.exe.config, the runtime version of App.config in the C# project.
It contains the connection string for the DeviceMap data source: "http://devicemap-vm.apache.org/data/latest/"
This connection URL points to the latest available DeviceMap data version online. 
If you prefer a different version or a local copy of the DeviceMap repository, you may override DeviceMapConsole by pointing to a different source. 
Either a URL or the location of a folder or JAR file in the file system.

The config file also contains the supported .NET runtime version.
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
You should normally not have to change this. Doing so is at your own risk. DeviceMap C# client does not support .NET below 4.0, but in case you have multiple versions of the .NET Framework installed, you may chose a particular one, e.g. if you face problems running DeviceMapConsole.