Working with Re-factored Components in FP2007 - Part 1
As part of the componentization changes we made to XPe for Feature Pack 2007 various components were re-factored into multiple, smaller and more granular components. The benefit of this is footprint savings. Components that, in the past, depended on one or two files owned by e.g. the Internet Explorer component had to take the footprint hit of the whole of Internet Explorer in order to use these files – now in FP2007 they do not have to take the same footprint hit. By creating separate components to own these files the feature that depended on IE can now just depend on the new component in order to bring those files into the runtime and function correctly. This can lead to smaller overall footprint, depending on the kind of runtime you are building.
For example, if you look at Outlook Express in SP2 you will see that running check dependencies in Target Designer brings in the full Internet Explorer component (and all its subsequent dependencies) - see figure 1.
Now in FP 2007 the 3 files that Outlook Express needs in order to function correctly have been pulled out of Internet Explorer (in other words are no longer file resources listed in the Internet Explorer component) and are now "owned" by entirely new components. These new components are "Primitive" components, which mean they have usually only one file resource, any registry keys associated with that file resource, and perhaps an FBA Registration resource. Figure 2 below shows OE depending on only primitive components and not on IE. Note that IE will also depend on the primitive components that own the files that used to be part of IE – this is so that customers who need the whole of the IE feature are guaranteed to get all the same files in their runtime that they would have in SP2 before the re-factoring, and the IE feature will function as before.
This blog article will be the first in a series where I will gradually get more and more detailed into how to reap benefits of all the re-factoring work done, depending on how much time and effort you are prepared to invest in tweaking configurations that have been upgraded to FP2007.
Firstly, I must emphasize that in order to get the FULL advantage of this re-factoring work you should build your configurations from scratch with Feature Pack 2007. This ensures that your dependency check will only bring in the new, smaller components for the features that were re-factored. However, if you choose not to rebuild your configuration there are still other ways that you can tweak your configuration to obtain some footprint benefit from this re-factoring work. In the next blog articles I will delve into details on how you can do this.
For now, here is a list of components that were re-factored so you can see if any of these are even brought into your configurations through a dependency check (because another component you may have added had a dependency on one of these components), and also the way they are now structured in FP2007:
1. Internet Explorer
Re-factored into: Internet Explorer
Primitive: Actxprxy.dll
Primitive: Browsewm
Primitive: Cryptdlg.dll
Primitive: hlink.dll
Primitive: iedkcd32.dll
Primitive: ieinfo5.ocx
Primitive: iexplore.exe
Primitive: imgutil.dll
Primitive: inetcpl.cpl
Primitive: inseng.dll
Primitive: jsproxy.dll
Primitive: mshta.exe
Primitive: msident.dll
Primitive: msidntld.dll
Primitive: msrating.dll
2. Volume Shadow Copy Service
Re-factored into: Volume Shadow Copy Service
Primitive: vssapi.dll
3. Outlook Express
Re-factored into: Outlook Express
Primitive: msoert2
Primitive: wab32
4. Simple Network Management Protocol (SNMP)
Re-factored into: Simple Network Management Protocol (SNMP)
Primitive: snmpapi.dll
5. Windows Firewall/Internet Connection Sharing (ICS)
Re-factored into: Windows Firewall/Internet Connection Sharing (ICS)
Primitive: hnetcfg.dll
It may not seem that re-factoring only 5 components would have much of an impact to footprint but there are two aspects to the savings you see here - one is the that you no longer have the footprint hit of the files owned by that large component and, secondly, you no longer have the footprint hit of all the dependent components the large component would have brought in.
- Lynda
Comments
Anonymous
December 20, 2006
In my f irst blog post on re-factoring I mentioned the way to maximize the footprint savings was to re-Anonymous
January 04, 2007
The comment has been removedAnonymous
February 02, 2007
The comment has been removedAnonymous
February 14, 2007
As most of my last few posts have been about the re-factoring work done in FP2007 you may all be awareAnonymous
December 16, 2008
If you are using XPe Feature Pack 2007 (FP2007) you will know that we did a lot of re-factoring work