# Clarifications on SDL Mobile implementation using Context service and discovery.js

1. In 2013 SP1, Context engine installation given as In Process, where as in web 8 it was given as service that means can't we use In Process dlls to evaluate expressions? We were getting compile errors while trying to create ClaimStoreExpressionEngine object using AmbientDataContext.CurrentClaimStore as we are using Com.Sdl.Context.Ambient name space which internally uses Juggernet.

Code snippet:

ClaimStoreExpressionEngine(AmbientDataContext.CurrentClaimStore, new ValueConverter());

1. If we are using Context service, Can we assume that we don't require to copy device database in Application server and also where ever the application copied?

2. We configured Context service as per documentation in our application. Now How can I evaluate device detection from my view to find device.tablet or device.mobile.

3. What is the use of discovery.js which has been placed under Application JS folder.

1. I think you can use the Web8 In Process Dlls from "SDL Web 8.1.1 release\Content Delivery\roles\api\in-process\dotNet\bin" inside your web application to continue using this piece of code.
2. Indeed when using a standalone Context microservice, the devices database is part of the service, so you do not need it inside your webapp anymore, it is the main goal of microservices to simplify your webapp by removing Tridion dependencies from it. The Discovery microservice is then used to point your webapp to the right URL/location for the context service, which can then live on a separate or even dedicated machine if needed.
3. Are you using DXA? In DXA it is as easy as:

WebRequestContext.ContextEngine.Device.IsMobile

DXA 1.5 also lets you create views dedicated to a certain family of devices such as MyView.tablet.cshtml, MyView.smartphone.cshtml which is pretty nice.

Discovery.js is used for client side device detection such as device orientation, display height and width, which cannot be found by the UserAgent server-side parsing technique.

• 1. I am using those dlls only inside my applications, I am getting same error which is mentioned in the below post. tridion.stackexchange.com/questions/15507/… ####Code snippet :public static ClaimStoreExpressionEngine ExpressionEngine { get { return new ClaimStoreExpressionEngine(Com.Tridion.Ambientdata.AmbientDataContext.GetCurrentClaimStore(), new ValueConverter()); } } – Prasanna K Gollamudi Sep 26 '16 at 16:03
• Some how I was unable to resolve the errors, I think it is better to go with Context service,Now What API I have to use to find Device information while I am using context service? If possible can you please share code snippet? what DLLS we need to refer? – Prasanna K Gollamudi Sep 28 '16 at 21:35
• I will accept the above answer and open new thread for connectivity implementation help – Prasanna K Gollamudi Sep 29 '16 at 14:30