Outlook 2013 development & customization: 7 questions developers should ask
Over the next few weeks, the editorial team here at the Office Newswire (i.e. Sveta & I) have decided to publish some “single issue” editions. Instead of attempting to cover everything, we’ll dig a little deeper on a single topic.
1. What are Mail Apps and why would I build one?
Okay, first off, this is two questions rolled into one. So technically, you are already getting a deal from today’s newswire… 8 questions for the price of 7. With that in mind, let’s continue.
I’m thinking in bullet points today. There’re lots of facts and I’m trying to keep it simple. So here they are:
- Outlook Mail Apps are web-based Outlook extensions that display in the Outlook reading pane or the Outlook inspector window.
- They support the mail and appointment items only and activate when a desired condition is in-play.
- They work in Outlook desktop, Outlook Web Apps, and Outlook Mobile Web Apps. In fact, a single code-base supports all three Outlook permutations. I wonder where Microsoft got that idea… hmmmm.
- The desired condition is defined by you, the developer, and when triggered, the Mail App will activate and display a button. When clicked, the button displays your mail app in either the reading pane or the inspector window.
- Most likely, the desired condition will be that the email or appointment contains an email address, phone number, contact info, or physical address. These items are “known entities” and are predefined within the Outlook 2013 Mail App API. This means you don’t have to define them or create the regular expressions needed to recognize their existence.
- If you have need for a custom entity, you can create a regular expression to recognize it and trigger your mail app.
- Exchange 2013 is required. There is no support for POP or IMAP accounts. Sounds like a reason to adopt Office 365 to me.
As for why you would build one? I cannot answer that for you. But I can tell you I will build them for the following reasons:
- I stinking love Outlook and love to make it work how I want it to work
- I think I have good ideas and I think I can sell the things I build
- There’s an App Store for that
2. What do I need to install so I can build a Mail App for Outlook 2013?
If you are a really good developer, all you really need is notepad. If you are not a good developer and/or are slightly lazy and prefer to have tools that help you out a bit, you will need the following:
You will also need to stay tuned right here to the Add-in Express Blog because 1) we will have much more to say about this topic and 2) we are incredibly good looking and 3) we are the epitome of cool. I’m not joking. Ask around.
3. Is now the time to performance tune my current Outlook add-in projects?
Uh, yes. There is this little thing called the Performance Monitor and it should strike some fear into you. For example, if your add-in’s load time averages more than a second Outlook will disable it. Outlook is nice about it, it notifies the user that an add-in has been disabled.
The user can click the View Disabled Add-ins button and re-enable it if they so desire.
But my bet is that the user will pause before re-enabling your add-in. They’ll click the button just to see what was disabled. Then they’ll see just how long your add-in takes to load…
And after seeing the red bar and the offensive count of seconds, they’ll do a cost/benefit analysis. They just might decide to leave your Outlook add-in disabled. This thought terrifies me.
Thus, the Performance Monitor is here to keep us honest and help us do right for the users of our Outlook plug-ins. You need to take steps to ensure you don’t exceed any of these metrics:
4. Any major object and/or event deprecations?
You might disagree with me but I don’t think there are any that qualify as major. However there are two that I’m sad to see go…
- ToDo Bar: Outlook 2013 dropped it in favor of the pin boards (or pin the peek). I don’t know what to call this new feature. Anyway, ToDo Bar is gone and any code you have that calls it will generate an error in Outlook 2013.
- Contact Linking: You can no longer link a contact item to other Outlook items. This is too bad because I have always liked this feature. I especially like to link contacts to other contacts. For example, say Larry introduced me to Curly. I would add Larry as contact link so I could remember this important relationship. Maybe that’s what the Outlook Social Connector is for?
5. Is the Outlook Social Connector finally worth our attention?
I don’t know? Maybe? But I doubt it. Microsoft has expanded support for the Outlook Social Connector (OSC) in Office 2013. Any application that can display user presence info and the Contact Card supports OSC (i.e. Outlook, Lync, & SharePoint Workspace).
The Social Connector supports social networks like LinkedIn and Facebook out-of-the-box. But using the extensibility model, you could integrate information from your business applications. For example, you could integrate sales activity from your CRM application. When you receive a call from a sales guy asking you to join him for a demo, you could quickly determine if they have a good track record (or has some serious connections that matter) to determine if the request is worth your time.
If you want to build your own providers, you might start with the OSC 2013 provider templates.
6. What is the silliest new feature or object in Outlook 2013?
That would be the Weather Bar.
Yep, you can extend the Outlook Weather Bar. The first idea I had was to create a weather service that published the temperature in my office. But as you can imagine, I quickly abandoned that idea. I suppose it will be a useful feature for the various weather services. In the US at least, I believe they all rely on the same data source… the National Weather Service.
7. Will you stop it with all these words and just give me the links so I can start building some Outlook 2013 Mail Apps?
Yes. Why, of course…
- What’s new for Outlook 2013 developers
- How to create your first mail app
- Fundamental Mail App concepts
- Outlook Mail App code samples