Welcome to MSDN Blogs Sign in | Join | Help

Ryan's Look at Outlook Programmability

new Outlook.Application
More on Custom Forms...

Adam asked some great questions on my last post about custom forms and Outlook, and I thought I'd provide direct answers for these questions in another post for everyone to benefit from.  I encourage anyone who is interested in the platform to post comments or shoot me an e-mail using the email link.  While I won’t be able to get back to you with technical help on how to do something (you should use standard product support channels for that), I’ll certainly read your mails and potentially spin up more blog posts with answers to the big questions.

Q1. What is the future of Custom Forms in Outlook? I really like that ability, but the problem is 1) hard to deploy 2) the Office 2K3 "ide" for form code is really bad 3)hard to get them to work with OWA 4) have no support with ActiveSync.

We’re certainly standing firmly behind the concept of custom forms in Outlook.  For Outlook 2007 we’ve introduced a new extension to make custom forms easier to work with for developers by supporting better integration between add-in and form, and reducing the amount of work necessary if you just want to build additional UI elements on to our built-in forms (now possible through adjoining and separate regions). 

For form regions, you can now use whatever IDE you want because form business logic for form regions is written as part of your add-in, and thus can be developed in Visual Studio 2005 or your favorite other IDE.

As far as custom forms in Outlook Web Access or on mobile devices, unfortunately we haven’t improved the story with form regions.  The same conditions apply as before.  One positive note here is InfoPath forms, which will have a slightly better experience in OWA because of the embedded down-level HTML-based form.

It hasn’t been an overwhelming number of customers that have requested to be able to have a “design it once and it works everywhere” experience for Outlook custom forms.  If this is something more of you would like to see for the next release of Outlook, I’d love to hear about it and what types of scenarios you are trying to solve.

Q2. Does you envision people actually using custom forms very often? If so, in what kind of context?

My personal vision for custom forms in Outlook sees them moving more towards a developer tool for providing rich integrated solutions with Outlook UI that really feel like they are part of Outlook, blurring the line to where some users may not be able to tell that the solution features are not just part of the Outlook product.  We’re getting closer with form regions, where we have similar layout logic for forms, and these forms take on the look and feel of Outlook with themed controls and proper colors.

I think the end user experience for design forms will be migrating into other technologies, like using InfoPath forms for one-off surveys, information gathering, reporting, and similar uses.

This is of course all just my opinion though.  What I’d like to hear is more how you want to use custom forms, and what you want to accomplish by using custom forms.  It’s been pretty clear from feedback I’ve received in the past that the vision of forms we have today is pretty consistent with what customers are asking for.

Q3. How do you create a custom form in Outlook 12? Is there a specific developer add-in or can you just click Edit somewhere?

Working with custom forms can be a bit confusing for someone who hasn’t worked with them before.  Both styles of forms, form regions and classic custom forms, are designed inside Outlook.  Classic custom forms (also called Outlook 97-2003 custom forms) can be designed and deployed entirely through Outlook, with VB Script for business logic behind the form.  Form regions on the other hand need to be deployed through an add-in and your organization’s processes for deploying software to the desktop.

To get started, you can open Outlook, and from the Tools menu, select Forms, and then Design a Form.  Outlook will prompt you for a base for to begin with, and you can go from there.  If you want to design a new form region in Outlook 2007, you begin the same way, but then use the form region buttons to create a new blank form region and to save the form region to a file.

Around the end of the month, we’ll be published some new technical articles to MSDN to cover various aspects of the extensibility platform in Outlook.  One of these articles focuses on designing a form region and hooking up an add-in to work with the form region.  This article provides a great step-by-step reference for how to get started designing a form region, so if you are interested in this technology, I’d encourage you to be on the lookout for that article (or just keep reading on my blog, I’ll post links when they are available).

Q4. How do you reconcile people using Word for email creation in relation to custom forms?

I’m not sure there is much to reconcile here.  In Outlook 2007, everyone is using Word as their e-mail editor, and Word is actually hosted in-process with Outlook.  Even customers who are running standalone Outlook without Word installed are able to take advantage of some features of Word when composing mail.

Custom forms pick up this benefit as well.  By using the Message field or the “body” control on a custom form, the form automatically benefits from the use of Word and will display the rich Word editing surface where this control is placed on the form.  This is different from Outlook 2003, where it was often difficult to rectify using Word as the e-mail editor and custom forms, but everything works a lot smoother in Outlook 2007.


 

Posted: Thursday, May 04, 2006 11:18 PM by rgregg
Filed under:

Comments

Dirk.Rombauts said:

I think it would be great to have a "design once, run everywhere" scenario for Outlook forms.  If I make a plug-in or custom form for Outlook, I usually want to have to have this form/ these fields available in any version of Outlook that I use: the desktop Outlook, Outlook Web Access and Outlook Mobile.

For example: you may have heard of "Getting Things Done" by David Allen (www.davidco.com). His company offers a plugin for outlook that helps me to organize my tasks, create tasks or appointments from emails etc.  The problem is that it works only on Outlook desktop. I want to have this stuff on my pocket pc and OWA as well.

Dirk
# May 5, 2006 4:03 AM

AdamB said:

Thanks for taking the time to get to those questions in detail. It's really nice to hear directly from the source.

I have always liked the idea of custom forms/add-ins in Outlook, since most people keep Outlook open all the time and use it throughout the day; so integrating things in there just seems to make sense.

Unfortunately, the execution of custom Outlook forms/applications to date I think has been pretty poor. If you look at the availability of plugins at slipstick.com, for example, you will usually see a ton of apps that were part of an old SDK or just plain old. I think this is in part to confusion about the recommended approach for customizing Outlook, and part due to the tools available. Perhaps this is best illustrated through a personal example. I have to warn you it has been a few years since I did this so my lingo may be outdated.

I had a customer a few years ago that needed basic CRM functionality that they could share with their business partner. Outlook seemed like an easy way to do this. Specs were this:
1. Customers would go to the company's website and fill out the Contact Us form. This included fields like what products they were interested in, etc.
2. This form would automatically be submitted to an Exchange Public Folder and there would be a secondary email notification to the salesperson.
3. The salesperson could open this record and have a "mini-crm" that would essentially show all tasks associated with the contact, any emails sent to the contact, etc.

Pretty simple app; a weekend project. But I ran into the following blocks:

1) Field Customization. I don't remember all the details, but I seem to recall that there was a difference between the Custom Field model Outlook used and the Custom Object model used by Exchange/Webdav (I wanted to make my own form/object like CRM.Contact). The result ended up being I think I had to use some kind of Exchange Back-End 3rd party app to define custom objects, and then to display them on the Outlook Form, I had to manually type in the field names (it wasn't aware of the Record Type). It seems to me that Outlook should have allowed me to create such a custom field directly in the customization interface, and that it should be aware of other record types in the folder. Overall, it seemed like there was a big disconnect between the Custom Object model exchange used and the model that outlook used for custom forms.
- QUESTION: What is the future of the Exchange Custom Object Model (whatever it is called now; I think the name changed a few times)?
- SUGGESTION: If custom objects do have a future, make them super-friendly to use in Outlook.

2. Outlook View Control. I remember I wanted to have a simple feature where you pull up the contact and it would show all associated tasks. These tasks would be in a separate public tasks folder. In order to make that happen, I had to hunt down the Outlook View Control, which was pretty buggy (refresh issues) and seemed like it hadn't been updated in a while. It also wasn't very friendly to code against (I think it didn't expose properties in the properties window; you had to add filters or something programatically).
- QUESTION: Is there a future for OVC?
- SUGGESTION: If there is, include it with Outlook and make it easier to work with.

2a. Controls. QUESTION: Have the form controls been improved? I seem to remember they seemed kind of "Access 97"-like when you customized them and not at all as cool as the non-customized version. Also the properties and methods seemed a little dated if you compare them to the VS controls.

3. VBScript IDE. I remember the built in VBScript IDE was a huge pain to work with. I don't know if it could really even be called an IDE. There wasn't any syntax checking, no autocomplete, I mean I think it was just notepad. This IDE slowed me down considerably.
QUESTION: Do you see people using this IDE for much?
SUGGESTION: If so, change the language to VB.net or C# and copy the VS IDE. Also add some kind of syntax reference/online help component to this.

4. Debugging. Debugging forms was a very difficult chore. It was usually something like "error on line 15" or something and I think it brought up Windows Script Debugger which didn't really tell me what the problem was and often didn't even get the line number exactly right.
QUESTION: How do you envision people debugging code on forms?
SUGGESTION: Copy the VS debugging, with watches, etc. and actually eliminate the need for a lot of debugging by adding AutoComplete or Object expansion (whatever you call it when you type an object and then a dot and it shows you all the properties and methods) to it.

5. WebDAV. This is probably more an exchange issue, but it was more work than necessary to get the form from the Web into an Outlook/Public folder. I think I had to write a WebDAV wrapper or something.
QUESTION: Do you envision people posting from the web into Exchange/Outlook?
SUGGESTION: Make a server side component to make this easy. Like:
set exchangeserver=mail.mydomain.com
set folder=publicfolders.mypublicfolder
folder.createitem(myitem)
Also the errors returned from exchange were less than helpful; it took me a while to figure out you couldn't create a contact of the same name in the same folder.

6. Offline vs. Online usage. This may be more of a Public Folders issue. I seem to remember this was really difficult to do. The client wanted to use the CRM offline as well as online. There was some trick where you had to put it in Favorites, and then your form had to figure out where it was when it started up and change all the folder path references or something.
QUESTION: Do you see people using Public folders (I should have asked this before)?
SUGGESTION: If so, make the whole online/offline thing more seamless. Corrollary; I seem to remember I had to do a lot of strange recursion stuff like parent.parent.parent or something to get a folder reference. Possibly allow just asking for a folder by name?

7. Deployment. The app was eventually discontinued I think, due to the deployment issues. I never really figured out why Outlook 2003 wouldn't find the correct form to use. Outlook XP worked fine; I just published the form to the folder, and when the client opened an object from the folder, it used the form. But in 03, nothing. I think perhaps he could open it directly from the public folder, but maybe when he opened the contact from his inbox (for email notification, it couldn't find the form though XP could). I recall also that there is some kind of forms cache that needed to be cleared on updates.
QUESTION: Was work put into improving custom forms management/deployment?

8. OWA/Mobile. Design once, run everywhere is a definite necessity. If you have a form people in your business use, they should be able to use it everywhere. For example in this app the customer couldn't use it in OWA.

9. Event Sinks. I think Exchange Event Syncs are a very powerful concept, but the implementation is super difficult. I wanted to use it in my app; I wanted to make it so that if they updated a task on their personal task list that came from the public folder, it would automatically update the public folder. I never got that to work, but see point 10 below.
QUESTION: Do you envision people using sinks?
SUGGESTION: Why not make it easy to apply an event sync to a folder within Outlook? And have some code examples to help people get started.

10. Linking Items. It would be really nice if you could link items together. Like a task on your task list is linked to a public folder task, so if you change it, it changes it in the other location. Ditto with calendar/contacts.

11. Progress and Excitement. All in all, I don't see a lot of progress and excitement in the Exchange/Outlook development space. All the books seem to be really old, and the add-ins clunky at best. I think that if you really want people to customize outlook and write custom add-in's for it there needs to be a real shake-up and progress in the areas I mentioned above as well as some super-cool demo apps (when is the last time the Exchange SDK had something cool?). To be honest I get the feeling that Exchange programming in particular is a dead-end as rumors of the Web Store being replaced by SQL Server etc and the overall lack of innovation in this HIGH POTENTIAL space are troubling. To you think there is a REAL commitment within the Exchange/Outlook teams for extensibility?

Well that's "all" the feedback for now! You asked for it ;-).

Thanks for listening and I look forward to your thoughts!

Adam
# May 5, 2006 11:17 AM

Rob Gibson said:

I have always wanted more from Outlook. The Business Contact Manager is a good example. Being able to link tasks to contacts. Viewing contacts and their associated tasks. Adding custom fields or new lists... Take a real estate office (current customer of mine). They would like to be able to create another folder in Outlook called homes. Maybe even a public folder. This folder would list all the homes the office currently has for sale. Each agent would be able to link their contacts with homes they have show or are going to show to their contact. This would link to the calendar for appointments and tasks.
There are several more examples with other customers and I have no idea if any of this is possible or not. Every time I've gone to create custom forms in Outlook I just get frustrated and end up quitting. I revert back to Access and build something in there but then they end up using two applications.
In my personal opinion Outlook should be a much better CRM tool out of the box with the ease of Access's programmability.
Just my opinion though!
# June 15, 2006 9:36 PM

Brian said:

In Outlook 2007 does one get Wysiswig printing for custom forms? Unless or until that happens Outlook can't be taken seriously for any business app(s).
# July 1, 2006 2:31 PM
New Comments to this post are disabled
Page view tracker