GithubHelp home page GithubHelp logo

axle-h / .net-device-detection Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 51degrees/dotnet-device-detection

0.0 3.0 0.0 179.02 MB

THE Fastest and most Accurate device detection for .NET - professionally maintained device data

Home Page: https://51degrees.com/device-detection

License: Other

ASP 0.96% C# 98.42% CSS 0.62%

.net-device-detection's Introduction

51Degrees Device Detection for Microsoft .NET

Recent Changes | Supported Databases | .NET Developer Documention | Available Properties

Need C | Java | PHP | Python | Perl | Node.js?

Server Side: Use code like...

Request.Browser["IsMobile"]

or

Request.Browser["IsTablet"]

... from within a web application server side to determine the requesting device type.

Client Side: Include...

https://[YOUR DOMAIN]/51Degrees.features.js?DeviceType&ScreenInchesDiagonal

... from Javascript to retrieve device type and physcial screen size information. Use Google Analytics custom dimensions to add this data for more granular analysis.

Offline: Use...

var detectionProvider = new Provider(StreamFactory.Create("[DATA FILE LOCATION]"));
var deviceType = detectionProvider.Match("[YOUR USERAGENT]")["DeviceType"];

... to perform offline analysis of web logs with User-Agent headers.

Review All Properties

What's needed?

The simplest method of deploying 51Degrees device detection to a .NET project is with NuGet. Just search for 51Degrees on NuGet.

This GitHub repository and NuGet include 51Degrees free Lite device database. The Lite data is updated monthly by our professional team of analysts.

Data files which are updated weekly and daily, automatically, and with more properties and device combinationsare also available.

Compare Device Databases

Recent Changes

Version 3.2.3 Highlights

This release focuses on reducing memory consumption and improving performance when the device data file is used directly from the disk.

Important Change: The embedded device data has been removed from the assembly and by default placed in the App_Data folder for both web and non-web projects. The solution will not work without the associated data file being provided and the WebProvider.ActiveProvider property can now return null.

Major Changes in Version 3.2

  • Embedded data has been removed from the assembly and now must be provided from the App_Data folder.
  • .NET 3.5 is not supported in this release in order to use memory mapped files and simplify overriding default browser capabilities.
  • In stream mode entity data properties that can allocate large arrays only initialise these arrays when needed.
  • Caches used with stream operation are now fixed memory size and serviced via the thread pool.
  • Automatic update processes uses temporary files rather than main memory to verify integrity of updated files prior to using them.
  • Temporary files are now created in the App_Data/51Degrees folder of the web application rather than a UNC path or the master data file folder.
  • Values associated with Profiles are now retrieved using a more efficient algorithm.
  • DataSet.Properties collection now has a string accesser to make retrieving properties by name simpler.
  • Web sites using memory mode use a byte array to improve start up time.
  • Version 3.2 data file formats are supported in parallel with version 3.1 data files.
  • 51Degrees unit tests are now part of the open source distribution.

Changes from 3.2.2

  • Automatic download requests version 3.2 data file format.
  • The active provider will not be initialised when data sharing is enabled.

Changes from 3.2.1

  • TrieProvider now support V3.2 data file format which includes embedded HTTP headers in the properties data array.
  • TrieProvider supports NameValueCollection of HTTP headers rather than a single user agent string. An collection of device indexes is returned for each of the relevant headers. The collection can be used with new GetPropertyValue methods to return the property value from the most relevant HTTP header.
  • If a file is used with the StreamFactory it will only be deleted if the IsTemporary parameter is set to true. Previously the extension of the file was used to determine if the file was temporary and eligible for deletion.
  • Stream DataSet now exposes information related to the number of readers created and queued in the underlying Pool.
  • Detector module no longer listens for PostAuthorizeRequest if image optimisation is disabled.
  • Changing device detection or image optimisation enabled states will change web.config modules collection to ensure configured to listen for all requests, not just managed code.
  • Changed image optimiser process to reduce memory consumption slightly, and ensure resized image is smaller than the original.

Changes from 3.1.13

  • The entity RankedSignatureIndex has been renamed to IntegerEntity along with the associated factories. This is so that the entity can be reused in the new lists for Nodes related to Signatures and Signatures related to Nodes where each list also contains 4 byte integer data types.
  • A potential threading problem has been resolved in Profile entity by only referencing the property PropertyIndexToValues rather than its backed private field.
  • Cache service method thread start is now synchronised.
  • Memory/Profile.cs Init() method has been removed as the ValueIndexes and SignatureIndexes arrays are needed to support other methods and don’t need to be freed.
  • Changed the Cache classes AddRecent and ServiceCache methods to prevent multiple service operations in multiple threads.
  • Added a ResetCache method to the dataset.
  • WebProvider in memory mode now uses a byte array in memory rather than constructing all instances of every entity. This reduces start up time.
  • Unit tests have been added for performance, memory and major data error checks.
  • V3.2 data format is now supported.

.net-device-detection's People

Contributors

jwrosewell avatar iftikhar51 avatar richteaman avatar

Watchers

James Cloos avatar Alex Haslehurst avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.