Developing Apps For Office

So – I’ve been playing a lot with Apps for Office lately. I even wrote and published an app:

https://office.microsoft.com/en-us/store/message-header-analyzer-WA104005406.aspx

My management encouraged me to put together a presentation on everything I learned while developing this app. I did, and they asked me to record a video of me delivering this presentation. So – now you all get to hear me drone on about App development. Here’s the entry on the Partner Technical Services blog containing my presentation:

https://blogs.technet.com/b/ptsblog/archive/2013/03/20/microsoft-office-lessons-learned-developing-apps-for-the-office-store.aspx

And here’s the direct YouTube link:

Microsoft Office - Lessons Learned Developing Apps for the Office Store

and the direct link to the slide deck:

https://skydrive.live.com/view.aspx/Documents/AppsForOffice.pptx?cid=8d22925062e717b6&id=documents&authkey=!AOsqoQIn-Xb4nBk&&wdSlideId=274

In case you don’t want to dig through the slide deck for the links I reference, here they all are:

Topic Link
Getting Started https://msdn.microsoft.com/en-us/library/fp179924.aspx
Trusted Sites Workaround https://*.sharepoint.com, and discussion: https://social.msdn.microsoft.com/Forums/en-US/appsforsharepoint/thread/fa6abb31-7251-4744-ab14-634cde38a42d
Office App Validation Policy https://msdn.microsoft.com/en-us/library/office/apps/jj220035.aspx
JQuery https://jquery.com/
Mail App Permission Levels https://msdn.microsoft.com/en-us/library/fp161087.aspx and https://msdn.microsoft.com/en-us/library/fp161047.aspx
App Limitations https://msdn.microsoft.com/en-us/library/fp142267.aspx

Finally, my JQuery EWS parsing trick:

 (function ($) {
     $.fn.filterNode = function (name) {
         return this.find('*').filter(function () {
             return this.nodeName === name;
         });
     };
 })(jQuery);
function callback(asyncResult) {
         var response = $.parseXML(asyncResult.value);
         var responseDOM = $(response);
         var Prop = responseDOM.filterNode("t:InternetMessageHeaders")[0];

Enjoy!