Wangkanai.Detection.Device 2.0.0

ASP.NET Core Detection Device resolver components

There is a newer version of this package available.
See the version list below for details.
Install-Package Wangkanai.Detection.Device -Version 2.0.0
dotnet add package Wangkanai.Detection.Device --version 2.0.0
<PackageReference Include="Wangkanai.Detection.Device" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Wangkanai.Detection.Device --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

ASP.NET Core Detection

GitHub Build status GitHub Open Collective Patreon

  • Wangkanai.Detection NuGet Badge NuGet Badge
  • Wangkanai.Responsive NuGet Badge NuGet Badge

Build history

ASP.NET Core client web browser detection extension to resolve devices, platforms, engine of the client.

ASP.NET Core Responsive middleware for routing base upon request client device detection to specific view

ASP.NET Core Responsive

Installation

Installation of detection library is now done with a single package reference point.

PM> install-package Wangkanai.Detection

Installation of Responsive library will bring in all dependency packages (This will include `Wangkanai.Detection.Device).

PM> install-package Wangkanai.Responsive

Configuration

This library host the component to resolve the access client device type.

Implement of the library into your web application is done by configuring the Startup.cs by adding the detection service in the ConfigureServices method.

public void ConfigureServices(IServiceCollection services)
{
	// Add detection services container and device resolver service.
    services.AddDetection();

    // Add framework services.
    services.AddMvc();
}
  • AddDetection() Adds the detection services to the services container.

If you would like to add Responsive is configured in the ConfigureServices method also:

public void ConfigureServices(IServiceCollection services)
{
    // Add responsive services.
    services.AddResponsive();

    // Add framework services.
    services.AddMvc();  
}

Or you can customize the responsive

public void ConfigureServices(IServiceCollection services)
{
    // Add responsive services.
    services.AddResponsive(options =>
    {
        options.View.DefaultTablet = DeviceType.Desktop;
        options.View.DefaultMobile = DeviceType.Desktop;
        options.View.DefaultDesktop = DeviceType.Desktop;
    });

    // Add framework services.
    services.AddMvc();  
}
  • AddResponsive() Adds the Responsive services to the services container.

    • Suffix Ex *views/[controller]/[action]/index.mobile.cshtml*
    • SubFoler Ex *views/[controller]/[action]/mobile/index.cshtml*

The current device on a request is set in the Responsive middleware. The Responsive middleware is enabled in the Configure method of Startup.cs file.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseResponsive();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

Global Resolver

This library host the component to resolve all the access client related resolver that could resolve.

Example of calling the detection service in the Controller using dependency injection.

public class HomeController : Controller
{
    private readonly IDetection _detection;

    public HomeController(IDetection detection)
    {
        _detection = detection;
    }

    public IActionResult Index()
    {
        return View(_detection);
    }
}
  • IDetection is main service for you to access detection service.

When the Detection is pass to the view you can render results like the following example.

@model Wangkanai.Detection.Detection

<h3>UserAgent</h3>
<code>@Model.UserAgent</code>

<h3>Results</h3>

<table>
    <thead>
        <tr>
            <th>Resolver</th>
            <th>Type</th>
            <th>Version</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>Device</th>
            <td>@Model.Device?.Type.ToString()</td>
            <td></td>
        </tr>
        <tr>
            <th>Browser</th>
            <td>@Model.Browser?.Type.ToString()</td>
            <td>@Model.Browser?.Version</td>
        </tr>
        <tr>
            <th>Platform</th>
            <td>@Model.Platform?.Type.ToString()</td>
            <td>@Model.Platform?.Version</td>
        </tr>
        <tr>
            <th>Engine</th>
            <td>@Model.Engine?.Type.ToString()</td>
            <td>@Model.Engine?.Version</td>
        </tr>
        <tr>
            <th>Crawler</th>
            <td>@Model.Crawler?.Type.ToString()</td>
            <td>@Model.Crawler?.Version</td>
        </tr>
    </tbody>
</table>

ASP.NET Core Detection

GitHub Build status GitHub Open Collective Patreon

  • Wangkanai.Detection NuGet Badge NuGet Badge
  • Wangkanai.Responsive NuGet Badge NuGet Badge

Build history

ASP.NET Core client web browser detection extension to resolve devices, platforms, engine of the client.

ASP.NET Core Responsive middleware for routing base upon request client device detection to specific view

ASP.NET Core Responsive

Installation

Installation of detection library is now done with a single package reference point.

PM> install-package Wangkanai.Detection

Installation of Responsive library will bring in all dependency packages (This will include `Wangkanai.Detection.Device).

PM> install-package Wangkanai.Responsive

Configuration

This library host the component to resolve the access client device type.

Implement of the library into your web application is done by configuring the Startup.cs by adding the detection service in the ConfigureServices method.

public void ConfigureServices(IServiceCollection services)
{
	// Add detection services container and device resolver service.
    services.AddDetection();

    // Add framework services.
    services.AddMvc();
}
  • AddDetection() Adds the detection services to the services container.

If you would like to add Responsive is configured in the ConfigureServices method also:

public void ConfigureServices(IServiceCollection services)
{
    // Add responsive services.
    services.AddResponsive();

    // Add framework services.
    services.AddMvc();  
}

Or you can customize the responsive

public void ConfigureServices(IServiceCollection services)
{
    // Add responsive services.
    services.AddResponsive(options =>
    {
        options.View.DefaultTablet = DeviceType.Desktop;
        options.View.DefaultMobile = DeviceType.Desktop;
        options.View.DefaultDesktop = DeviceType.Desktop;
    });

    // Add framework services.
    services.AddMvc();  
}
  • AddResponsive() Adds the Responsive services to the services container.

    • Suffix Ex *views/[controller]/[action]/index.mobile.cshtml*
    • SubFoler Ex *views/[controller]/[action]/mobile/index.cshtml*

The current device on a request is set in the Responsive middleware. The Responsive middleware is enabled in the Configure method of Startup.cs file.

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseResponsive();

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

Global Resolver

This library host the component to resolve all the access client related resolver that could resolve.

Example of calling the detection service in the Controller using dependency injection.

public class HomeController : Controller
{
    private readonly IDetection _detection;

    public HomeController(IDetection detection)
    {
        _detection = detection;
    }

    public IActionResult Index()
    {
        return View(_detection);
    }
}
  • IDetection is main service for you to access detection service.

When the Detection is pass to the view you can render results like the following example.

@model Wangkanai.Detection.Detection

<h3>UserAgent</h3>
<code>@Model.UserAgent</code>

<h3>Results</h3>

<table>
    <thead>
        <tr>
            <th>Resolver</th>
            <th>Type</th>
            <th>Version</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th>Device</th>
            <td>@Model.Device?.Type.ToString()</td>
            <td></td>
        </tr>
        <tr>
            <th>Browser</th>
            <td>@Model.Browser?.Type.ToString()</td>
            <td>@Model.Browser?.Version</td>
        </tr>
        <tr>
            <th>Platform</th>
            <td>@Model.Platform?.Type.ToString()</td>
            <td>@Model.Platform?.Version</td>
        </tr>
        <tr>
            <th>Engine</th>
            <td>@Model.Engine?.Type.ToString()</td>
            <td>@Model.Engine?.Version</td>
        </tr>
        <tr>
            <th>Crawler</th>
            <td>@Model.Crawler?.Type.ToString()</td>
            <td>@Model.Crawler?.Version</td>
        </tr>
    </tbody>
</table>

NuGet packages (4)

Showing the top 4 NuGet packages that depend on Wangkanai.Detection.Device:

Package Downloads
WebVella.Erp.Web
The web components library for the open-source and free platform WebVella ERP. It allows a quick and painless creation of business web applications.
Wangkanai.Responsive.Core
Package Description
Bis.Framework
Package Description
Wangkanai.Responsive.Core.Modified
Package Description

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on Wangkanai.Detection.Device:

Repository Stars
dodyg/practical-aspnetcore
Practical samples of ASP.NET Core 2.1, 2.2, 3.1, and 5.0 projects you can use. Readme contains explanations on all projects.
grandnode/grandnode
Free and Open Source Ecommerce Shopping Cart solution based on ASP.NET CORE and MongoDB
WebVella/WebVella-ERP
Free and open-source pluggable ERP and CRM software based on ASP.NET Core 3.1, RazorPages and PostgreSQL 12. Targets Linux or Windows as host OS.

Version History

Version Downloads Last updated
2.0.1 7,087 9/25/2020
2.0.0 82,955 12/29/2019
2.0.0-beta15 430 12/27/2019
2.0.0-beta14 316 12/25/2019
2.0.0-beta13 3,613 12/8/2019
2.0.0-beta12 32,494 8/2/2019
2.0.0-beta11 37,351 5/2/2019
2.0.0-beta10 7,859 2/21/2019