ADXLoader vs VSTO 2005 SE 'Fast Start'?

Add-in Express™ Support Service
That's what is more important than anything else

ADXLoader vs VSTO 2005 SE 'Fast Start'?
 
David Ing




Posts: 56
Joined: 2006-06-27
I am looking forward to checking out the new ADX release, with the Outlook 2003 and 2007 compatability something I certainly like the look of - cool stuff and good work.

As part of working out what the right thing to so is, I read in the Microsoft VSTO SE doc that their loader does a 'fast start'.

http://download.microsoft.com/download/d/f/c/dfc24a21-1167-4579-b99c-c4df9b61deec/VSTO2005SE_Design.doc

i.e.:

"Office can fast-load this type of add-in without a second registry scan"

Does ADX do anything like this? Startup times for Outlook add-ins are surprisingly important for end-users, so I wonder if you had done this or had it planned already.

Is this a situation where 'ADX for VSTO 2005 SE' would be better thing to wait for?

Thanks in advance for any advice.

PS Happy New Year!
Posted 03 Jan, 2007 16:12:17 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi David.

"Office can fast-load this type of add-in without a second registry scan"


I am afraid that I don't quite understand what it means. I didn't notice any performance increase in VSTO 2005 SE.


P.S. Note that we take up your forum requests in the order we receive them.
Besides, it may take us some time to investigate your issue. Please be sure we will let you know as soon as the best possible solution is found.
Posted 04 Jan, 2007 07:25:05 Top
David Ing




Posts: 56
Joined: 2006-06-27
My best guess is that they now load the .NET assembly in their shim by name now rather than use a COM classId. That would prevent needing to find more info from the registry Classes Root branch (HKCR) and be the 'second scan' they mention.

I think this is just the equivalent of what adxloader.dll.manifest does (i.e. assemblyIdentity), and would be the same (or faster) than what VSTO SE does.

On my test profiles, it's the first time the fusion .NET app domain gets created (from a cold start PC) that takes the time to get going, and not additional registry scans. The cost of being the first .NET app to run on a clean startup is not great unfortunately...
Posted 04 Jan, 2007 08:07:32 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
David, probably I am wrong but I think the VSTO loader always does the 'second scan' becuase it needs to know where the add-in manifest is located.

Posted 04 Jan, 2007 09:45:35 Top
David Ing




Posts: 56
Joined: 2006-06-27
I don't think so, although I've never watched for it. In the doc at the top of the thread is this:

<snip>
"VSTO 2005 SE add-ins require a single Manifest entry in place of the two ManifestLocation and ManifestName entries. This entry must be with all the other standard settings under the add-in name in the standard location in HKCU. Note that if a Microsoft Office application from the 2007 release finds the Manifest key in HKCU, it has all the information it needs and does not need to perform the second registry scan in HKCR.

Manifest String: The path (including file name) of the manifest file that AddinLoader will use to load the add-in assembly. Supports full paths and token expansion (for example, %USERPROFILE%)."
</snip>
Posted 04 Jan, 2007 14:37:01 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
David, I don't know how it is possible to pass the manifest path to the loader without opening the registry second time. As far as I know the loader gets the add-in GUID in the DllGetClassObject function. Then it creates an instance of a proxy class which will communicate with the managed add-in. To create the managed instance the loader should scan the registry (using the add-in's ProgID) and read the ManifestLocation value. Now the loader has all that it needs to create an instance of the add-in. Of course I may be wrong. But I don't think that a couple of registry values can really affect the add-in performance.
Posted 05 Jan, 2007 07:46:36 Top