This project has moved. For the latest updates, please go here.

Rating: No reviews yet
Downloads: 64
Released: Jun 20, 2015
Updated: Jun 20, 2015 by iftikhar51
Dev status: Beta Help Icon

Recommended Download

Source Code 51Degrees Foundation Source and Detection Sample
source code, 21470K, uploaded Jun 20, 2015 - 18 downloads

Other Available Downloads

Documentation Release Note
documentation, 59K, uploaded Jun 18, 2015 - 13 downloads
Application 51 Degrees DLL Website Enhancer
application, 142K, uploaded Jun 18, 2015 - 21 downloads
Application 51Degrees Lite Device Data - Version 3.1 Format - DECOMPRESS BEFORE USE
application, 8381K, uploaded Jun 20, 2015 - 12 downloads

Release Notes

Version 3.1.13 Highlights

  • The design focus of the release is to reduce memory consumption when the data file used directly from the disk, and to improve performance.
  • 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.
  • Import Change: The embedded device data has been removed from the assembly and by default placed in the App_Data folder if used with a web site. The solution will not work without the associated data file being provided and the WebProvider.ActiveProvider property can now return null.

Changes between version

  • Embedded device data has been removed from the assembly. A data file must be provided in order for detection to operate. As a result the WebProvider.ActiveProvider singleton can now return a null value and no detection results will be returned. In this situation the default capabilities providers used by .NET will be used exclusively and 51Degrees specific capabilities cannot be returned.
  • The project no longer supports .NET v3.5. The MobileCapabilitiesProvider of 51Degrees is used to provide results to the HttpRequest.Browser property and the underlying default capabilities are no longer altered. This simplifies code and improves performance. All references to VER4 and VER35 have been removed.
  • StreamFactory will now use a memory mapped file to access the source data file provided. This improves performance and is not possible in versions of .NET prior to v4.
  • The following new files have been added to Foundation to support new performance features.
    • Stream/DataSet.cs – inherits the base data set to provide access to the Pool of data source readers from any entity associated with the stream dataset.
    • Stream/EntityFactories.cs – used to provide specific factories to Node and Profile lists that know about the data source pool and can create stream Node and Profile entities.
    • Stream/Node.cs – Ranked Signatures and Numeric Children collections are no longer loaded into memory when the entity is constructed, they’re loaded when first requested.
    • Stream/Profile.cs – Value Indexes and Signature Indexes collections are no longer loaded into memory when the entity is constructed, they’re loaded when first requested.
    • Memory/Node.cs – As per the previous implementation all data associated with the Node is initialised when the entity is constructed. Need to maintain current memory based operation functionality.
    • Memory/Profile.cs – As per the previous implementation all data associated with the Profile is initialised when the entity is constructed. Need to maintain current memory based operation functionality.
    • Memory/EntityFactories.cs – used to provide the previous functionality where entities are initialised with all associated data when constructed.
    • Factories/CommonFactory.cs – the DataSet no longer includes a constructor which loads the header information from a reader. Instead this information is loaded using a static method in the CommonFactory called LoadHeader. This change is needed so that a single data source can be used to load all data into the dataset to support memory mapped file sharing.
  • The Node and Profile entities are now abstract requiring the complete implementation to be achieved in the inheriting classes in Stream or Memory.
  • Cache has been updated to switch the active and inactive lists when the inactive list contains 50% of the total cache items. The thread pool is used to perform the switch avoiding the need for timers, background threads or delaying the detection process.
  • A single Cache generic class is used for both UserAgent caching and also caching entities.
  • Provider now exposes information about the user agent cache misses and switches.
  • Stream fixed and variable lists now require a cache size to be specified when they’re created.
  • Memory/PropertiesList.cs has been added to support retrieval of Property entities using the string key name, not just the index of the property.
  • ICacheList used for the stream lists now provides a property called Switches that enables the data set to be queried to determine the number of times the cache has been switched. This can be used along the cache miss information to alter the default cache sizes provided in DetectionConstants.cs.
  • Auto update process will now download data to temporary files rather than main memory.
  • Temporary files are now always stored in the ~/App_Data/51Degrees folder. If the directory does not exist it will be created subject to security permissions of the worker process identity.
  • WebProvider’s method to get the published data of a data set file will now just create and destroy the data set without loading any data other than the header.
  • Bandwidth, ImageOptimiser and Profile override features have been enhanced to access the Match results more efficiently.
  • When used in a web application the Provider will now longer record the detection. The detection time is set from the WebProvider and provides a true figure as to the time taken to calculate the match result.
  • Web UI elements have been updated to use new interfaces and methods.
  • Values results can now be accessed by value name to determine the presence of a value in the list more easily.
  • The retailer defaults have been updated to reflect the new primary web site URLs.
  • If the Activator.cs used in the PreApplication start event does not fire and the 51Degrees MobileCapabilitiesProvider does not become the active capabilities provider the DetectorModule will perform the change to MobileCapabilitiesProvider. This has been observed in some IIS configurations where pre application start does not run reliably.

Reviews for this release

No reviews yet for this release.