Then & Now


It’s been a while since my last post, but there has been so much happening. The best part of the first half of this year has been spent sharing with developers all around Australia the power of Microsoft Azure coupled with the comprehensive controls from DevExpress.  Everything from ASP.NET WebForms and MVC, to cross platform delights with DevExtreme Mobile, and don’t forget the Xamarin Form controls.

This week I will be doing a special presentation in Sydney showing how to create hybrid Azure solutions using DevExpress ASP.NET controls for administering your users, the ASPxFileManager and ASPxUploader control for adding unprecedented functionality, creating both Mobile Services and Web Apps to provide the perfect infrastructure for a cross platform mobile app with DevExtreme Mobile. Since sometimes the power of the desktop is required, we will also be taking a look at how to combine all of this with a WinForms application sporting the XtraReports suite.

In July (and September), I’ll be sharing some of these ideas with the Newcastle Dot Net User Group, so even if you can’t make the Sydney Azure Camp, there are still opportunities to see the technologies at work.

Stay tuned, July/August will be the start of the WPF series webinars, anyone with an interest in the latest technologies and future proving your desktop development skills will find this set of presentations invaluable.

….. I promise to keep up the posts

Azure, iOS and enterprise deployment


If you want to deploy an iOS application provisioned under an enterprise license on an IIS box the steps are simple enough:

– Create a folder where the .ipa file will be stored such as \inetpub\wwwroot\myApp
– Create a manifest (.plist) file, here is an example of what that should look like


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>items</key>
  <array>
    <dict>
     <key>assets</key>
      <array>
       <dict>
        <key>kind</key>
        <string>software-package</string>
        <key>url</key>
        <string>http://www.yourdomain.com/myApp/myApp.ipa</string>
       </dict>
      </array>
    <key>metadata</key>
     <dict>
      <key>bundle-identifier</key>
      <string>com.yourdomain.myApp</string>
      <key>bundle-version</key>
      <string>1.12.08.1200</string>
      <key>kind</key>
      <string>software</string>
      <key>title</key>
      <string>myApp</string>
     </dict>
    </dict>
  </array>
</dict>
</plist>

– Next step would be to create a link in your web page that points to the manifest file you just created, notice it is a special type of scheme:

...
<a href="itms-services://?action=download-manifest&url=http://www.yourdomain.com/myApp/myApp.plist"> Tap Here to Install myApp</a>
...

Now if you tried to click on the link at this stage you would start receiving errors. So the next thing to do is add a couple of extensions into your MIME types

.ipa – application/octet-stream
.plist – text/xml

Done, you can now browse to the page on your iPhone/iPad/iPod and install your newly provisioned enterprise application.

WHAT ABOUT AZURE? I did mention Azure in the title of the post, so what’s different if you want to deploy via a Azure Website?

Technically, nothing is different, you still need the manifest file, and you still need to set up the href. The caveat here is that you cannot edit MIME Types in your Azure admin area.

Thankfully it is not a difficult thing to overcome. You can add your MIME Type directly to the web.config file

...
<system.webServer>
    <staticContent>
      <mimeMap fileExtension=".ipa" mimeType="application/octet-stream" /> 
      <mimeMap fileExtension=".plist" mimeType="text/xml" /> 
    </staticContent>   
</system.webServer>  
...

Now your enterprise application can be distributed using the power of Azure Websites 🙂