One of the tasks we are beginning to explore at AIS is developing and distributing mobile applications for our corporate clients. One common scenario will be for these apps to be available only for their employees, or a select group of their clients. So distribution through Apple’s App Store, for example, may not be an acceptable solution.

There are several options for distributing enterprise iOS applications, if we can’t (or don’t want to) go through the App Store:

1. Ad Hoc distribution. This involves building the distribution files, distributing them to the clients (via email or posting them to a server), and having them drag the files to iTunes and then synchronizing their devices. That’s a little messy. And it requires repeating the process every time there is an update to the app.

Again, this is a messy process, and will have to be repeated for each update and new app.

2. iPhone Configuration Utility. Apple’s iPhone Configuration Utility (Mac version; Windows version; documentation) is another option. This leaves the task to the system administrator, and is labor intensive. The SysAdmin will either need to attach to each device, and install the provisioning profiles and the apps, or email the configuration profile to each user. A generic profile can be used across the organization, but if username and password management are a part of the profiles, then it gets very complicated, very quickly. Again, this is a messy process, and will have to be repeated for each update and new app.

3. Mobile Device Management. The SysAdmin can install apps through MDM (Mobile Device Management, requires sign-in). Again, device management is required, but MDM allows for remote management once the device has been initially configured. When a new or updated app is available, the administrator creates a new payload, sends a push notification (through Apple’s Push Notification Service) to the appropriate client devices, and the devices execute the command (in this case pulling down and installing the app in the payload). If MDM is already a feature in the organization’s administration processes, this is a viable option.

4. Distribute apps wirelessly, using the Over the Air (OTA) process. This is the route I’ll discuss in detail, as it seems to be the most straightforward and easiest to implement of the available options, especially if MDM is not applicable. There are some wrinkles, too, which can automate the process of updating/upgrading the apps transparent to the users.

Read More…

Some Friday links from our contributing AIS bloggers‘ personal blogs:

Kendo UI Mobile with Knockout for Master-Detail Views: Toying around with Kendo UI Mobile to build iPhone apps. (Steve Michelotti)

Dynamic Test Data Using Rhino.Mocks Do() Method: Controller action testing with Rhino.Mocks. (The Agile .Netter)

Smith MBA Long-Term Schedule Planning with PowerPivot: Using Microsoft PowerPivot as a Business Intelligence tool. (SQLScape)

Headless Javascript Testing with Visual Studio 2012 & Chutzpah Test Adapter: A video demo on how to use Chutzpah to run Jasmine tests inside Visual Studio 2012 RC. (

Web.Config Tips – File vs ConfigSource: Investigating the pros and cons of the file and configSource attributes in web.config. (dben codes)