Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.
Introduction to Enterprise support in Windows Phone
This article explains the Enterprise features added in Windows Phone 8, Enterprise Mobile Platform Architecture and provide Guidelines for development of WP8 Enterprise applications.
This article is intended for the Enterprise IT Administrators and Developers who will get to know the new Enterprise Ready capabilities and features that are added to WP8. And explains why should they consider WP8 as one of the options while evaluating and analysis of extending their Enterprise Applications to Mobile Platform.
Expansion of Enterprise Applications to mobile platform is no more a 'good to have' feature. It helps the Enterprise employees 'on field' to work more efficiently and organize their work more effectively. Mobile apps gives quick access to the critical data which helps in taking important decisions immediately which increases the productivity and thus add benefit to the Business.
WP7 was developed with an aim to target individual consumers. And hence it had very limited Enterprise app specific features that will attract the Enterprise market. But with WP8 platform the game has changed and the target audience now includes Enterprise organizations as well. Microsoft has added various functionalities like security, management, special enterprise app distribution cycle and more to WP8 that makes it an attractive deal for corporate market.
WP8 Enterprise Features
All the below Enterprise/Business features are new and exclusively added to WP8 platform which will facilitate Enterprise clients to adopt the WP8 devices to their Enterprise mobile solutions.
Security is something that is always a major concern of the Corporates when it comes to mobile synergies of Enterprise applications. Internal Desktops comes in domain of a more controlled environment and hence security is taken care in a systematic manner and with much ease by following standards. But when it comes to mobile devices security, concerns are much more.
This was the top priority issue in WP7 that had kept the Enterprise Clients from extending their mobile network with windows phone. But with WP8 secure features, things look much promising. WP8 has added following operating system and application level features which will be appreciated by Enterprise Clients:
- Secure Boot – WP8 will not boot if some virus/malware try to modify the operating system core. Any such activity will change the signature and WP8 will smartly detect it and will stop booting. UEFI Secure Boot feature will be responsible for this valuable feature.
- BitLocker Encryption - WP8 provides hardware accelerated security support using storage encryption.
- Sandboxing of Apps – WP8 Applications can refer their own assigned memory area only.
Enterprise Device Management
Enterprise Windows desktop platform is controlled using Active Directory and Group Policy. With WP8 the same powerful techniques will be ported to mobile platform using System Centre Mobile Device Manager, and making the mobile platform even more robust.
WP8 brings to its clients the Real Windows. And what I mean by this is that the WP8 replaced the Windows CE kernel with the Windows NT, the same core that is used in Windows 8. Further the Enterprise application development or porting existing applications is much easier with WP8 due to its various programming capabilities like:
- Portable Class Libraries
- Windows Runtime API
- Conditional compilation, etc.
It won’t be very intuitive and employee friendly to mix the Company specific apps with other windows apps on your phone. So what WP8 offers to you is – ‘Your Own App Hub’ known as Company Hub. IT Admins can deploy all the enterprise applications in this space so they are consolidated at one place and easily accessible. Additionally, company can also display any critical information/notification to their employees in this hub.
Flexible App Distribution
Companies can chose to publish their apps on Windows Phone Store, but this process can be time consuming and may not align with the company’s specific business goals and deadline targets.
WP8 understands this Enterprise need and hence it allows the IT admins to deploy their apps internally.
WP8 allows developers to utilize the data connection for audio and video calls. This feature can be utilized to integrate with the Enterprise VoIP to run seamlessly.
With Lync integration, Enterprise employees can join a voice conference directly from WP8.
WP8 brings IE10 on mobile device and thus add more to web browser security and opens pathway for HTML5 web developers.
Other features like Office and Email Integration were available in earlier windows phone as well, and will be useful for Enterprise clients.
WP8 Enterprise App Distribution Life Cycle
Let us have a look at quick steps that are required to be carried out for the initial setup of WP8 Enterprise Application platform:
- Company registers with Windows Phone Dev Center.
- Using the Publisher ID from Dev Center, company acquires an enterprise certificate from Symantec.
- Company uses the AETGenerator tool to generate an application enrollment token(AET).
- Although not compulsory, but it is recommended to develop a ‘Company Hub app’ and control and manage all other company apps though this central portal.
- Company develops business apps which need to be deployed.
- Employees enroll for company app distribution on their phones and install the company apps.
For further details please refer, Company app distribution for WP8
WP8 Developer considerations while creating an Enterprise App
Enterprise Mobile Platform Architecture
An Enterprise Mobile Platform Architecture consists of 3 layers:
This layer consists of the already available Enterprise applications, data sources and services (data, security, deployment, etc.). But these services might not be in a ‘ready to consume’ form for the mobile platform.
Mobile Middleware Layer
This layer is required because the existing (Desktop) Enterprise Architecture cannot be directly extended to the mobile platform and the factors that are responsible are stated below:
- Fine grain controlled Security on Desktop apps against more vulnerable mobile platform.
- Internet Speed & Availability – Intranet rarely have any issues, but a mobile device works on Wireless connection and its availability depends on factors like location, provider, etc.
- Standard desktop screen size and resolutions v/s multiple resolution and size mobile screens
- Large availability of caching on client machine v/s relative much small availability on mobile devices
- Deployment methods
- Device management
All this factors are more difficult to manage on a mobile platform. Hence there exists a layer called as Mobile Middleware which takes care of all this factors and more.
In this layer you specify and create all the required functionalities to make the data available to the mobile device in a format that is consumable by the device and in a secure, faster & reliable mechanism.
Due to the scale of enterprise platforms usually this layer should be distributed location wise for a faster and seamless end user experience.
This layer consist of the Company Hub, business applications and each application having its own isolated storage area. The communication between this layer and Middleware will happen through web services.
We have seen in the above section, what is the company hub feature in WP8. And although it’s not compulsory, it’s recommended to develop one for one-stop-shop for the enterprise application space.
Company Hub would typically look much similar for any enterprise and consist of following modules:
- The main page showing the list of enterprise apps (Must)
- A page with important notifications from the company (Optional)
- Daily Company Headlines (Optional)
- Employee Profile (Optional but Recommended)
For more information on Company Hub, please refer: Developing a Company Hub app
One of the most attractive features of WP8 is its ability to share the code with the Windows 8 applications. With the availability of high memory and powerful processors, Microsoft decided to align the Windows 8 and WP8. The steps taken towards this alignment was to replace .NET Compact Framework in WP by CoreCLR which is the same .NET engine used on Windows 8. Secondly a large subset of Windows Runtime API is inbuilt in WP8. And finally, Native app support on WP8. This three factors form the crux of the reusability feature.
This feature will be especially beneficial to Enterprise App Developers where your organization will want to make the same application available to your clients or employees on mobile platform. Code reuse will benefit in terms of:
- Reduced Deployment Time
- Reduced Development Time
- Ease in code maintenance
Various techniques through which WP8 and Windows 8 can share the code are:
- Portable Class Libraries
- Share code with Add as Link
- Use the common/custom Windows Runtime Components
- Conditional compilation
You can find more information on the above aspects of code reusability in the below articles:
Maximize code reuse between Windows Phone 8 and Windows 8
Introduction to code re-usability for Windows Phone
Sencha Touch Support for WP8
The above section talked about the multi-platform compatibility for Windows 8 and WP8, but many organizations (including where I work) use third party technology tools to leverage cross platform compatibility of enterprise mobile applications. The benefit of this being, developer writes a single code using this third party tools and your application will run irrespective of the platform (i.e. Android, iOS, etc.). Sencha is one of such third party technology that helps in developing rich GUI and multi-platform web apps for mobile applications.
It already supports many devices like BlackBerry, Apple and Android. And now the same support comes to Windows Phone platform with WP8. Through IE10, WP8 adds support for HTML5, CSS3 transforms, regions, animations, etc. which aids in developing rich GUI Sencha applications.
So if you are a Sencha developer it will be a good opportunity for you to extend WP8 support for your existing Sencha applications with minimal efforts.
PhoneGap (Apache Cordova)
Cut down effectively but Add Innovatively
Mobile version of an Enterprise application is usually going to be a cut down version, where only critical modules are ported to the mobile app. And this is necessary because the user won’t be interested to have the whole enterprise app but just the critical part that needs to be done timely or has a market edge with fastest one wins.
But don’t let this be a constraint. You might need to cut down on some functionalities but at the same time you can and should make use of the available unique features of mobiles to add a strategic advantage which cannot be gained on a desktop application.
Example: For a mobile version of Sales Application we can use the location and maps feature to provide valuable information to the sales person like how many clients does he have in the radius of 5km and can provide overlay on maps to show additional information like when was the last time there was a client interaction for all those clients in radius. With such useful information at fingertips, salesperson can effectively target the clients.
You can see how to add overlay to WP8 Nokia Maps and do more with Maps in this article: Windows Phone 8 Maps Examples
This is just an example scenario of how we can use the Map and GPS features for WP8 Enterprise App. More features can be explored depending on the use case.
Microsoft is best at selling its products to enterprise clients and now they have made a good move by introducing Enterprise features in WP8. Enterprise IT Administrators and Developers should take advantage of this new features in WP8 to extend the Enterprise Applications to Mobile Platform.