Click here to Skip to main content
15,885,365 members
Articles / Web Development / ASP.NET
Tip/Trick

Device recognition in ASP.NET MVC 4

Rate me:
Please Sign up or sign in to vote.
4.33/5 (2 votes)
6 Jun 2013CPOL1 min read 11.6K   262   8  
Little and programmer-friendly library for device recognition for mvc 4 web apps.

Introduction

Nowadays mobiles and tablets are widely used for surfing on the web. So creating user-friendly applications for devices is a must. While playing around with my project I noticed that for tablets, desktop version (with slight modifications) looks better than mobile version. So I needed to identify if client was desktop, tablet, or mobile.

Background

I have not done much with MVC 4 so I googled for a solution and ended up with this article. I've decided to make it more comfortable for use in several projects.

Using the code

Default namespace I've chosen for this little helper library is System.Web.Helpers. I've used this namespace because I wanted to avoid config modification for view.

Library contains only three components:

  1. Class DeviceRecognitionHelper that has to be initialized in Application_Start, Global.asax and is intended for internal use mostly;
  2. Enumerable DeviceType which does not need much explanation.
  3. Extension methods for HttpRequestBase that allows directly calling these methods on the Request property.

Let's start with DeviceRecognitionHelper which needs to be initialized in Application_Start:

C#
public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        // Other stuff here.
        DeviceRecognitionHelper.Initialize();
    }
}

There are five extension methods for HttpRequestBase: IsTablet(), IsMobile(), IsTv(), IsDesktop(), and GetDeviceType().

Sample usage in Razor view:

C#
@Request.GetDeviceType()

<br />

@if (Request.IsMobile())
{
    <b>Request was from mobile</b>
}
else if (Request.IsTablet())
{
    <b>Request was from tablet</b>
}
else if (Request.IsTv())
{
    <b>Request was from tv</b>
}
else if (Request.IsDesktop())
{
    <b>Request was from desktop</b>
}     

Implementation of this library with sample MVC 4 app can be found in attached files.

Points of Interest

I found implementing this fun and, more importantly, useful in real-world projects. More user-friendly your application is more users it has. Smile | <img src=

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Georgia Georgia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --